AWS Step Functions
開発者ガイド

Step Functions の実行ステータスの変更のための CloudWatch イベント

Amazon CloudWatch Events は、AWS リソースの状態の変更に対応できるようにする AWS のサービスです。AWS Step Functions は 2 つの方法により CloudWatch イベント で使用できます。

実行ステータスが変更されたときに、CloudWatch イベント を放出するよう Step Functions を設定できます。これにより、DescribeExecution API を使用して継続的にポーリングすることなく、ワークフローをモニタリングできます。ステートマシンの実行の変更に基づいて、CloudWatch イベント ターゲットを使用して新しいステートマシンの実行を開始する、AWS Lambda 関数を呼び出す、Amazon Simple Notification Service (Amazon SNS) トピックにメッセージを発行するなどの操作を実行できます。

Step Functions ステートマシンを CloudWatch イベント のターゲットとして設定することもできます。これにより、他の AWS サービスからのイベントに応答して、Step Functions ワークフローの実行をトリガーできます。

詳細については、「Amazon CloudWatch Events ユーザーガイド」を参照してください。

Step Functions イベントの例

Step Functions は、次の変更が発生したときに、CloudWatch イベント へのイベントの送信をサポートします。

いずれの場合も、イベントデータの detail セクションに、DescribeExecution API と同じ情報が含まれています。status フィールドは、イベント送信時の実行ステータス (放出されたイベントに応じてRUNNINGSUCCEEDEDFAILEDTIMED_OUTABORTED のいずれか) を示します。

実行の開始

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "012345678912", "time": "2019-02-26T19:42:21Z", "region": "us-east-1", "resources": [ "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-1:012345678912:stateMachine:state-machine", "name": "execution-name", "status": "RUNNING", "startDate": 1551225271984, "stopDate": null, "input": "{}", "output": null } }

実行の成功

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "012345678912", "time": "2019-02-26T19:42:21Z", "region": "us-east-1", "resources": [ "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-1:012345678912:stateMachine:state-machine", "name": "execution-name", "status": "SUCCEEDED", "startDate": 1547148840101, "stopDate": 1547148840122, "input": "{}", "output": "\"Hello World!\"" } }

実行の失敗

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "012345678912", "time": "2019-02-26T19:42:21Z", "region": "us-east-1", "resources": [ "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-1:012345678912:stateMachine:state-machine", "name": "execution-name", "status": "FAILED", "startDate": 1551225146847, "stopDate": 1551225151881, "input": "{}", "output": null } }

実行のタイムアウト

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "012345678912", "time": "2019-02-26T19:42:21Z", "region": "us-east-1", "resources": [ "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-1:012345678912:stateMachine:state-machine", "name": "execution-name", "status": "TIMED_OUT", "startDate": 1551224926156, "stopDate": 1551224927157, "input": "{}", "output": null } }

実行の中止

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "012345678912", "time": "2019-02-26T19:42:21Z", "region": "us-east-1", "resources": [ "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-1:012345678912:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-1:012345678912:stateMachine:state-machine", "name": "execution-name", "status": "ABORTED", "startDate": 1551225014968, "stopDate": 1551225017576, "input": "{}", "output": null } }

CloudWatch イベント コンソールでの CloudWatch イベント ターゲットへの Step Functions イベントのルーティング

Step Functions イベントの CloudWatch イベント ルールの作成

  1. ステートマシンの [Details (詳細)] ページで、[Actions (アクション)]、[Create CloudWatch event rule (CloudWatch イベントルールの作成)] の順に選択します。

    
            CloudWatch イベントルールの作成

    または、CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。ナビゲーションペインで、[イベント]、[ルール] を選択します。

  2. [ルールの作成] を選択します。

  3. [イベントソース] で、[イベントパターン] が選択されていることを確認します。

  4. [Service Name (サービス名)] で、[Step Functions] を選択します。

  5. [Event Type (イベントタイプ)] で、[Step Functions Execution Status Change (Step Functions の実行ステータスの変更)] を選択します。

  6. 必要に応じて、特定のステータス、ステートマシンの ARN 、または実行 ARN を設定します。

  7. [ターゲット] で、[ターゲットの追加] を選択し、ドロップダウンリストからターゲットを選択します。たとえば、Lambda 関数を起動したり、Step Functions ステートマシンの実行を開始したりできます。

  8. 特定のターゲットの詳細情報を追加します。

  9. [詳細の設定] を選択します。[ルールの詳細を設定する] ページで、ルールの [名前] と [説明] を入力します。

  10. [ルールの作成] を選択します。