Step Functions で EventBridge イベントを追加する - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Step Functions で EventBridge イベントを追加する

Step Functions は、Amazon と統合APIするためのサービス統合を提供します EventBridge。Step Functions ワークフローから直接カスタムイベントを送信して、イベント駆動型アプリケーションを構築する方法について説明します。

との統合について学ぶには AWS Step Functions の サービスについては、 サービスとの統合「」および「」を参照してくださいStep Functions APIのサービスへのパラメータの受け渡し

最適化 EventBridge 統合の主な機能
  • 実行ARNとステートマシンARNは、各 の Resourcesフィールドに自動的に追加されますPutEventsRequestEntry

  • PutEvents からのレスポンスにゼロ以外の FailedEntryCount が含まれるのであれば、Task 状態はエラー EventBridge.FailedEntry で失敗します。

を使用するにはPutEventsAPI、送信するイベントの特定のパターンに一致する EventBridge ルールをアカウントに作成する必要があります。例えば、次のことができます。

  • EventBridge ルールに一致するイベントを受信して出力する Lambda 関数をアカウントに作成します。

  • 特定のイベントパターンに一致し、Lambda 関数をターゲットとする EventBridge ルールをデフォルトのイベントバスでアカウントに作成します。

詳細については、以下を参照してください。

以下には、カスタムイベントを送信する Task が含まれます。

{ "Type": "Task", "Resource": "arn:aws:states:::events:putEvents", "Parameters": { "Entries": [ { "Detail": { "Message": "MyMessage" }, "DetailType": "MyDetailType", "EventBusName": "MyEventBus", "Source": "my.source" } ] }, "End": true }
注記

Step Functions のタスクには入力データまたは結果データの最大サイズにはクォータがあります。これにより、別のサービスとの間でデータを送受信するときに、UTF-8 でエンコードされた文字列として 256 KB のデータに制限されます。「ステートマシンの実行に関連するクォータ」を参照してください。

サポート対象 EventBridge API

サポートされている EventBridge API と構文は次のとおりです。

エラー処理

はエントリの配列を入力としてPutEventsAPI受け入れ、結果エントリの配列を返します。PutEvents アクションが成功した限り、 PutEventsは 1 HTTP つ以上のエントリが失敗しても 200 レスポンスを返します。 は、 FailedEntryCount フィールドで失敗したエントリの数PutEventsを返します。

Step Functions、FailedEntryCount がゼロより大きいかどうかをチェックします。0 より大きい場合、Step Functions はエラー EventBridge.FailedEntry を使って状態を失敗させます。こうして、エントリに失敗した場合、キャッチまたは再試行のため、タスクの状態で Step Functions の組み込みエラー処理を使用できます。レスポンスから FailedEntryCount を分析する追加状態を使う必要はありません。

注記

べき等を実装し、すべてのエントリで安全に再試行できる場合は、Step Functions の再試行ロジックを使用できます。Step Functions は、再試行する前に、PutEvents 入力配列から成功したエントリを削除しません。代わりに、元のエントリの配列を使って再試行します。

IAM を呼び出すための ポリシー EventBridge

次のサンプルテンプレートは、 AWS Step Functions は、ステートマシン定義のリソースに基づいてIAMポリシーを生成します。詳細については、「Step Functions が統合サービスのIAMポリシーを生成する方法」および「Step Functions でサービス統合パターンを検出する」を参照してください。

PutEvents

静的リソース

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "events:PutEvents" ], "Resource": [ "arn:aws:events:us-east-1:123456789012:event-bus/stepfunctions-sampleproject-eventbus" ], "Effect": "Allow" } ] }

動的リソース

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": "arn:aws:events:*:*:event-bus/*" } ] }