Sie lesen gerade die Apigee Edge -Dokumentation.
Zur
Apigee X -Dokumentation. info
Version 1.3.1
Rufen Sie Cloud Functions-Funktionen auf, die über Ihr Google Cloud-Projekt bereitgestellt werden.
Derzeit unterstützt diese Erweiterung das Aufrufen von HTTP-Trigger-Funktionen.
Vorbereitung
Dieser Inhalt enthält eine Referenz zum Konfigurieren und Verwenden dieser Erweiterung. Bevor Sie die Erweiterung über einen API-Proxy mit der ExtensionCallout-Richtlinie verwenden, müssen Sie Folgendes tun:
Aktivieren Sie die Cloud Functions API.
Definieren und stellen Sie Funktionen in Cloud Functions für Ihr Google Cloud-Projekt bereit.
Gewähren Sie Nutzern über IAM Zugriff auf die gewünschte Zugriffsebene für die Funktion. Sie können beispielsweise den Zugriff auf die Funktion auf das Dienstkonto beschränken, das Sie zum Konfigurieren der Erweiterung verwenden.
Generieren Sie in der GCP Console einen Schlüssel für das Dienstkonto.
Verwenden Sie den Inhalt der resultierenden JSON-Schlüsseldatei, wenn Sie die Erweiterung mit der Konfigurationsreferenz hinzufügen und konfigurieren.
Informationen zu Cloud Functions
Mit Google Cloud Functions können Sie Funktionen in Google Cloud erstellen und bereitstellen und diese dann über anderen Code aufrufen. Eine Einführung in Cloud Functions finden Sie in einer der Kurzanleitungen.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie Funktionen in Cloud Functions mit der ExtensionCallout-Richtlinie aufrufen.
Node.js-Funktion aufrufen
Das folgende Beispiel enthält eine ExtensionCallout-Richtlinie, 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, gibt der Code diese 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);
};
Der vorherige Funktionscode wird in Cloud Functions einfach als helloWorld gespeichert. Der folgende Konfigurationscode für die ExtensionCallout-Richtlinie verwendet diesen Namen sowie Werte für Region und Projekt-ID, die den Besonderheiten 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 Debuggingzwecken.
<?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 sieht so aus:
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 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 Function 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 Function auf.
Derzeit unterstützt diese Erweiterung das Aufrufen von HTTP-Trigger-Funktionen.
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
Verwenden Sie die folgenden Informationen, wenn Sie diese Erweiterung für die 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.
Allgemeine 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 für dieses Erweiterungspaket
Geben Sie Werte für die folgenden Konfigurationseigenschaften an, die speziell für diese Erweiterung gelten.
| Attribut | Beschreibung | Standard | Erforderlich |
|---|---|---|---|
| Anmeldedaten | Wenn in der Apigee Edge-Konsole eingegeben, ist dies der Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn über die Management API gesendet, ist es ein base64-codierter Wert, der aus der Dienstkonto-Schlüsseldatei generiert wurde. | Keine. | Ja. |