Что такое событие и контекст в вызове функции в AWS Lambda? - PullRequest
0 голосов
/ 26 декабря 2018

В следующем коде к чему относятся аргументы «событие» и «контекст»?

module.exports.convertTime = (event, context, callback) => {

  const response = {
    statusCode: statusCode,
    body: JSON.stringify({
      message: `${convertedTime}`
    })
  }

  callback(null, response);
}

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Event представляет событие или триггер, вызвавший вызов лямбды.Например, если ваша лямбда запускается при загрузке на S3, она будет содержать информацию о загружаемом объекте, например:

{
  "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"
    }
  ]
}

Подробную информацию о событиях и другие примеры можно найти ЗДЕСЬ

Context Предоставляет информацию о вызове, функции и среде выполнения вашей лямбды.Таким образом, вы можете использовать это для проверки выделения памяти или для получения количества миллисекунд, оставшихся до истечения времени ожидания выполнения.Подробную документацию можно найти ЗДЕСЬ

0 голосов
/ 29 декабря 2018

Аргумент event содержит входные параметры для функции и имеет синтаксис JSON.

Например, мы можем получить доступ к переменной, сохраненной в виде пары ключ: значение в строке запроса URL-адреса, переданного в событии с помощью:

event.queryStringParameters.time

Такдля запроса POST на https://fakename.execute -api.us-east-1.amazonaws.com / dev / convertTime? time = 2: 55: 55 AM:

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

событие.queryStringParameters.time будет равно «2:55:55 AM», и мы можем делать то, что мы хотим с этой информацией в остальной части лямбда-функции.

Аргумент context предоставляет методы и свойствакоторые предоставляют информацию о вызове, функции и среде выполнения.

Из AWS Lambda Documentation :

"Когда Lambda запускает вашу функцию, она передаетконтекстный объект для обработчика. Этот объект предоставляет методы и свойства, которые предоставляют информацию о вызове, функции и среде выполнения.

Методы контекста

getRemainingTimeInMillis () - Возвращает количество миллисекунд, оставшихся доexeВремя ожидания истекло.

Свойства контекста

functionName - Имя лямбда-функции.functionVersion - версия функции.invokedFunctionArn - имя ресурса Amazon (ARN), используемое для вызова функции.Указывает, указывал ли вызывающий номер версии или псевдоним.
memoryLimitInMB - Объем памяти, настроенный для функции.... "

0 голосов
/ 26 декабря 2018

Из документов

Когда Lambda запускает вашу функцию, она передает объект контекста обработчику.Этот объект предоставляет методы и свойства, которые предоставляют информацию о вызове, функции и среде выполнения.

Событие (и аргументы) описаны здесь .

Проще говоря, думайте о событии как о входе в обычную функцию.Контекст - это дополнительный вход, предоставляемый AWS для предоставления вам разнообразного мета-контекста и тому подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...