Extension AWS Lambda

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Version: 1.1.1

Exécuter des 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.

Conditions préalables

Avant d'utiliser l'extension à partir d'un proxy d'API avec 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 sur les appels AWS Lambda.

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 sur les appels AWS Lambda.

Paramètres Description Type 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 ou asynchrone, ou si les valeurs des paramètres doivent être validées. Chaîne. Aucune Non.
logType (Facultatif) Indique s'il faut renvoyer les 4 derniers ko de données du journal. Chaîne Aucune Non.
qualificatif Version de l'alias d'une fonction Lambda publiée. Chaîne Aucune Non.
payload JSON comme entrée de la fonction Lambda. Chaîne Aucune Non.

Réponse

Tableau de fonctions contenant des détails de version spécifiques. 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. Entier Aucune
Charge utile JSON représentant l'objet renvoyé par la fonction. Présent uniquement si le type d'appel est RequestResponse. Pour une 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ètres Description Type Par défaut Obligatoire
masterRegion Région (par exemple, us-east-2) dont les fonctions doivent être listées ; ALL pour inclure des fonctions de n'importe quelle région. S'il est spécifié, vous devez également indiquer functionVersion. Chaîne Aucune Non.
functionVersion Spécifiez ALL pour lister 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 en réponse. Doit être supérieur à 0. Le maximum absolu pouvant être renvoyé est 50. Entier Aucune Non.

Réponse

JSON représentant un tableau de fonctions contenant des détails 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 la 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 à 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 le code suivant 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 au format suivant:

{
"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.