web-dev-qa-db-ja.com

AWS Lambdaの関数呼び出しのイベントとコンテキストとは何ですか?

次のコードでは、引数eventおよびcontextは何を参照していますか?

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

  callback(null, response);
}
8
Erik Olson

ドキュメントから

Lambdaが関数を実行すると、コンテキストオブジェクトがハンドラーに渡されます。このオブジェクトは、呼び出し、関数、および実行環境に関する情報を提供するメソッドとプロパティを提供します。

イベント(および引数)について説明します ここ

より簡単に言えば、イベントを通常の関数への入力と考えてください。コンテキストは、さまざまなメタコンテキストなどを提供するためにAWSによって提供される追加の入力です。

1
dsp_099

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ラムダの呼び出し、関数、実行環境に関する情報を提供します。したがって、これを使用して、メモリ割り当てを確認したり、実行がタイムアウトするまでの残りのミリ秒数を取得したりできます。詳細なドキュメントは次の場所にあります [〜#〜]ここ[〜#〜]

1
Jarred Olson

event引数は、関数の入力パラメーターを保持し、JSON構文です。

たとえば、次のようにしてeventで渡されたURLのクエリ文字列のkey:valueペアとして格納された変数にアクセスできます。

event.queryStringParameters.time

したがって、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は "2:55:55 AM"に等しくなり、残りのラムダ関数でその情報を使用して希望どおりの操作を実行できます。

context引数は、呼び出し、関数、および実行環境に関する情報を提供するメソッドとプロパティを提供します。

AWS Lambdaドキュメント から:

「Lambdaが関数を実行すると、コンテキストオブジェクトがハンドラーに渡されます。このオブジェクトは、呼び出し、関数、実行環境に関する情報を提供するメソッドとプロパティを提供します。

コンテキストメソッド

getRemainingTimeInMillis()–実行がタイムアウトするまでに残っているミリ秒数を返します。

コンテキストプロパティ

functionName – Lambda関数の名前。 functionVersion –関数のバージョン。 invokeFunctionArn –関数の呼び出しに使用されるAmazonリソースネーム(ARN)。呼び出し元がバージョン番号またはエイリアスを指定したかどうかを示します。
memoryLimitInMB –関数に構成されたメモリの量。 ...」

0
Erik Olson