Extension AWS Lambda

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 :

À 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.