翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions で EventBridge を呼び出す
Step Functions は、Amazon States Language から、AWS の特定のサービスを直接制御することができます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。
-
実行 ARN とステートマシン ARN は、各
PutEventsRequestEntry
のResources
フィールドに自動的に追加されます。 -
PutEvents
からのレスポンスにゼロ以外のFailedEntryCount
が含まれるのであれば、Task
状態はエラーEventBridge.FailedEntry
で失敗します。
他の AWS のサービスで Step Functions を使用して IAM を設定する方法については、統合サービスの IAM ポリシー を参照してください。
Step Functions は、Amazon EventBridge と統合するため、サービス統合 API を提供します。これにより、Step Functions ワークフローから直接カスタムイベントを送信して、イベント駆動型アプリケーションを構築できます。
PutEvents
API を使用する場合、送信するイベントの特定のパターンに一致する EventBridge ルールをアカウント内に作成する必要があります。例えば、次のことができます。
-
EventBridge ルールに一致するイベントを受信して印刷する Lambda 関数をアカウントに作成します。
-
特定のイベントパターンに一致し、Lambda 関数をターゲットとする、デフォルトのイベントバスで EventBridge ルールをアカウントで作成します。
詳細については、以下を参照してください。
-
EventBridge ユーザーガイドの PutEvents を使って Amazon EventBridge イベントを追加。
-
サービス統合パターンの タスクトークンのコールバックまで待機する。
Step Functions のタスクには入力データまたは結果データの最大サイズにはクォータがあります。これにより、別のサービスとの間でデータを送受信するときに、UTF-8 でエンコードされた文字列として 262,144 バイトのデータに制限されます。「ステートマシンの実行に関連するクォータ」を参照してください。
サポートされている EventBridge API
サポートされている EventBridge API と構文には次のものが含まれます。
以下には、カスタムイベントを送信する Task
が含まれます。
{
"Type": "Task",
"Resource": "arn:aws:states:::events:putEvents",
"Parameters": {
"Entries": [
{
"Detail": {
"Message": "MyMessage"
},
"DetailType": "MyDetailType",
"EventBusName": "MyEventBus",
"Source": "my.source"
}
]
},
"End": true
}
エラー処理
PutEvents
API はエントリの配列を入力として受け取り、結果エントリの配列を返します。PutEvents
アクションが成功する限り、PutEvents
は、1 つ以上のエントリが失敗した場合でも、HTTP 200 レスポンスを返します。PutEvents
は FailedEntryCount
フィールドの失敗したエントリの数を返します。
Step Functions、FailedEntryCount
がゼロより大きいかどうかをチェックします。0 より大きい場合、Step Functions はエラー EventBridge.FailedEntry
を使って状態を失敗させます。こうして、エントリに失敗した場合、キャッチまたは再試行のため、タスクの状態で Step Functions の組み込みエラー処理を使用できます。レスポンスから FailedEntryCount
を分析する追加状態を使う必要はありません。
べき等を実装し、すべてのエントリで安全に再試行できる場合は、Step Functions の再試行ロジックを使用できます。Step Functions は、再試行する前に、PutEvents
入力配列から成功したエントリを削除しません。代わりに、元のエントリの配列を使って再試行します。