Event Grid 원본으로서의 Azure App Service
이 문서에서는 Service Bus 이벤트에 대한 속성 및 스키마를 제공합니다. 이벤트 스키마에 대한 소개는 Azure Event Grid 이벤트 스키마를 참조하세요.
참고 항목
프리미엄 계층 Service Bus 네임스페이스만 이벤트 통합을 지원합니다. 기본 및 표준 계층은 Event Grid와의 통합을 지원하지 않습니다.
사용할 수 있는 이벤트 유형
Service Bus는 다음과 같은 이벤트 유형을 내보냅니다.
이벤트 유형 | 설명 |
---|---|
Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners |
새 활성 메시지가 큐 또는 구독에 도착하고 수신 대기 중인 수신기가 없는 경우 발생합니다. |
Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners |
새 활성 메시지가 배달 못한 편지 큐에 도착하고 활성 수신기가 없는 경우 발생합니다. |
Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications |
특정 큐 또는 구독에 활성 수신기가 있더라도 큐 또는 구독에 활성 메시지가 있는 경우 30초마다 발생합니다. 활성 메시지 수가 큐 또는 구독에 대해 0에서 양수 값으로 전환될 때도 발생합니다. |
Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications |
해당 큐 또는 구독의 배달 못한 편지 엔터티에 활성 수신기가 있더라도 큐 또는 구독의 배달 못한 편지 엔터티에 메시지가 있는 경우 30초마다 발생합니다. 또한 배달 못한 편지 메시지 수가 큐 또는 구독의 배달 못한 편지 엔터티에 대해 0에서 양수 값으로 전환될 때 발생합니다. |
예제 이벤트
수신기 없이 사용 가능한 활성 메시지
큐 또는 구독에 활성 메시지가 있고 수신 대기 중인 수신기가 없는 경우 이 이벤트가 생성됩니다.
[{
"topic": "/subscriptions/{subscription-id}/resourcegroups/{your-rg}/providers/Microsoft.ServiceBus/namespaces/{your-service-bus-namespace}",
"subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
"eventType": "Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://{your-service-bus-namespace}.servicebus.windows.net/{your-topic}/subscriptions/{your-service-bus-subscription}/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
수신기 없이 사용 가능한 배달 못한 편지 메시지
배달 못한 편지 큐 이벤트에 대한 스키마 역시 비슷합니다. 배달 못한 편지 큐마다 메시지는 있고 활성 수신기는 없는 이벤트가 하나 이상 발생합니다.
[{
"topic": "/subscriptions/{subscription-id}/resourcegroups/{your-rg}/providers/Microsoft.ServiceBus/namespaces/{your-service-bus-namespace}",
"subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
"eventType": "Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://{your-service-bus-namespace}.servicebus.windows.net/{your-topic}/subscriptions/{your-service-bus-subscription}/$deadletterqueue/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
활성 메시지 사용 가능한 정기 알림
이 이벤트는 특정 큐 또는 구독에 활성 메시지가 있는 경우 해당 특정 큐 또는 구독에 활성 수신기가 있더라도 정기적으로 생성됩니다.
[{
"topic": "/subscriptions/<subscription id>/resourcegroups/DemoGroup/providers/Microsoft.ServiceBus/namespaces/<YOUR SERVICE BUS NAMESPACE WILL SHOW HERE>",
"subject": "topics/<service bus topic>/subscriptions/<service bus subscription>",
"eventType": "Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://YOUR-SERVICE-BUS-NAMESPACE-WILL-SHOW-HERE.servicebus.windows.net/TOPIC-NAME/subscriptions/SUBSCRIPTIONNAME/$deadletterqueue/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
배달 못한 편지 메시지 사용 가능한 정기 알림
특정 큐 또는 구독에 활성 메시지가 있는 경우 해당 특정 큐 또는 구독의 배달 못한 편지 엔터티에 배달 못한 편지 메시지가 있는 경우에도 이 이벤트가 정기적으로 발생합니다.
[{
"topic": "/subscriptions/<subscription id>/resourcegroups/DemoGroup/providers/Microsoft.ServiceBus/namespaces/<YOUR SERVICE BUS NAMESPACE WILL SHOW HERE>",
"subject": "topics/<service bus topic>/subscriptions/<service bus subscription>",
"eventType": "Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://YOUR-SERVICE-BUS-NAMESPACE-WILL-SHOW-HERE.servicebus.windows.net/TOPIC-NAME/subscriptions/SUBSCRIPTIONNAME/$deadletterqueue/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
이벤트 속성
이벤트에는 다음과 같은 최상위 데이터가 있습니다.
속성 | Type | Description |
---|---|---|
topic |
string | 이벤트 원본에 대한 전체 리소스 경로입니다. 이 필드는 쓸 수 없습니다. Event Grid는 이 값을 제공합니다. |
subject |
string | 게시자가 정의한 이벤트 주체의 경로입니다. |
eventType |
string | 이 이벤트 원본에 대해 등록된 이벤트 유형 중 하나입니다. |
eventTime |
string | 공급자의 UTC 시간을 기준으로 이벤트가 생성되는 시간입니다. |
id |
string | 이벤트에 대한 고유 식별자입니다. |
data |
개체 | Blob Storage 이벤트 데이터입니다. |
dataVersion |
string | 데이터 개체의 스키마 버전입니다. 게시자가 스키마 버전을 정의합니다. |
metadataVersion |
string | 이벤트 메타데이터의 스키마 버전입니다. Event Grid는 최상위 속성의 스키마를 정의합니다. Event Grid는 이 값을 제공합니다. |
데이터 개체의 속성은 다음과 같습니다.
속성 | Type | Description |
---|---|---|
namespaceName |
string | 리소스가 있는 Service Bus 네임스페이스입니다. |
requestUri |
string | 이벤트를 내보내는 특정 큐 또는 구독의 URI입니다. |
entityType |
string | 이벤트를 내보내는 Service Bus 엔터티의 유형(큐 또는 구독)입니다. |
queueName |
string | 큐를 구독하는 경우 활성 메시지가 있는 큐입니다. 토픽/구독을 사용하는 경우 값이 null입니다. |
topicName |
string | 활성 메시지가 있는 Service Bus 구독이 속하는 토픽입니다. 큐를 사용하는 경우 null 값입니다. |
subscriptionName |
string | 활성 메시지가 있는 Service Bus 구독입니다. 큐를 사용하는 경우 null 값입니다. |
자습서 및 방법
제목 | 설명 |
---|---|
자습서: Azure Service Bus-Azure Event Grid 통합 예제 | Event Grid는 Service Bus 토픽의 메시지를 함수 앱 및 논리 앱에 전송합니다. |
Azure Service Bus와 Event Grid 통합 | Event Grid와 Service Bus 통합의 개요입니다. |
참고 항목
Geo-DR을 사용하도록 설정된 Service Bus 네임스페이스에 대해 장애 조치(failover)가 발생하면 보조 네임스페이스는 Event Grid에 이벤트를 내보내지 않습니다. 보조 네임스페이스에 대한 Event Grid 구독을 수동으로 추가해야 합니다.
다음 단계
- Azure Event Grid에 대한 소개는 Event Grid란?을 참조하세요.
- Azure Event Grid 구독을 만드는 방법에 대한 자세한 내용은 Event Grid 구독 스키마를 참조하세요.
- Service Bus에서 Azure Event Grid를 사용하여 방법에 대한 자세한 내용은 Service Bus와 Event Grid 간의 통합 개요를 참조하세요.
- Functions 및 Logic Apps를 사용하여 Service Bus 이벤트 수신 대기를 시도합니다.