Azure App Configuration イベントを使用すると、アプリケーションはキー値の変更に対応できます。 これは、複雑なコードや高価で非効率的なポーリング サービスを必要とせずに行われます。 代わりに、Azure Event Grid を介して、AzureFunctions、Azure Logic Apps などのサブスクライバー、または独自のカスタム HTTP リスナーにイベントがプッシュされます。 重要なのは、使用した分だけとなります。
Azure App Configuration イベントは Azure Event Grid に送信されます。これにより、豊富な再試行ポリシーと配信不能配信を通じてアプリケーションに信頼性の高い配信サービスが提供されます。 詳細については、Event Grid のメッセージの配信と再試行に関する記事を参照してください。
App Configuration の一般的なイベント シナリオには、アプリケーション構成の更新、デプロイのトリガー、または構成指向のワークフローが含まれます。 変更の頻度が低いが、シナリオですぐに応答性が必要な場合は、イベント ベースのアーキテクチャが特に効率的になる可能性があります。
簡単な例については、「 データ変更通知に Event Grid を使用する 」を参照してください。
使用可能なイベントの種類
Event Grid では 、イベント サブスクリプションを 使用して、イベント メッセージをサブスクライバーにルーティングします。 Azure App Configuration では、次の種類のイベントが生成されます。
イベントの種類 | Description |
---|---|
Microsoft.AppConfiguration.KeyValueModified | キー値が作成または置き換えられるときに発生します。 |
Microsoft.AppConfiguration.KeyValueDeleted | キー値が削除されたときに発生します。 |
Microsoft.AppConfiguration.SnapshotCreated | スナップショットの作成時に発生します。 |
Microsoft.AppConfiguration.SnapshotModified | スナップショットが変更されたときに発生します。 |
イベント スキーマ
イベントには、次の最上位データがあります。
プロパティ | タイプ | Description |
---|---|---|
source |
文字列 | イベント ソースへの完全なリソース パス。 このフィールドは書き込みできません。 Event Grid は、この値を提供します。 |
subject |
文字列 | イベントの件名へのパブリッシャー定義のパス。 |
type |
文字列 | このイベント ソースに登録されているイベントの種類の 1 つ。 |
time |
文字列 | プロバイダーの UTC 時刻に基づいてイベントが生成される時刻。 |
id |
文字列 | イベントの一意識別子。 |
data |
オブジェクト | App Configuration イベント データ。 |
specversion |
文字列 | CloudEvents スキーマ仕様のバージョン。 |
データ オブジェクトには、次のプロパティがあります。
キー値イベント
プロパティ | タイプ | Description |
---|---|---|
key |
文字列 | 変更または削除されたキー値のキー。 |
label |
文字列 | 変更または削除されたキー値のラベル (存在する場合)。 |
etag |
文字列 | 新しいキー値の etag を KeyValueModified します。
KeyValueDeleted 削除されたキー値の etag。 |
syncToken |
文字列 | キーと値のイベントの後のサーバーの状態を表す同期トークン。 |
スナップショット イベント
プロパティ | タイプ | Description |
---|---|---|
name |
文字列 | 作成または変更されたスナップショットの名前。 |
etag |
文字列 | 新しいスナップショットの etag を SnapshotCreated します。
SnapshotModified 変更されたスナップショットの etag。 |
syncToken |
文字列 | スナップショット イベントの後のサーバーの状態を表す同期トークン。 |
イベントの例
次の例は、キー値変更イベントのスキーマを示しています。
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueModified",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
次の例は、キー値の削除されたイベントのスキーマを示しています。
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueDeleted",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
次の例は、スナップショット作成イベントのスキーマを示しています。
[{
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kvsnapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotCreated",
"time": "2023-09-02T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
次の例は、スナップショット変更イベントのスキーマを示しています。
[{
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/snapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotModified",
"time": "2023-09-03T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
詳細については、「 Azure App Configuration イベント スキーマ」を参照してください。
イベントを使用するためのプラクティス
App Configuration イベントを処理するアプリケーションは、次の推奨プラクティスに従う必要があります。
- 同じイベント ハンドラーにイベントをルーティングするように複数のサブスクリプションを構成できるため、イベントが特定のソースからのイベントであると想定しないでください。 代わりに、メッセージのトピックを調べて、App Configuration インスタンスがイベントを送信していることを確認します。
-
eventType
を確認し、受信するすべてのイベントが想定した種類であると想定しないでください。 -
etag
フィールドを使用して、オブジェクトに関する情報がまだ -date up-toかどうかを把握します。 - sequencer フィールドを使用して、特定のオブジェクトのイベントの順序を理解します。
- サブジェクト フィールドを使用して、変更されたキー値にアクセスします。
次のステップ
Event Grid の詳細と、Azure App Configuration イベントを試す方法については、次を参照してください。