Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Versione 1.0.5
Richiama le funzioni Cloud Functions il cui deployment viene eseguito tramite il tuo progetto Google Cloud.
Al momento, questa estensione supporta la chiamata di funzioni di trigger HTTP.
Prerequisiti
Questi contenuti forniscono un riferimento per la configurazione e l'utilizzo di questa estensione. Prima di utilizzare l'estensione da un proxy API utilizzando le norme ExtensionCallout, devi:
Abilitare l'API Cloud Functions.
Definisci ed esegui il deployment delle funzioni in Cloud Functions per il tuo progetto Google Cloud.
Concedi agli utenti l'accesso tramite IAM per il livello di accesso desiderato per la funzione. Ad esempio, puoi limitare l'accesso alla funzione al solo account di servizio che utilizzi per configurare l'estensione.
Utilizza la console di Google Cloud per generare una chiave per l'account di servizio.
Utilizza i contenuti del file JSON chiave risultante quando aggiungi e configuri l'estensione mediante il riferimento di configurazione.
Informazioni su Cloud Functions
Con Google Cloud Functions, puoi creare ed eseguire il deployment delle funzioni su Google Cloud, per poi richiamarle da altro codice. Per un'introduzione a Cloud Functions, prova una delle guide rapide.
Esempi
L'esempio seguente illustra come richiamare le funzioni in Cloud Functions utilizzando il criterio ExtensionCallout.
Richiama funzione Node.js
L'esempio seguente mostra un criterio ExtensionCallout che chiama un'estensione Google Cloud Functions. L'estensione chiama il nome predefinito "Hello World" inclusa quando abiliti l'API Cloud Functions.
Il seguente codice JavaScript Node.js è implementato in Cloud Functions per un account Google Cloud. Se la richiesta include una proprietà del messaggio, il codice lo 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 a 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 dell'ID progetto e della regione corrispondenti ai dettagli dell'ambiente Cloud Functions in cui è stato 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
. In questo esempio viene impostato 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, devi impostare parsed="false"
.
Vedi <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.
Al momento, questa estensione supporta la chiamata di funzioni di trigger 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 di richiesta
Parametro | Descrizione | Tipo | Predefinito | Obbligatorio |
---|---|---|---|---|
regione | La regione Google Cloud in cui è stato eseguito il deployment della funzione. | Stringa. | Nessuno. | Sì. |
ID progetto | ID progetto Google Cloud. | Stringa. | Nessuno. | Sì. |
functionName | Il nome della funzione HTTP da richiamare. Si tratta del nome utilizzato quando hai creato la funzione (non necessariamente un nome presente nel codice della funzione). | Stringa. | Nessuno. | Sì. |
method | Il metodo HTTP da utilizzare quando si richiama la funzione. | Stringa. | GET |
No. |
payload | Il payload da inviare con la chiamata della funzione. | JSON. | Nessuno. | No. |
Risposta
Il valore di risposta della funzione specificata, se presente.
Proprietà della risposta
Nessuno.
Riferimento alla configurazione
Quando configuri questa estensione e ne esegui il deployment da usare nei proxy API, usa quanto segue. Per la procedura di configurazione di un'estensione utilizzando la console Apigee, vedi Aggiungere e configurare un'estensione.
Proprietà comuni delle estensioni
Per ogni estensione sono presenti le seguenti proprietà.
Proprietà | Descrizione | Predefinito | Obbligatorio |
---|---|---|---|
name |
Il nome che assegni a questa configurazione dell'estensione. | Nessuno | Sì |
packageName |
Nome del pacchetto dell'estensione fornito da Apigee Edge. | Nessuno | Sì |
version |
Numero di versione del pacchetto dell'estensione da cui stai configurando un'estensione. | Nessuno | Sì |
configuration |
Valore di configurazione specifico per l'estensione che stai aggiungendo. Vedi Proprietà per questo pacchetto di estensioni | Nessuno | Sì |
Proprietà per questo pacchetto di estensioni
Specifica i valori per le seguenti proprietà di configurazione specifiche per questa estensione.
Proprietà | Descrizione | Predefinito | Obbligatorio |
---|---|---|---|
credenziali | Se inserito nella console Apigee Edge, si tratta del contenuto del file delle chiavi del tuo account di servizio. Se inviato tramite l'API di gestione, si tratta di un valore codificato in base64 generato dal file delle chiavi dell'account di servizio. | Nessuno. | Sì. |