Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
Version 2.0.2
Appelez les fonctions Cloud déployées dans votre projet Google Cloud.
Actuellement, cette extension permet d'appeler des fonctions de déclencheur HTTP.
Prérequis
Ce contenu fournit des informations de référence pour configurer et utiliser cette extension. Avant d'utiliser l'extension à partir d'un proxy d'API à l'aide de la règle ExtensionCallout, vous devez :
Activez l'API Cloud Functions.
Définissez et déployez des fonctions dans Cloud Functions pour votre projet Google Cloud.
Accordez l'accès aux utilisateurs via IAM pour le niveau d'accès souhaité pour la fonction. Par exemple, vous pouvez limiter l'accès à la fonction au seul compte de service que vous utilisez pour configurer l'extension.
Utilisez la console GCP pour générer une clé pour le compte de service.
Utilisez le contenu du fichier JSON de clé obtenu lorsque vous ajoutez et configurez l'extension à l'aide de la documentation de référence sur la configuration.
À propos de Cloud Functions
Google Cloud Functions vous permet de créer et de déployer des fonctions sur Google Cloud, puis de les appeler à partir d'un autre code. Pour une introduction à Cloud Functions, essayez l'un des guides de démarrage rapide.
Exemples
L'exemple suivant montre comment appeler des fonctions dans Cloud Functions à l'aide de la règle ExtensionCallout.
Appeler une fonction Node.js
L'exemple suivant présente une règle ExtensionCallout appelant une extension Google Cloud Functions. L'extension appelle la fonction "Hello World" par défaut incluse lorsque vous activez l'API Cloud Functions.
Le code JavaScript Node.js suivant est déployé dans Cloud Functions pour un compte GCP. Si la requête inclut une propriété de message, le code la renvoie. Sinon, il renvoie "Hello World!" comme réponse.
/**
* 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);
};
Cet exemple inclut une extension Google Cloud Functions configurée avec les identifiants nécessaires pour s'authentifier et obtenir l'autorisation d'appeler du code sur Cloud Functions.
Le code de fonction précédent est enregistré dans Cloud Functions sous le nom helloWorld. Le code de configuration de la règle ExtensionCallout suivant utilise ce nom, ainsi que des valeurs de région et d'ID de projet correspondant aux spécificités de l'environnement Cloud Functions où la fonction est déployée.
<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 règle AssignMessage suivante capture la valeur de la réponse à des fins de débogage.
<?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 réponse à la requête ci-dessus se présenterait comme suit :
Hello yourself!
La valeur par défaut de parsed est true. Cet exemple définit parsed="false" dans la balise <Output> de la règle, ce qui empêche la règle d'analyser la réponse JSON.
Dans la plupart des cas, lorsque vous utilisez l'extension Cloud Functions, vous définissez parsed="false".
Pour en savoir plus, consultez la section Élément<Output>.
Si la fonction Cloud renvoie une réponse JSON et que vous définissez parsed="true", la réponse de l'extension est une référence d'objet. Pour extraire la réponse de la référence, utilisez la syntaxe suivante : {objectName}.{jsonKey}. Exemple :
function.response.message
Actions
appeler
Appelle une fonction Cloud.
Actuellement, cette extension permet d'appeler des fonctions de déclencheur HTTP.
Syntaxe
<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>
Exemple
<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>
Paramètres de requête
| Paramètre | Description | Type | Valeur par défaut | Obligatoire |
|---|---|---|---|---|
| région | La région Google Cloud dans laquelle la fonction est déployée. | Chaîne. | Aucune. | Oui. |
| projectId | ID du projet GCP. | Chaîne. | Aucune. | Oui. |
| functionName | Nom de la fonction HTTP à appeler. Il s'agit du nom que vous avez utilisé lorsque vous avez créé la fonction (il ne s'agit pas nécessairement d'un nom issu du code de la fonction). | Chaîne. | Aucune. | Oui. |
| method | Méthode HTTP à utiliser lors de l'appel de la fonction. | Chaîne. | GET |
Non. |
| payload | Charge utile à envoyer avec l'appel de fonction. | JSON. | Aucune. | Non. |
Réponse
Valeur de réponse de la fonction spécifiée, le cas échéant.
Propriétés de la réponse
Aucune.
Documentation de référence sur la configuration
Utilisez les éléments suivants lorsque vous configurez et déployez cette extension pour l'utiliser dans des proxys d'API. Pour savoir comment configurer une extension à l'aide de la console Apigee, consultez Ajouter et configurer une extension.
Propriétés d'extension courantes
Les propriétés suivantes sont présentes pour chaque extension.
| Propriété | Description | Par défaut | Obligatoire |
|---|---|---|---|
name |
Nom que vous attribuez à cette configuration de l'extension. | Aucune | Oui |
packageName |
Nom du package d'extension tel qu'indiqué par Apigee Edge. | Aucune | Oui |
version |
Numéro de version du package d'extension à partir duquel vous configurez une extension. | Aucune | Oui |
configuration |
Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. | Aucune | Oui |
Propriétés de ce package d'extension
Spécifiez les valeurs des propriétés de configuration suivantes propres à cette extension.
| Propriété | Description | Par défaut | Obligatoire |
|---|---|---|---|
| identifiants | Lorsqu'il est saisi dans la console Apigee Edge, il s'agit du contenu du fichier de clé de votre compte de service. Lorsqu'elle est envoyée via l'API Management, il s'agit d'une valeur encodée en base64 générée à partir du fichier de clé du compte de service. | Aucune. | Oui. |