Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X. info
Version: 2.0.0
Exécutez des fonctions déployées sur AWS Lambda. Utilisez cette extension pour lister les fonctions disponibles dans votre compte AWS, puis pour appeler des fonctions spécifiques.
Prérequis
Avant d'utiliser l'extension à partir d'un proxy d'API à l'aide de la règle ExtensionCallout, vous devez:
Obtenez votre ID de clé d'accès et votre clé d'accès secrète Amazon.
Vous aurez besoin de ces informations, ainsi que du nom de la région dans laquelle vos fonctions sont déployées, pour configure cette extension.
Déployez votre fonction Lambda. Pour que l'extension puisse accéder à une fonction Lambda, elle doit:
- Déploiement dans un VPC public
- Déploiement dans un VPC privé avec une passerelle NAT publique
Pour en savoir plus, consultez Configurer une fonction Lambda pour accéder aux ressources d'un VPC Amazon.
À propos d'AWS Lambda
AWS Lambda fournit des environnements de calcul dans lesquels vous pouvez exécuter des fonctions dans l'un des langages compatibles.
Actions
appeler
Invoque une fonction sur AWS Lambda.
Pour en savoir plus sur les paramètres, consultez la documentation AWS Lambda Invoke.
Syntaxe
<Action>invoke</Action>
<Input><![CDATA[
{
"functionName" : "function-on-lambda",
"invocationType" : "RequestResponse | Event | DryRun",
"logType" : "None | Tail",
"qualifier" : "Version-or-alias",
"payload" : "Escaped-JSON-string"
}
]]>
</Input>
<Output>flow-variable</Output>
Exemple
<Action>invoke</Action>
<Input><![CDATA[
{
"functionName" : "helloWorld",
"invocationType" : "RequestResponse",
"logType" : "None",
"qualifier" : "$LATEST",
"payload" : "{ \"key\": \"val\" }"
}
]]>
</Input>
<Output>function.response.value</Output>
Paramètres de requête
Pour en savoir plus sur les paramètres, consultez la documentation AWS Lambda Invoke.
Paramètre | Description | Type | Valeur par défaut | Obligatoire |
---|---|---|---|---|
functionName | Nom de la fonction à appeler. | Chaîne. | Aucune. | Oui. |
invocationType | Indique si la fonction doit être appelée de manière synchrone, asynchrone ou si les valeurs des paramètres doivent être validées. | Chaîne. | Aucune. | Non. |
logType | Indique si les 4 ko de données de journalisation les plus récentes doivent être renvoyés. | Chaîne | Aucune. | Non. |
qualificatif | Version de l'alias d'une fonction Lambda publiée. | Chaîne | Aucune. | Non. |
payload | JSON en entrée de la fonction Lambda. | Chaîne | Aucune. | Non. |
Réponse
Tableau de fonctions contenant des informations spécifiques sur la version. Voici un exemple:
{
"StatusCode" : 200,
"Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}
Propriétés de réponse
Propriété | Description | Type | Par défaut |
---|---|---|---|
StatusCode | Code d'état HTTP. | Entier | Aucune. |
Charge utile | JSON représentant l'objet renvoyé par la fonction. Présent uniquement si le type d'appel est RequestResponse. En cas d'erreur de fonction, il contient un message de description de l'erreur. | Chaîne | Aucune. |
listFunctions
Répertorie les fonctions AWS Lambda disponibles.
Pour en savoir plus sur les paramètres, consultez la documentation AWS Lambda ListFunctions.
Syntaxe
<Action>listFunctions</Action>
<Input><![CDATA[
{
"masterRegion" : "ALL | [a-z]{2}(-gov)?-[a-z]+-\d{1}",
"functionVersion" : "ALL",
"maxItems" : 1 - 10000
}
]]>
</Input>
<Output>flow-variable</Output>
Exemple
<Action>listFunctions</Action>
<Input><![CDATA[
{
"masterRegion" : "ALL",
"functionVersion" : "ALL",
"maxItems" : 50
}
]]>
</Input>
<Output>function.list</Output>
Paramètres de requête
Pour en savoir plus sur les paramètres, consultez la documentation AWS Lambda ListFunctions.
Paramètre | Description | Type | Valeur par défaut | Obligatoire |
---|---|---|---|---|
masterRegion | Région (par exemple, us-east-2 ) dont les fonctions doivent être listées. ALL pour inclure les fonctions de n'importe quelle région. Si vous spécifiez functionVersion , vous devez également spécifier functionVersion . |
Chaîne | Aucune. | Non. |
functionVersion | Spécifiez ALL pour lister toutes les versions publiées. Si cet ARN n'est pas spécifié, seul l'ARN de la dernière version non publiée est renvoyé. |
Chaîne | Aucune. | Non. |
maxItems | Nombre maximal de fonctions à renvoyer en réponse. Doit être supérieur à 0. Le nombre maximal absolu pouvant être renvoyé est de 50. | Entier | Aucune. | Non. |
Réponse
JSON représentant un tableau de fonctions contenant des informations de version spécifiques.
[
{
"FunctionName": "helloWorld",
"FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
"Runtime": "nodejs",
"Role": "arn:aws:iam::012345:role/service-role/fakeRole",
"Handler": "index.handler",
"Description": "A Hello World lambda function.",
"Version": "$LATEST"
},
{
"FunctionName": "helloWorld",
"FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
"Runtime": "nodejs",
"Role": "arn:aws:iam::012345:role/service-role/fakeRole",
"Handler": "index.handler",
"Description": "A Hello World lambda function.",
"Version": "1"
}
]
Propriétés de réponse
Propriété | Description | Type | Par défaut |
---|---|---|---|
Description | Description de la fonction. | Chaîne. | Aucune. |
Handler | Fonction appelée par Lambda pour commencer l'exécution de la fonction. | Chaîne. | Aucune. |
FunctionArn | Nom de la ressource Amazon de la fonction. | Chaîne. | Aucune. |
FunctionName | Nom de la fonction. | Chaîne. | Aucune. |
Rôle | Rôle d'exécution de la fonction. | Chaîne. | Aucune. |
Environnement d'exécution | Environnement d'exécution de la fonction. | Chaîne. | Aucune. |
Version | Version de la fonction. | Chaîne. | 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 spécifiques à cette extension.
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
Région AWS Lambda | Nom de la région dans laquelle vos fonctions sont déployées. Exemple : us-east-1 . |
Aucune. | Oui. |
Identifiants | Lorsqu'il est saisi dans la console Apigee Edge, il s'agit d'un fichier JSON contenant votre ID de clé d'accès Amazon et votre clé d'accès sous la forme suivante:{ "accessKeyId" : "access-key-ID", "secretAccessKey" : "secret-access-key" } Lorsque vous l'envoyez via l'API de gestion, il s'agit d'une valeur encodée en base64 générée à partir de ce fichier JSON de clé. |
Aucune. | Oui. |