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);
}
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.
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
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. ... "