Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Version 1.0.5
Cloud Functions-Funktionen aufrufen, die über Ihr Google Cloud-Projekt bereitgestellt werden.
Derzeit unterstützt diese Erweiterung das Aufrufen von HTTP-Triggerfunktionen.
Voraussetzungen
In diesem Artikel erfahren Sie, wie Sie diese Erweiterung konfigurieren und verwenden. Bevor Sie die Erweiterung mithilfe der ExtensionCallout-Richtlinie von einem API-Proxy verwenden, müssen Sie Folgendes tun:
Aktivieren Sie die Cloud Functions API.
Funktionen in Cloud Functions für Ihr Google Cloud-Projekt definieren und deploy
Gewähren Sie dem Nutzer über IAM Zugriff auf die gewünschte Zugriffsebene für die Funktion. Beispielsweise können Sie den Zugriff auf die Funktion auf das Dienstkonto beschränken, mit dem Sie die Erweiterung konfigurieren.
Verwenden Sie die GCP Console, um einen Schlüssel für das Dienstkonto zu generieren.
Verwenden Sie den Inhalt der resultierenden JSON-Schlüssel-JSON-Datei beim Hinzufügen und Konfigurieren der Erweiterung mithilfe der Konfigurationsreferenz.
Informationen zu Cloud Functions
Mit Google Cloud Functions können Sie Funktionen in Google Cloud erstellen und bereitstellen und diese Funktionen dann über anderen Code aufrufen. Eine Einführung in Cloud Functions finden Sie in einer der Kurzanleitungen.
Samples
Das folgende Beispiel zeigt, wie Funktionen in Cloud Functions mithilfe der ExtensionCallout-Richtlinie aufgerufen werden.
Node.js-Funktion aufrufen
Das folgende Beispiel enthält eine ExtensionCallout-Richtlinie zum Aufrufen einer Google Cloud Functions-Erweiterung. Die Erweiterung ruft die Standardfunktion „Hello World“ auf, die beim Aktivieren der Cloud Functions API enthalten ist.
Der folgende Node.js-JavaScript-Code wird in Cloud Functions für ein GCP-Konto bereitgestellt. Wenn die Anfrage ein Nachrichtenattribut enthält, gibt der Code dieses zurück. Andernfalls wird „Hello World!“ als Antwort zurückgegeben.
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
res.status(200).send(message);
};
Dieses Beispiel enthält eine Google Cloud Functions-Erweiterung, die mit Anmeldedaten konfiguriert wird, die für die Authentifizierung und Autorisierung zum Aufrufen von Code in Cloud Functions erforderlich sind.
Der vorherige Funktionscode wird in Cloud Functions einfach als helloWorld
gespeichert. Der folgende ExtensionCallout-Richtlinienkonfigurationscode verwendet diesen Namen zusammen mit Regions- und Projekt-ID-Werten, die mit den Angaben der Cloud Functions-Umgebung übereinstimmen, in der die Funktion bereitgestellt wird.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output parsed="false">function.response</Output>
Die folgende AssignMessage-Richtlinie erfasst den Antwortwert zu Debugging-Zwecken.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
<DisplayName>Get Function Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{function.response}</Payload>
</Set>
</AssignMessage>
Die Antwort auf die obige Anfrage würde so aussehen:
Hello yourself!
Der Standardwert von parsed
ist true
. In diesem Beispiel wird parsed="false"
im Tag <Output>
der Richtlinie festgelegt, wodurch verhindert wird, dass die Richtlinie die JSON-Antwort parst.
In den meisten Situationen, in denen die Cloud Functions-Erweiterung verwendet wird, legen Sie parsed="false"
fest.
Weitere Informationen finden Sie unter <Output>-Element.
Wenn die Cloud Functions-Funktion eine JSON-Antwort zurückgibt und Sie parsed="true"
festlegen, ist die Antwort der Erweiterung ein Objektverweis. Verwenden Sie die folgende Syntax, um die Antwort aus der Referenz zu extrahieren: {objectName}.{jsonKey}
. Beispiel:
function.response.message
Aktionen
invoke
Ruft eine Cloud Functions-Funktion auf.
Derzeit unterstützt diese Erweiterung das Aufrufen von HTTP-Triggerfunktionen.
Syntax
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "deployment-region",
"projectId" : "project-id",
"functionName" : "function-name",
"method" : "http-method",
"payload" : { json-payload }
}
]]></Input>
<Output>function.response</Output>
Beispiel
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output>function.response</Output>
Anfrageparameter
Parameter | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
Region | Die Google Cloud-Region, in der die Funktion bereitgestellt wird. | String. | Keine. | Ja. |
projectId | GCP-Projekt-ID. | String. | Keine. | Ja. |
functionName | Der Name der aufzurufenden HTTP-Funktion. Dies ist der Name, den Sie beim Erstellen der Funktion verwendet haben. Er muss kein Name aus dem Code der Funktion sein. | String. | Keine. | Ja. |
method | Die HTTP-Methode, die beim Aufrufen der Funktion verwendet werden soll. | String. | GET |
Nein. |
payload | Die Nutzlast, die mit dem Funktionsaufruf gesendet werden soll. | JSON. | Keine. | Nein. |
Antwort
Gegebenenfalls der Antwortwert der angegebenen Funktion.
Antwortattribute
Keine.
Konfigurationsreferenz
Verwenden Sie Folgendes, wenn Sie diese Erweiterung zur Verwendung in API-Proxys konfigurieren und bereitstellen. Eine Anleitung zum Konfigurieren einer Erweiterung mit der Apigee-Konsole finden Sie unter Erweiterung hinzufügen und konfigurieren.
Häufige Erweiterungseigenschaften
Für jede Erweiterung sind die folgenden Eigenschaften vorhanden.
Attribut | Beschreibung | Standard | Erforderlich |
---|---|---|---|
name |
Der Name, den Sie dieser Konfiguration der Erweiterung zuweisen. | – | Ja |
packageName |
Name des Erweiterungspakets, wie von Apigee Edge angegeben. | – | Ja |
version |
Versionsnummer für das Erweiterungspaket, von dem Sie eine Erweiterung konfigurieren. | – | Ja |
configuration |
Konfigurationswert speziell für die Erweiterung, die Sie hinzufügen. Weitere Informationen finden Sie unter Eigenschaften für dieses Erweiterungspaket. | – | Ja |
Eigenschaften dieses Erweiterungspakets
Geben Sie Werte für die folgenden Konfigurationseigenschaften an, die spezifisch für diese Erweiterung sind.
Property | Beschreibung | Standard | Erforderlich |
---|---|---|---|
Anmeldedaten | Bei Eingabe in die Apigee Edge-Konsole ist dies der Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Verwaltungs-API gesendet wird, ist er ein base64-codierter Wert, der aus der Schlüsseldatei des Dienstkontos generiert wird. | Keine. | Ja. |