Extension Google Cloud Functions

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

<ph type="x-smartling-placeholder">

Version 1.0.5

Appelez les fonctions Cloud Functions qui sont déployées via 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 ExtensionCall, vous devez:

  1. Activez l'API Cloud Functions.

  2. Définissez et déployez des fonctions dans Cloud Functions pour votre projet Google Cloud.

  3. Accordez un accès utilisateur via IAM au niveau d'accès que vous souhaitez 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.

  4. Générez une clé pour le compte de service à l'aide de la console GCP.

  5. Utilisez le contenu du fichier JSON de clé obtenu lors de l'ajout et de la configuration de l'extension à l'aide de la documentation de référence de configuration.

À propos de Cloud Functions

Avec Google Cloud Functions, vous pouvez créer et déployer des fonctions sur Google Cloud, puis les appeler à partir d'un autre code. Pour découvrir Cloud Functions, consultez 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 ExtensionCall.

Appeler la fonction Node.js

L'exemple suivant présente une règle ExtensionAccroche qui appelle une extension Google Cloud Functions. L'extension appelle la version par défaut "hello world" est 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 simplement helloWorld. Le code de configuration de la règle ExtensionAccroche suivant utilise ce nom, ainsi que les valeurs de région et d'ID de projet correspondant aux spécificités de l'environnement Cloud Functions dans lequel 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 demande ci-dessus ressemblerait à ceci:

Hello yourself!

La valeur par défaut de parsed est true. Cet exemple définit parsed="false" dans la balise <Output> de la stratégie, ce qui empêche la stratégie d'analyser la réponse JSON. Dans la plupart des cas, vous devez définir parsed="false" lorsque vous utilisez l'extension Cloud Functions. Voir <Sortie> .

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

<ph type="x-smartling-placeholder">

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 Par défaut Obligatoire
région Région Google Cloud dans laquelle la fonction est déployée. Chaîne. Aucun Oui.
projectId ID du projet GCP. Chaîne. Aucun 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. Aucun 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 la fonction. JSON. Aucun Non.

Réponse

Valeur de réponse de la fonction spécifiée, le cas échéant.

Propriétés de la réponse

Aucun

Documentation de référence sur la configuration

Procédez comme suit lorsque vous configurez et déployez cette extension afin de 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 courantes des extensions

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 des valeurs pour les propriétés de configuration suivantes, spécifiques à cette extension.

Propriété Description Par défaut Obligatoire
credentials 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 de gestion, il s'agit d'une valeur encodée en base64 générée à partir du fichier de clé du compte de service. Aucun Oui.