35
21

More than 5 years have passed since last update.

CloudWatch Eventについての整理・備忘録

Posted at

目的

CloudWatch Eventのついての自分向け備忘録

用語・概念の整理

image.png

  • イベント
    • AWS環境の状態変化
    • AWSリソースは状態が変化した際にイベントを生成する
    • リソースの変更だけでなく、Cronのように特定の時刻などを指定してイベントをトリガーすることもできる
  • ルール
    • イベント振り分けるためのルール
    • 発生したイベントがルールに合致した場合はルールにしたがい、イベントをターゲットに振り分ける
  • ターゲット
    • ターゲットは振り分けられたイベントを処理する。

イベントパターン

イベントパターンがいわゆるルールの実態。
下図のようなイベントパターンの場合を考えてみます。

image.png

このようなイベントパターンの場合、
イベントパターンのプレビューに書いてあるように、

  1. イベントの発生元がCodeBuild
  2. イベントの種類がCodeBuildのステート変更
  3. ステートとしては変更後の状態が成功または失敗

の場合にのみ、ターゲットに対するイベントの振り分けを行います。

配列で記述されている場合は原則としてORで扱われます(そりゃそうだ)。

サンプルイベントは、イベントが通知される場合のメッセージの例です。

image.png

Lambdaをターゲットとして用いる場合はこのメッセージがそのままeventに入ってきます。

def lambda_handler(event, context): # 個々のeventに上図の内容がdist形式で含まれる。
    処理内容

どうやらサンプルイベントに含まれる属性はイベントパターンとして指定できる内容の模様です。

たとえば、イベントパターンとしてCodeBuildのhogeプロジェクトのみを指定したい場合は、以下のようにカスタムイベントパターンを指定します。

{
  "source": [
    "aws.codebuild"
  ],
  "detail-type": [
    "CodeBuild Build State Change"
  ],
  "detail": {
    "build-status": [
      "SUCCEEDED",
      "FAILED"
    ],
    "project-name": [
        "hoge"
    ]
  }
}

detailの下にproject-nameキーをおいては配列の中で、対象となるCodeBuildのプロジェクトとなるhogeプロジェクトを指定しています。

イベントのソースとして使用できるAWSサービス

サポートされている各サービスからの CloudWatch イベント イベントの例

ルールのターケットとして使用できるAWSサービス

ほとんどの場合はLambdaやSNS、SQSになりそうですが…

2019年8月末時点では以下のようなものがターゲットとして利用できるようです。
最新のリストは、Amazon CloudWatch Events とはにあるようです。

  • Amazon EC2 インスタンス
  • AWS Lambda 関数
  • Amazon Kinesis Data Streams のストリーム
  • Amazon Kinesis Data Firehose の配信ストリーム
  • Amazon CloudWatch Logs のロググループ
  • Amazon ECS タスク
  • Systems Manager Run Command
  • Systems Manager オートメーション
  • AWS Batch ジョブ
  • Step Functions ステートマシン
  • CodePipeline のパイプライン
  • CodeBuild プロジェクト
  • Amazon Inspector の評価テンプレート
  • Amazon SNS のトピック
  • Amazon SQS キュー
  • 組み込みターゲット: EC2 CreateSnapshot API callEC2 RebootInstances API call、EC2 StopInstances API call、および EC2 TerminateInstances API call。
  • 別の AWS アカウントのデフォルトのイベントバス

まとめ

このように、CloudWatch Eventを活用することでさまざまなイベントを利用して後続処理へのつなぎとできます。

35
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
21