web-dev-qa-db-fra.com

Que sont les événements et le contexte dans l'appel de fonction dans AWS Lambda?

Dans le code suivant, à quoi les arguments event et context font-ils référence?

module.exports.convertTime = (event, context, callback) => {
  const response = {
    statusCode: statusCode,
    body: JSON.stringify({
      message: `${convertedTime}`
    })
  };

  callback(null, response);
}
8
Erik Olson

à partir des documents

Lorsque Lambda exécute votre fonction, il transmet un objet contextuel au gestionnaire. Cet objet fournit des méthodes et des propriétés qui fournissent des informations sur l'appel, la fonction et l'environnement d'exécution.

L'événement (et les arguments) sont décrits ici .

Pour le dire plus simplement, pensez à l'événement comme une entrée à une fonction régulière. Le contexte est une entrée supplémentaire fournie par AWS pour vous donner une variété de méta-contexte et autres.

1
dsp_099

Event représente l'événement ou le déclencheur qui a provoqué l'appel du lambda. Par exemple, si votre lambda est déclenché par un téléchargement vers S3, cela contiendra des informations sur l'objet en cours de téléchargement, par exemple:

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
        "sourceIPAddress": "127.0.0.1"
      },
      "s3": {
        "configurationId": "testConfigRule",
        "object": {
          "eTag": "0123456789abcdef0123456789abcdef",
          "sequencer": "0A1B2C3D4E5F678901",
          "key": "HappyFace.jpg",
          "size": 1024
        },
        "bucket": {
          "arn": bucketarn,
          "name": "sourcebucket",
          "ownerIdentity": {
            "principalId": "EXAMPLE"
          }
        },
        "s3SchemaVersion": "1.0"
      },
      "responseElements": {
        "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
        "x-amz-request-id": "EXAMPLE123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "EXAMPLE"
      },
      "eventSource": "aws:s3"
    }
  ]
}

Des informations détaillées sur les événements et d'autres exemples peuvent être trouvés ICI

Context Fournit des informations sur l'invocation, la fonction et l'environnement d'exécution de votre lambda. Vous pouvez donc l'utiliser pour vérifier l'allocation de mémoire ou pour récupérer le nombre de millisecondes restantes avant l'expiration du délai d'exécution. Une documentation détaillée peut être trouvée ICI

1
Jarred Olson

L'argument de l'événement porte les paramètres d'entrée de la fonction et est en syntaxe JSON.

Par exemple, nous pourrions accéder à une variable stockée sous forme de paire clé: valeur dans la chaîne de requête d'une URL passée dans l'événement par:

event.queryStringParameters.time

Donc, pour une demande POST à https://fakename.execute-api.us-east-1.amazonaws.com/dev/convertTime?time=2:55:55AM :

curl -X POST -H "x-api-key: FAKEAPIKEY23423402394" https://fakename.execute-api.us-east-1.amazonaws.com/dev/convertTime?time=2:55:55AM

event.queryStringParameters.time sera égal à "2:55:55 AM", et nous pouvons faire ce que nous voulons avec ces informations dans le reste de la fonction lambda.

L'argument de contexte fournit des méthodes et des propriétés qui fournissent des informations sur l'appel, la fonction et l'environnement d'exécution.

Depuis Documentation AWS Lambda :

"Lorsque Lambda exécute votre fonction, il transmet un objet contextuel au gestionnaire. Cet objet fournit des méthodes et des propriétés qui fournissent des informations sur l'appel, la fonction et l'environnement d'exécution.

Méthodes contextuelles

getRemainingTimeInMillis () - Renvoie le nombre de millisecondes restantes avant l'expiration de l'exécution.

Propriétés de contexte

functionName - Le nom de la fonction Lambda. functionVersion - La version de la fonction. invokedFunctionArn - Amazon Resource Name (ARN) utilisé pour appeler la fonction. Indique si l'invocateur a spécifié un numéro de version ou un alias.
memoryLimitInMB - La quantité de mémoire configurée sur la fonction. ... "

0
Erik Olson