次のコードでは、引数event
およびcontext
は何を参照していますか?
module.exports.convertTime = (event, context, callback) => {
const response = {
statusCode: statusCode,
body: JSON.stringify({
message: `${convertedTime}`
})
};
callback(null, response);
}
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
ラムダの呼び出し、関数、実行環境に関する情報を提供します。したがって、これを使用して、メモリ割り当てを確認したり、実行がタイムアウトするまでの残りのミリ秒数を取得したりできます。詳細なドキュメントは次の場所にあります [〜#〜]ここ[〜#〜]
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 –関数に構成されたメモリの量。 ...」