Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Versione 2.0.0
Esegui chiamate alle Funzioni Cloud di cui è stato eseguito il deployment tramite il tuo progetto Google Cloud.
Al momento, questa estensione supporta l'attivazione delle 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 il criterio ExtensionCallout, devi:
Abilita l'API Cloud Functions.
Definire ed deploy di funzioni in Cloud Functions per il tuo progetto Google Cloud.
Concedere l'accesso utente tramite IAM per il livello di accesso che vuoi per la funzione. Ad esempio, puoi limitare l'accesso alla funzione solo all'account di servizio che utilizzi per configurare l'estensione.
Utilizza la console Google Cloud per generare una chiave per l'account di servizio.
Utilizza i contenuti del file JSON della chiave risultante quando aggiungi e configuri l'estensione utilizzando il riferimento alla configurazione.
Informazioni su Cloud Functions
Con Google Cloud Functions, puoi creare ed eseguire il deployment di funzioni su Google Cloud, quindi richiamarle da altro codice. Per un'introduzione a Cloud Functions, prova una delle guide rapide.
Esempi
Il seguente esempio 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 la funzione "hello world" predefinita inclusa quando attivi 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à messaggio, 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 Google Cloud Functions configurata con le credenziali necessarie per autenticarsi e ottenere l'autorizzazione a richiamare il codice su Cloud Functions.
Il codice della funzione precedente viene salvato in Cloud Functions come helloWorld
. Il seguente codice di configurazione del criterio ExtensionCallout utilizza questo nome, insieme ai valori della regione e dell'ID progetto corrispondenti ai dettagli dell'ambiente Cloud Functions in cui è implementata la 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>
La seguente policy AssignMessage 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 sarà la seguente:
Hello yourself!
Il valore predefinito di parsed
è true
. Questo esempio imposta parsed="false"
nel tag <Output>
del criterio,
impedendo al criterio di analizzare la risposta JSON.
Per la maggior parte delle situazioni, quando utilizzi l'estensione Cloud Functions imposti parsed="false"
.
Per saperne di più, consulta l'elemento <Output>.
Se la funzione Cloud 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.
Al momento, questa estensione supporta l'attivazione delle 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 è eseguita 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 per creare la funzione (non necessariamente un nome del codice della funzione). | Stringa. | Nessuno. | Sì. |
method | Il metodo HTTP da utilizzare per invocare la funzione. | Stringa. | GET |
No. |
payload | Il payload da inviare con l'invocazione della funzione. | JSON. | Nessuno. | No. |
Risposta
Il valore di risposta della funzione specificata, se presente.
Proprietà di risposta
Nessuno.
Riferimento alla configurazione
Utilizza quanto segue quando configuri ed esegui il deployment di questa estensione per utilizzarla nei proxy API. Per la procedura di configurazione di un'estensione utilizzando la console Apigee, vedi Aggiunta e configurazione di 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 di questa estensione.
Proprietà | Descrizione | Predefinito | Obbligatorio |
---|---|---|---|
credenziali | Se inserito nella console Apigee Edge, questi sono i contenuti del file della chiave dell'account di servizio. Se inviato tramite l'API di gestione, è un valore codificato in base64 generato dal file della chiave dell'account di servizio. | Nessuno. | Sì. |