Azure App Configuration 이벤트를 사용하면 애플리케이션이 키-값의 변경에 대응할 수 있습니다. 이 작업은 복잡한 코드 또는 비용이 많이 들고 비효율적인 폴링 서비스가 필요 없이 수행됩니다. 대신 이벤트는 Azure Event Grid 를 통해 Azure Functions, 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 |
문자열 | 이 이벤트 원본에 대해 등록된 이벤트 유형 중 하나입니다. |
time |
문자열 | 공급자의 UTC 시간에 따라 이벤트가 생성되는 시간입니다. |
id |
문자열 | 이벤트에 대한 고유 식별자입니다. |
data |
객체 | App Configuration 이벤트 데이터입니다. |
specversion |
문자열 | CloudEvents 스키마 사양 버전입니다. |
데이터 개체에는 다음과 같은 속성이 있습니다.
키-값 이벤트
| 재산 | 유형 | Description |
|---|---|---|
key |
문자열 | 수정되거나 삭제된 키-값의 키입니다. |
label |
문자열 | 수정되거나 삭제된 키-값의 레이블(있는 경우)입니다. |
etag |
문자열 |
KeyValueModified 새 키-값의 etag입니다.
KeyValueDeleted 삭제된 키-값의 etag입니다. |
syncToken |
문자열 | 키-값 이벤트 이후의 서버 상태를 나타내는 동기화 토큰입니다. |
스냅샷 이벤트
| 재산 | 유형 | Description |
|---|---|---|
name |
문자열 | 만들거나 수정한 스냅샷의 이름입니다. |
etag |
문자열 |
SnapshotCreated 새 스냅샷의 etag입니다.
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있는지 파악합니다. - 시퀀서 필드를 사용하여 특정 개체의 이벤트 순서를 이해합니다.
- 주체 필드를 사용하여 수정된 키-값에 액세스합니다.
다음 단계
Event Grid에 대해 자세히 알아보고 Azure App Configuration 이벤트를 사용해 보려면 다음을 참조하세요.