Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an. info
Version 2.0.0
Cloud Functions aufrufen, die über Ihr Google Cloud-Projekt bereitgestellt werden
Derzeit unterstützt diese Erweiterung den Aufruf von HTTP-Triggerfunktionen.
Vorbereitung
Dieser Artikel enthält eine Referenz zum Konfigurieren und Verwenden dieser Erweiterung. Bevor Sie die Erweiterung über einen API-Proxy mit der ExtensionCallout-Richtlinie verwenden können, müssen Sie Folgendes tun:
Aktivieren Sie die Cloud Functions API.
Definieren und deploy Sie Funktionen in Cloud Functions für Ihr Google Cloud-Projekt.
Weisen Sie Nutzern über IAM Zugriff auf die gewünschte Zugriffsebene für die Funktion zu. Sie können den Zugriff auf die Funktion beispielsweise auf das Dienstkonto beschränken, mit dem Sie die Erweiterung konfigurieren.
Erstellen Sie mit der GCP Console einen Schlüssel für das Dienstkonto.
Verwenden Sie den Inhalt der resultierenden JSON-Schlüsseldatei, wenn Sie die Erweiterung mithilfe der Konfigurationsreferenz hinzufügen und konfigurieren.
Cloud Functions
Mit Google Cloud Functions können Sie Funktionen in Google Cloud erstellen und bereitstellen und dann aus anderen Code aufrufen. Eine Einführung in Cloud Functions finden Sie in den Kurzanleitungen.
Beispiele
Im folgenden Beispiel wird gezeigt, wie Funktionen in Cloud Functions mithilfe der Richtlinie „ExtensionCallout“ aufgerufen werden.
Node.js-Funktion aufrufen
Im folgenden Beispiel wird eine ExtensionCallout-Richtlinie verwendet, die eine Google Cloud Functions-Erweiterung aufruft. Die Erweiterung ruft die Standardfunktion „Hello World“ auf, die beim Aktivieren der Cloud Functions API enthalten ist.
Das folgende Node.js-JavaScript wird in Cloud Functions für ein GCP-Konto bereitgestellt. Wenn die Anfrage eine Nachrichteneigenschaft enthält, wird diese vom Code zurückgegeben. Andernfalls wird „Hallo Welt!“ 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 ist, 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. Im folgenden Konfigurationscode für die ExtensionCallout-Richtlinie wird dieser Name zusammen mit den Werten für Region und Projekt-ID verwendet, die den Details der Cloud Functions-Umgebung entsprechen, 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 Debugzwecken.
<?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 in etwa so aussehen:
Hello yourself!
Der Standardwert von parsed
ist true
. In diesem Beispiel wird parsed="false"
im <Output>
-Tag der Richtlinie festgelegt, wodurch die JSON-Antwort nicht geparst wird.
In den meisten Fällen, in denen Sie die Cloud Functions-Erweiterung verwenden, legen Sie parsed="false"
fest.
Weitere Informationen finden Sie unter <Output>-Element.
Wenn die Cloud-Funktion eine JSON-Antwort zurückgibt und Sie parsed="true"
festlegen, ist die Antwort der Erweiterung eine Objektreferenz. Verwenden Sie die folgende Syntax, um die Antwort aus der Referenz zu extrahieren: {objectName}.{jsonKey}
. Beispiel:
function.response.message
Aktionen
aufrufen
Ruft eine Cloud-Funktion auf.
Derzeit unterstützt diese Erweiterung den Aufruf 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 (nicht unbedingt ein Name aus dem Code der Funktion). | 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
Der Antwortwert der angegebenen Funktion, falls vorhanden.
Antworteigenschaften
Keine.
Konfigurationsreferenz
Beachten Sie Folgendes, wenn Sie diese Erweiterung für die Verwendung in API-Proxys konfigurieren und bereitstellen. Eine Anleitung zum Konfigurieren einer Erweiterung mit der Apigee Console finden Sie unter Erweiterung hinzufügen und konfigurieren.
Gängige 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 |
Properties für dieses Erweiterungspaket
Geben Sie Werte für die folgenden Konfigurationseigenschaften an, die für diese Erweiterung spezifisch sind.
Attribut | Beschreibung | Standard | Erforderlich |
---|---|---|---|
Anmeldedaten | Wenn Sie diesen Wert in die Apigee Edge-Konsole eingeben, entspricht er dem Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Verwaltungs-API gesendet wird, ist er ein Base64-codierter Wert, der aus der Dienstkonto-Schlüsseldatei generiert wird. | Keine. | Ja. |