Estensione di Google Cloud Functions

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Versione 1.0.5

Richiamare le funzioni Cloud Functions di cui è stato eseguito il deployment tramite il progetto Google Cloud.

Attualmente, questa estensione supporta il richiamo delle funzioni di attivazione HTTP.

Prerequisiti

Questi contenuti forniscono riferimento per la configurazione e l'utilizzo di questa estensione. Prima di utilizzare l'estensione da un proxy API con le norme relative ai callout estensione, devi:

  1. Abilita l'API Cloud Functions.

  2. Definisci e deploy le funzioni in Cloud Functions per il tuo progetto Google Cloud.

  3. Concedi all'utente l'accesso tramite IAM per il livello di accesso desiderato per la funzione. Ad esempio, puoi limitare l'accesso alla funzione solo all'account di servizio che utilizzi per configurare l'estensione.

  4. Utilizza la console di Google Cloud per generare una chiave per l'account di servizio.

  5. Utilizza i contenuti del file JSON della chiave risultante durante l'aggiunta e la configurazione dell'estensione utilizzando il riferimento di configurazione.

Informazioni su Cloud Functions

Con Google Cloud Functions puoi creare ed eseguire il deployment di funzioni su Google Cloud e quindi richiamarle da un altro codice. Per un'introduzione a Cloud Functions, prova una delle guide rapide.

Samples

L'esempio seguente illustra come richiamare le funzioni in Cloud Functions utilizzando i criteri ExtensionCallout.

Richiama la funzione Node.js

L'esempio seguente presenta un criterio ExtensionCallout che chiama un'estensione Google Cloud Functions. L'estensione chiama la funzione "hello world" predefinita inclusa quando abiliti l'API Cloud Functions.

Il seguente codice JavaScript Node.js viene implementato in Cloud Functions per un account Google Cloud. Se la richiesta include una proprietà message, il codice la restituisce. In caso contrario, restituisce "Hello World!" come risposta.

/**
 * 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);
};

Questo esempio include un'estensione di Google Cloud Functions configurata con le credenziali necessarie per l'autenticazione e l'autorizzazione per richiamare il codice su Cloud Functions.

Il codice della funzione precedente viene salvato in Cloud Functions semplicemente come helloWorld. Il seguente codice di configurazione del criterio ExtensionCallout utilizza questo nome, insieme ai valori di regione e ID progetto corrispondenti alle specifiche dell'ambiente Cloud Functions in cui viene eseguito il deployment della funzione.

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

Il seguente criterioAssignMessage acquisisce il valore della risposta a scopo di debug.

<?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>

La risposta alla richiesta precedente sarebbe la seguente:

Hello yourself!

Il valore predefinito di parsed è true. Questo esempio imposta parsed="false" nel tag <Output> del criterio, che impedisce al criterio di analizzare la risposta JSON. Nella maggior parte dei casi, quando utilizzi l'estensione Cloud Functions, imposti parsed="false". Consulta l'elemento <Output> per ulteriori informazioni.

Se la funzione Cloud Functions restituisce una risposta JSON e imposti parsed="true", la risposta dell'estensione è un riferimento a un oggetto. Per estrarre la risposta dal riferimento, utilizza la seguente sintassi: {objectName}.{jsonKey}. Ad esempio:

function.response.message

Azioni

richiamare

Richiama una funzione Cloud Functions.

Attualmente, questa estensione supporta il richiamo delle funzioni di attivazione HTTP.

Sintassi

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

Esempio

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

Parametri richiesta

Parametro Descrizione Tipo Predefinito Obbligatorie
region La regione Google Cloud in cui viene eseguito il deployment della funzione. Stringa. Nessuna. Sì.
projectId ID progetto Google Cloud. Stringa. Nessuna. Sì.
functionName Il nome della funzione HTTP da richiamare. Si tratta del nome che hai utilizzato quando hai creato la funzione (non necessariamente un nome dal codice della funzione). Stringa. Nessuna. Sì.
method Il metodo HTTP da utilizzare quando si chiama la funzione. Stringa. GET N.
payload Il payload da inviare con la chiamata della funzione. JSON. Nessuna. N.

Risposta

Valore di risposta della funzione specificata, se presente.

Proprietà della risposta

Nessuna.

Riferimento per la configurazione

Utilizza quanto segue durante la configurazione e il deployment di questa estensione per l'utilizzo nei proxy API. Per i passaggi per configurare un'estensione utilizzando la console Apigee, consulta Aggiungere e configurare un'estensione.

Proprietà delle estensioni comuni

Per ogni estensione sono presenti le seguenti proprietà.

Proprietà Descrizione Predefinito Obbligatorio
name Il nome che assegni a questa configurazione dell'estensione. Nessuno
packageName Nome del pacchetto dell'estensione fornito da Apigee Edge. Nessuno
version Numero di versione del pacchetto dell'estensione da cui stai configurando un'estensione. Nessuno
configuration Valore di configurazione specifico per l'estensione che stai aggiungendo. Vedi Proprietà per questo pacchetto di estensioni Nessuno

Proprietà per questo pacchetto di estensioni

Specifica i valori per le seguenti proprietà di configurazione specifiche di questa estensione.

Proprietà Descrizione Predefinito Obbligatorie
credenziali Una volta inseriti nella console Apigee Edge, questi saranno i contenuti del file della chiave dell'account di servizio. Quando viene inviato tramite l'API di gestione, si tratta di un valore con codifica Base64 generato dal file della chiave dell'account di servizio. Nessuna. Sì.