Extension AWS Lambda

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:

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