Google Cloud Functions-Erweiterung

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X
info

Version 2.0.1

Cloud Functions aufrufen, die über Ihr Google Cloud-Projekt bereitgestellt werden

Derzeit unterstützt diese Erweiterung das Aufrufen von Funktionen mit HTTP-Triggern.

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 können, müssen Sie Folgendes tun:

  1. Aktivieren Sie die Cloud Functions API.

  2. Funktionen definieren und in Cloud Functions für Ihr Google Cloud-Projekt bereitstellen.

  3. Gewähren Sie Nutzerzugriff über IAM für die Zugriffsebene, die Sie für die Funktion benötigen. Sie können beispielsweise den Zugriff auf die Funktion auf das Dienstkonto beschränken, das Sie zum Konfigurieren der Erweiterung verwenden.

  4. Schlüssel für das Dienstkonto mit der GCP Console generieren

  5. 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 Funktionen dann über anderen Code aufrufen. Eine Einführung in Cloud Functions finden Sie in den Kurzanleitungen.

Beispiele

Das folgende Beispiel veranschaulicht, wie Funktionen in Cloud Functions mit der ExtensionCallout-Richtlinie aufgerufen werden.

Node.js-Funktion aufrufen

Im folgenden Beispiel wird eine ExtensionCallout-Richtlinie verwendet, um eine Google Cloud Functions-Erweiterung aufzurufen. 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 eine Nachrichteneigenschaft enthält, wird diese vom Code zurückgegeben. Andernfalls wird „Hello World!“ 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 den 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 Werten für Region und Projekt-ID verwendet, 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 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 <Output>-Tag der Richtlinie festgelegt. Dadurch wird verhindert, 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-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 Functions-Funktion auf.

Derzeit unterstützt diese Erweiterung das Aufrufen von Funktionen mit HTTP-Triggern.

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. Das 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.

Antwortattribute

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 für diese Erweiterung spezifisch sind.

Attribut Beschreibung Standard Erforderlich
Anmeldedaten Wenn Sie diesen Wert in der Apigee Edge-Konsole eingeben, ist das der Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Management API gesendet wird, ist er ein Base64-codierter Wert, der aus der Dienstkonto-Schlüsseldatei generiert wird. Keine. Ja.