Kubernetes 上の Event Grid - イベント配信と再試行

Kubernetes 上の Event Grid を Azure Arc で使用すると、一致するサブスクリプションごとに少なくとも 1 回、各メッセージの配信が即座に試行されます。 Kubernetes 上の Event Grid では、サブスクライバーから成功の HTTP 200 応答が返らない場合、または何らかのエラーが発生した場合、固定の再試行スケジュールと再試行ポリシーに基づいて配信が再試行されます。

既定では、Kubernetes 上の Event Grid によって、サブスクライバーに一度に 1 つのイベントが配信されます。 ただし、配信要求のペイロードは、1 つのイベントを含む配列です。 出力バッチ処理機能を有効にすると、複数のイベントを同時に配信することができます。 この機能の詳細については、バッチ イベントの配信に関する記事を参照してください。

重要

Azure Arc を使用した Kubernetes 上の Event Grid は、現在パブリック プレビュー中です。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

Note

プレビュー期間中、Kubernetes 上の Event Grid は、API バージョン 2020-10-15-preview を通じてサポートされます。

再試行のスケジュール

Kubernetes 上の Event Grid では、イベントの配信後、応答を最大 60 秒間待機します。 サブスクライバーのエンドポイントから成功応答 (HTTP 200 など) が送信されない場合、イベントの送信が再試行されます。 しくみは次のとおりです。

  1. メッセージが Kubernetes 上の Event Grid に到着します。 すぐに配信しようとします。
  2. 配信に失敗した場合、メッセージは 1 分のキューにエンキューされ、1 分後に再試行されます。
  3. 配信の失敗が続く場合、メッセージは 10 分のキューにエンキューされ、10 分ごとに再試行されます。
  4. 成功するか、再試行ポリシーの制限に達するまで、配信が試行されます。

再試行ポリシー

再試行ポリシーを決定する構成は、2 つあります。 次のとおりです。

  • 最大試行回数
  • イベントの Time-To-Live (TTL)

再試行ポリシーの制限のいずれかに達すると、イベントは削除されます。 これらの制限の構成は、サブスクリプションごとに行われます。 次のセクションでは、それぞれについて詳しく説明します。

サブスクライバーごとの既定値の構成

また、サブスクリプションごとに再試行ポリシーの制限を指定することもできます。 サブスクライバーごとの既定値構成の詳細については、API のドキュメントを参照してください。 サブスクリプション レベルの既定値は、Kubernetes レベルの構成の Event Grid モジュールよりも優先されます。

次の例では、maxNumberOfAttempts を 3 分、eventTimeToLiveInMinutes を 30 分で Web hook サブスクリプションを設定します。

{
 "properties": {
  "destination": {
   "endpointType": "WebHook",
   "properties": {
    "endpointUrl": "<your_webhook_url>",
    "eventDeliverySchema": " CloudEventSchemaV1_0"
   }
  },
  "retryPolicy": {
   "eventTimeToLiveInMinutes": 30,
   "maxDeliveryAttempts": 3
  }
 }

次の手順

Azure Arc for Kubernetes 上の Event Grid でサポートされる宛先とハンドラーについて詳しくは、Kubernetes 上の Event Grid - イベント ハンドラーに関する記事を参照してください。