AWS Lambda を Amazon CloudWatch Events に使用する - AWS Lambda

AWS Lambda を Amazon CloudWatch Events に使用する

Amazon CloudWatch イベントは、AWS リソースの状態変化への対応に役立ちます。リソースの状態が変化すると、自動的にイベントがイベントストリームに送信されます。選択したイベントをストリーム内で照合し、AWS Lambda 関数にルーティングしてアクションを実行するためのルールを作成できます。たとえば、AWS Lambda 関数を自動的に呼び出し、EC2 インスタンスまたは AutoScaling グループの状態を記録することができます。

CloudWatch イベント は、ソースからのイベントをラッピングするイベントドキュメントを使用して、関数を非同期に呼び出します。次の例は、Amazon Relational Database Service のデータベーススナップショットから発生したイベントを示しています。

例 CloudWatch イベント event

{ "version": "0", "id": "fe8d3c65-xmpl-c5c3-2c87-81584709a377", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "123456789012", "time": "2020-04-28T07:20:20Z", "region": "us-east-2", "resources": [ "arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1" ], "detail": { "EventCategories": [ "backup" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1", "Date": "2020-04-28T07:20:20.112Z", "Message": "Finished DB Instance backup", "SourceIdentifier": "rdz6xmpliljlb1" } }

Lambda 関数を作成して、AWS Lambda を定期的なスケジュールで実行するように指示することもできます。固定の間隔を指定する(たとえば、1 時間ごとまたは 15 分ごとに Lambda 関数を実行する)ことも、Cron 式を指定することもできます。

例 CloudWatch イベント メッセージイベント

{ "account": "123456789012", "region": "us-east-2", "detail": {}, "detail-type": "Scheduled Event", "source": "aws.events", "time": "2019-03-01T01:23:45Z", "id": "cdc73f9d-aea9-11e3-9d5a-835b769c0d9c", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-schedule" ] }

関数が呼び出されるように CloudWatch イベント を設定するには

  1. Lambda コンソール (関数ページ) を開きます。

  2. 関数を選択します。

  3. [Designer] で、[Add trigger] を選択します。

  4. トリガーの種類を CloudWatch イベント/EventBridgeに設定します。

  5. [ルール] で、[新規ルールの作成] を選択します。

  6. 残りのオプションを設定し、[追加] を選択します。

スケジュール式の詳細については、「Rate または Cron を使用したスケジュール式」を参照してください。

各 AWS アカウントは、[CloudWatch イベント - スケジュール] ソースタイプの最大 100 個の一意なイベントソースを指定できます。それぞれが、最大 5 つの Lambda 関数のイベントソースになります。つまり、AWS アカウントで最大 500 のスケジュールで実行する Lambda 関数を使用できます。