AI-200:Developing AI Cloud Solutions on Azure Azure サービスへの接続と利用 問3
Azure サービスへの接続と利用/イベント/メッセージ ベースの AI ソリューションの開発(Service Bus・Event Grid)Azure Event Grid のイベント サブスクリプションで、Webhook にイベントを配信しています。Webhook が一時的に停止していた間のイベントや、Webhook が 400(Bad Request)を返したイベントが失われていました。配信できなかったイベントを後から調べて再処理できるようにする方法として、適切なものはどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure サービスへの接続と利用」に対応。実際の試験問題ではありません)
- A最大配信試行回数を、既定の30から1に減らして、すぐに配信を打ち切らせる
- Bイベントの有効期間(TTL)を既定の1,440分より長くし、400 を返したイベントも再試行させる
- Cイベント サブスクリプションでデッドレターを有効にし、配信できなかったイベントの保存先として Storage アカウントの BLOB コンテナーを指定する
- DWebhook 側で常に 400 を返すようにして、Event Grid に再試行を促す
正解:C
解説
Event Grid は、配信に失敗したイベントを再試行のスケジュールに従って送り直します。それでも届かなかったイベントは、デッドレターが設定されていれば Storage アカウントの BLOB コンテナーに保存され、設定されていなければ破棄されます。デッドレターは既定では無効です。また、400(Bad Request)や 413 のような再試行しても成功しない応答は再試行されず、すぐにデッドレターの対象になります。再試行の上限は、最大配信試行回数(1〜30、既定30)とイベントの有効期間(1〜1,440分、既定1,440分)で決まります。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。試行回数を減らすと、一時的な停止の間に届かなかったイベントがかえって早く破棄されます。
- B誤り。イベントの有効期間は最大1,440分で、それより長くはできません。また、400 が返った場合は有効期間に関係なく再試行されません。
- C正しい。デッドレターの保存先を設定しておけば、配信できなかったイベントが破棄されずに BLOB として残り、後から調べて再処理できます。
- D誤り。400 は再試行の対象になりません。常に 400 を返すと、イベントはすべて配信失敗として扱われます。