Vous consultez la documentation Apigee Edge.
Accédez à la
documentation**Apigee X**. info
Version: 1.1.1
Exécutez les fonctions déployées sur AWS Lambda. Utilisez cette extension pour répertorier les fonctions disponibles dans votre compte AWS, puis appelez 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 effectuer les opérations suivantes :
Obtenez votre ID de clé d'accès Amazon et votre clé d'accès secrète.
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 être :
- déployée dans un VPC public ;
- déployée 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
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 éventuellement s'il faut renvoyer les 4 derniers Ko de données de journal. | Chaîne | Aucune. | Non. |
| qualifier | 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 les versions. En voici un exemple :
{
"StatusCode" : 200,
"Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}
Propriétés de réponse
| Propriété | Description | Type | Valeur par défaut |
|---|---|---|---|
| StatusCode | Code d'état HTTP. | Nombre entier | Aucune. |
| Payload | 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, ce champ 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 répertoriées ; ALL pour inclure les fonctions de n'importe quelle région. Si vous spécifiez ce paramètre, vous devez également spécifier functionVersion. |
Chaîne | Aucune. | Non. |
| functionVersion | Spécifiez ALL pour répertorier toutes les versions publiées. Si ce paramètre 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 dans la réponse. Doit être supérieur à 0. Le nombre maximal absolu pouvant être renvoyé est de 50. | Nombre entier | Aucune. | Non. |
Réponse
JSON représentant un tableau de fonctions contenant des informations spécifiques sur les versions.
[
{
"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 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. |
| Role | Rôle d'exécution de la fonction. | Chaîne. | Aucune. |
| Runtime | 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 informations suivantes 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 des valeurs pour les propriétés de configuration suivantes, spécifiques à cette extension.
| Propriété | Description | Valeur 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 au format suivant :{"accessKeyId" : "access-key-ID","secretAccessKey" : "secret-access-key"}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 de ce fichier JSON de clé. |
Aucune. | Oui. |