翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step EventBridge Functions による呼び出し
Step Functions AWS は特定のサービスを Amazon ステートメント言語 (ASL) から直接制御できます。詳細については、「他の サービスでの使用」および「サービス API にパラメータを渡す」を参照してください。
EventBridge 最適化インテグレーションは EventBridge AWS SDK インテグレーションとどう違うのか
-
実行 ARN とステートマシン ARN は、各
PutEventsRequestEntry
のResources
フィールドに自動的に追加されます。 -
PutEvents
からのレスポンスにゼロ以外のFailedEntryCount
が含まれるのであれば、Task
状態はエラーEventBridge.FailedEntry
で失敗します。
IAMStep Functions AWS 他のサービスと併用する場合の権限の設定方法については、を参照してください統合サービスの IAM ポリシー。
Step Functions は Amazon EventBridge と統合するためのサービス統合 API を提供します。これにより、Step Functions ワークフローから直接カスタムイベントを送信して、イベント駆動型アプリケーションを構築できます。
PutEvents
この API を使用するには、 EventBridge 送信するイベントの特定のパターンに一致するルールをアカウント内に作成する必要があります。例えば、次のことができます。
-
ルールに一致するイベントを受信して出力する Lambda 関数をアカウント内に作成します。 EventBridge
-
アカウントのデフォルトイベントバスで、特定のイベントパターンに一致し、Lambda EventBridge 関数を対象とするルールを作成します。
詳細については、以下を参照してください。
-
『 EventBridge ユーザーガイド』 PutEventsの Amazon EventBridge イベントの追加
-
サービス統合パターンの タスクトークンのコールバックまで待機する。
注記
Step Functions のタスクには入力データまたは結果データの最大サイズにはクォータがあります。これにより、別のサービスとの間でデータを送受信するときに、UTF-8 でエンコードされた文字列として 256 KB のデータに制限されます。ステートマシンの実行に関連するクォータ を参照してください。
サポートされている 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
入力配列から成功したエントリを削除しません。代わりに、元のエントリの配列を使って再試行します。