Azure App Configuration イベントへの反応

Azure App Configuration イベントを使用すると、アプリケーションでキー/値の変化に反応できます。 これを実行するために、複雑なコードや、高価で非効率的なポーリング サービスは必要ありません。 代わりにイベントが、Azure Event Grid を通して、Azure FunctionsAzure Logic Apps などのサブスクライバー、またはユーザー独自のカスタム HTTP リスナーにプッシュされます。 決定的な点は、使用した分だけ支払うということです。

Azure App Configuration のイベントは Azure Event Grid に送信されます。そこでは、豊富な再試行ポリシーと配信不能メッセージ配信を使用して、信頼性の高い配信サービスがアプリケーションに提供されます。 詳細については、Event Grid のメッセージの配信と再試行に関する記事を参照してください。

一般的なアプリ構成イベントのシナリオには、アプリケーション構成の更新、デプロイのトリガー、またはすべての構成指向のワークフローが含まれます。 変更の頻度が低くても、即時の応答性が必要なシナリオでは、イベント ベースのアーキテクチャは特に効果的です。

簡単な例については、データ変更通知での Event Grid の使用に関する記事を参照してください。

Event Grid モデルを示す図。

使用できる Azure App Configuration イベント

Event Grid は、イベント サブスクリプションを使用して、イベント メッセージをサブスクライバーにルーティングします。 Azure App Configuration イベントのサブスクリプションには、2 種類のイベントを含むことができます。

イベント名 説明
Microsoft.AppConfiguration.KeyValueModified キー/値が作成または置換されたときに発生します。
Microsoft.AppConfiguration.KeyValueDeleted キー/値が削除されたときに発生します。

イベント スキーマ

Azure App Configuration イベントには、データの変更に対応するために必要なすべての情報が含まれます。 App Configuration イベントは、eventType プロパティが Microsoft.AppConfiguration で始まるため識別できます。 Event Grid イベントのプロパティの使用法について詳しくは、「Event Grid イベント スキーマ」をご覧ください。

プロパティ Type 説明
topic string イベントを生成する App Configuration の完全な Azure Resource Manager ID。
subject string イベントの対象であるキー/値の URI。
eventTime string イベントが生成された日時 (ISO 8601 形式)。
eventType string Microsoft.AppConfiguration.KeyValueModified または Microsoft.AppConfiguration.KeyValueDeleted
Id string このイベントの一意識別子。
dataVersion string データ オブジェクトのスキーマ バージョン。
metadataVersion string 最上位プロパティのスキーマ バージョン。
data object Azure App Configuration 固有のイベント データのコレクション。
data.key string 変更または削除されたキー/値のキー。
data.label string 変更または削除されたキー/値のラベル (存在する場合)。
data.etag string KeyValueModified の場合、新しいキー/値の etag。 KeyValueDeleted の場合、削除されたキー/値の etag。

以下に KeyValueModified イベントの例を示します。

[{
  "id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
  "topic": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
  "subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
  "data": {
    "key": "Foo",
    "label": "FizzBuzz",
    "etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
  },
  "eventType": "Microsoft.AppConfiguration.KeyValueModified",
  "eventTime": "2019-05-31T20:05:03Z",
  "dataVersion": "1",
  "metadataVersion": "1"
}]

詳細については、Azure App Configuration イベント スキーマに関する記事を参照してください。

イベントの使用に関する手法

App Configuration イベントを処理するアプリケーションは、次のいくつかの推奨プラクティスに従う必要があります。

  • 同じイベント ハンドラーにイベントをルーティングするように複数のサブスクリプションを構成できるため、イベントが特定のソースからのものであると想定しないでください。 代わりに、メッセージのトピックを調べて、App Configuration インスタンスがそのイベントを送信していることを確認します。
  • eventType を確認します。受信するすべてのイベントが予期する種類であると想定してはいけません。
  • etag フィールドを使って、オブジェクトに関する情報が現在も最新かどうかを確認します。
  • sequencer フィールドを使って、特定のオブジェクトに対するイベントの順序を確認します。
  • subject フィールドを使用して、変更されたキー/値にアクセスします。

次のステップ

Event Grid の詳細について確認し、Azure App Configuration イベントを試してみるために、以下をご覧ください。