다음을 통해 공유


Azure App Configuration 이벤트에 대응

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 모델을 보여 주는 다이어그램

사용 가능한 이벤트 유형

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 이벤트를 사용해 보려면 다음을 참조하세요.