Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation Apigee X. info
Version : 2.0.1
Exécuter des fonctions déployées sur AWS Lambda Utilisez cette extension pour lister les fonctions disponibles dans votre compte AWS, puis invoquez 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 en aurez besoin, ainsi que du nom de la région dans laquelle vos fonctions sont déployées, pour configurer cette extension.
Déployez votre fonction Lambda. Pour que l'extension puisse accéder à une fonction Lambda, elle doit :
- Déployé dans un VPC public
- Déployé 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 Amazon VPC.
À 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
Appelle 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 s'il faut appeler la fonction de manière synchrone ou asynchrone, ou valider les valeurs des paramètres. | Chaîne. | Aucune. | Non. |
logType | Indique, de manière facultative, s'il faut renvoyer les 4 derniers Ko de données de journal. | Chaîne | Aucune. | Non. |
qualificatif | Version de l'alias d'une fonction Lambda publiée. | Chaîne | Aucune. | Non. |
payload | JSON en tant qu'entrée de la fonction Lambda. | Chaîne | Aucune. | Non. |
Réponse
Tableau de fonctions contenant des informations spécifiques sur la version. En voici un exemple :
{
"StatusCode" : 200,
"Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}
Propriétés de la réponse
Propriété | Description | Type | Par défaut |
---|---|---|---|
StatusCode | Code d'état HTTP. | Nombre entier | Aucune. |
Charge utile | JSON représentant l'objet renvoyé par la fonction. Présent uniquement si le type d'invocation est "RequestResponse". En cas d'erreur de fonction, ce champ contient un message de description de l'erreur. | Chaîne | Aucune. |
listFunctions
Liste 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 ce champ, vous devez également spécifier functionVersion . |
Chaîne | Aucune. | Non. |
functionVersion | Spécifiez ALL pour lister toutes les versions publiées. Si aucune version n'est spécifiée, seul l'ARN de la dernière version non publiée est renvoyé. |
Chaîne | Aucune. | Non. |
maxItems | Nombre maximal de fonctions à renvoyer dans la réponse. Doit être supérieur à 0. Le nombre maximal de résultats pouvant être renvoyés est de 50. | Nombre entier | Aucune. | Non. |
Réponse
JSON représentant un tableau de fonctions contenant des informations spécifiques sur la version.
[
{
"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 la réponse
Propriété | Description | Type | Par défaut |
---|---|---|---|
Description | Description de la fonction. | Chaîne. | Aucune. |
Handler | Fonction que Lambda appelle pour commencer à exécuter la fonction. | Chaîne. | Aucune. |
FunctionArn | Nom de 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 et votre clé d'accès Amazon, sous la forme suivante :{ "accessKeyId" : "access-key-ID", "secretAccessKey" : "secret-access-key" } Lorsqu'il est envoyé 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. |