DVAAWSのサービスを使用した開発

AWS Step Functionsを使用して注文処理のステートマシンを構築しています。ワークフローの途中で、人間の管理者宛てに承認依頼メールを送信し、管理者がメール内の「承認」リンクをクリックするまでステートマシンの実行を一時停止(待機)させる必要があります。このような非同期の外部処理を実装するために最適なStep Functionsの機能はどれですか。

A
コールバックパターン(.waitForTaskToken)を使用してタスクトークンを発行し、外部タスクからの成功通知(SendTaskSuccess)を待つ。
✓ 正解
コールバックパターン(.waitForTaskToken)は、人間の承認や外部システムの非同期処理が完了するまでワークフローを一時停止させるための標準機能です。
B
Waitステートを使用して、指定した日時(Timestamp)または秒数(Seconds)だけステートマシンの実行を一時停止する。
Waitステートは「指定した時間」が経過するまで待機するものであり、「外部イベント(リンクのクリック)」が発生するまで待機する用途には使えません。
C
AWS Lambdaのプロビジョンドコンカレンシーを利用して、HTTPリクエストからのコールバックを常時リッスンし続ける。
Lambdaの常時リッスンは同期的な待機であり、最大15分のタイムアウト制限があるため、いつ完了するかわからない人間の承認処理には使えません。
D
Choiceステートを使用して、DynamoDBテーブルを継続的にポーリングし、承認フラグが立つまでループ処理を行う。
ポーリングやループ処理はステートの遷移回数を無駄に消費し、コストの増大や制限(履歴のハードリミット等)に抵触するアンチパターンです。

解説

AWS Step Functionsのコールバックパターンでは、リソースARNの末尾に `.waitForTaskToken` を追加してタスク(Lambda、SQSなど)を呼び出すと、一意の「タスクトークン」が生成されます。ステートマシンの実行はそのステップで一時停止し、外部プロセス(人間による承認クリックなど)が `SendTaskSuccess` などのAPIをタスクトークンと共に呼び出すまで待機します。これにより、非同期や長期実行のプロセスを効率的にワークフローへ組み込むことができます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る