翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
で失敗します。
を使用するにはPutEvents
API、送信するイベントの特定のパターンに一致する EventBridge ルールをアカウントに作成する必要があります。例えば、次のことができます。
-
EventBridge ルールに一致するイベントを受信して出力する Lambda 関数をアカウントに作成します。
-
特定のイベントパターンに一致し、Lambda 関数をターゲットとする EventBridge ルールをデフォルトのイベントバスでアカウントに作成します。
詳細については、以下を参照してください。
-
ユーザーガイドの「 を使用した Amazon EventBridge イベントの追加 PutEvents 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 と構文は次のとおりです。
エラー処理
はエントリの配列を入力としてPutEvents
API受け入れ、結果エントリの配列を返します。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/*"
}
]
}