概要
- Amazon CloudWatch Events で AWS Lambda を定期実行する際に任意の入力パラメータを指定する
- パラメータがどのように渡されてきているかログに出力して確認する
確認用ソースコード
AWS Lambda 関数に入力するソースコード。
ランタイムは Node.js 10.x を使用する。
exports.handler = async (event, context) => {
// CloudWatch Events Message Event オブジェクトを event にセット
const result = {
event: event,
};
// 結果を Amazon CloudWatch Logs に出力する
console.log(JSON.stringify(result, null, 2));
return result;
};
AWS Lambda 関数の管理画面からトリガーを追加する際には任意の入力パラメータを設定できない
AWS Lambda 関数の Designer からトリガーを追加する際には、関数に渡す任意の入力パラメータを設定することはできない。
任意のパラメータを設定していないトリガーから実行した結果を Amazon CloudWatch Logs にて確認すると、以下のような CloudWatch Events Message Event オブジェクトが出力されている。
{
"event": {
"version": "0",
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"detail-type": "Scheduled Event",
"source": "aws.events",
"account": "XXXXXXXXXXXX",
"time": "2019-09-03T13:24:00Z",
"region": "ap-northeast-1",
"resources": [
"arn:aws:events:ap-northeast-1:XXXXXXXXXXXX:rule/my-foo-bar-every-minutes"
],
"detail": {}
}
}
Amazon CloudWatch コンソールから追加・編集時に任意の入力パラメータを設定できる
CloudWatch Management Console からイベントを作成または編集するときには任意の入力パラメータ 「定数 (JSON テキスト)」 を指定することができる。
実行結果を Amazon CloudWatch Logs にて確認すると、設定した JSON が CloudWatch Events Message Event オブジェクトとして出力されているのがわかる。
{
"event": {
"message": "Hello",
"detail": "2分おき実行"
}
}