Condividi tramite


Code e argomenti del bus di servizio come gestori per gli eventi di Griglia di eventi di Azure

Un gestore eventi riceve eventi da un'origine evento tramite Griglia di eventi ed elabora tali eventi. È possibile usare istanze di alcuni servizi di Azure per gestire eventi, uno dei quali è il bus di servizio di Azure. Questo articolo illustra come usare una coda o un argomento del bus di servizio come gestore per eventi da Griglia di eventi.

Code del bus di servizio

È possibile indirizzare eventi in Griglia di eventi direttamente a code del bus di servizio per l'uso nel buffering o negli scenari di controllo e comando nelle applicazioni aziendali.

Usare il portale di Azure

Nel portale di Azure, durante la creazione di una sottoscrizione di eventi, selezionare Coda del bus di servizio come tipo di endpoint e quindi fare clic su Selezionare un endpoint per scegliere una coda del bus di servizio.

Screenshot che mostra la configurazione di un gestore della coda del bus di servizio.

Nota

Le code abilitate per la sessione non sono supportate come gestori eventi per gli eventi di Griglia di eventi di Azure

Utilizzare l'interfaccia della riga di comando di Azure

Usare il az eventgrid event-subscription createcomando con --endpoint-type impostato su servicebusqueue e --endpoint impostato su /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Ecco un esempio:

az eventgrid event-subscription create \
    --name <my-event-subscription> \
    --source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
    --endpoint-type servicebusqueue \
    --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1

È anche possibile usare il comando az eventgrid topic event-subscription per argomenti personalizzati, il comando az eventgrid system-topic event-subscription per gli argomenti di sistema e il comando az eventgrid partner topic event-subscription create per gli argomenti dei partner.

Usare Azure PowerShell

Usare il comando New-AzEventGridSubscription con -EndpointType impostato su servicebusqueue e -Endpoint impostato su /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Ecco un esempio:

New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
            -TopicName Topic1 `
            -EndpointType servicebusqueue `
            -Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
            -EventSubscriptionName EventSubscription1

È anche possibile usare il comando New-AzEventGridSystemTopicEventSubscription per gli argomenti di sistema e il comando New-AzEventGridPartnerTopicEventSubscription per gli argomenti dei partner.

Argomenti del bus di servizio

È possibile indirizzare eventi in Griglia di eventi direttamente ad argomenti del bus di servizio per gli scenari di messaggistica di controllo e comando.

Usare il portale di Azure

Nel portale di Azure, durante la creazione di una sottoscrizione di eventi, selezionare Argomento del bus di servizio come tipo di endpoint e quindi fare clic su Selezionare un endpoint per scegliere un argomento del bus di servizio.

Screenshot che mostra la configurazione di un gestore di argomenti del bus di servizio.

Utilizzare l'interfaccia della riga di comando di Azure

Usare il az eventgrid event-subscription createcomando con --endpoint-type impostato su servicebustopic e --endpoint impostato su /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Ecco un esempio:

az eventgrid event-subscription create \
    --name <my-event-subscription> \
    --source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
    --endpoint-type servicebustopic \
    --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1

È anche possibile usare il comando az eventgrid topic event-subscription per argomenti personalizzati, il comando az eventgrid system-topic event-subscription per gli argomenti di sistema e il comando az eventgrid partner topic event-subscription create per gli argomenti dei partner.

Usare Azure PowerShell

Usare il comando New-AzEventGridSubscription con -EndpointType impostato su servicebustopic e -Endpoint impostato su /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Ecco un esempio:

New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
            -TopicName Topic1 `
            -EndpointType servicebustopic `
            -Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
            -EventSubscriptionName EventSubscription1

È anche possibile usare il comando New-AzEventGridSystemTopicEventSubscription per gli argomenti di sistema e il comando New-AzEventGridPartnerTopicEventSubscription per gli argomenti dei partner.

Intestazioni del messaggio

Queste sono le proprietà ricevute nelle intestazioni del messaggio:

Nome proprietà Descrizione
aeg-subscription-name Nome della sottoscrizione di eventi.
aeg-delivery-count Numero di tentativi effettuati per l'evento.
aeg-event-type

Tipo dell'evento.

Può essere uno dei valori seguenti:

  • SubscriptionValidation
  • Notifica
  • SubscriptionDeletion
aeg-metadata-version

Versione dei metadati dell'evento.

Per lo schema di eventi di Griglia di eventi, questa proprietà rappresenta la versione dei metadati e per lo schema di eventi cloud rappresenta la versione della specifica.

aeg-data-version

Versione dei dati dell'evento.

Per lo schema di eventi di Griglia di eventi, questa proprietà rappresenta la versione dei dati e per lo schema di eventi cloud non è applicabile.

aeg-output-event-id ID dell'evento di Griglia di eventi.

Quando si invia un evento a una coda o a un argomento del bus di servizio come messaggio negoziato, messageid del messaggio negoziato corrisponde all' ID di sistema interno.

L'ID di sistema interno per il messaggio viene mantenuto durante il nuovo recapito dell'evento, per consentire di evitare recapiti duplicati attivando il rilevamento dei duplicati per l'entità del bus di servizio. È consigliabile abilitare la durata del rilevamento dei duplicati per l'entità del bus di servizio in modo che corrisponda alla durata (TTL) dell'evento o alla durata massima dei tentativi, a seconda di quale è maggiore.

Proprietà di recapito

Le sottoscrizioni di eventi consentono di configurare le intestazioni HTTP incluse negli eventi recapitati. Questa funzionalità consente di impostare intestazioni personalizzate richieste dalla destinazione. È possibile impostare intestazioni personalizzate sugli eventi recapitati alle code e agli argomenti del bus di servizio di Azure.

Il bus di servizio di Azure supporta l'uso delle proprietà dei messaggi seguenti durante l'invio di singoli messaggi.

Nome intestazione Tipo di intestazione
MessageId Dinamico
PartitionKey Statico o dinamico
SessionId Statico o dinamico
CorrelationId Statico o dinamico
Label Statico o dinamico
ReplyTo Statico o dinamico
ReplyToSessionId Statico o dinamico
To Statico o dinamico
ViaPartitionKey Statico o dinamico

Nota

  • Il valore predefinito di MessageId è l'ID interno dell'evento di Griglia di eventi. È possibile eseguirne l'override. Ad esempio: data.field.
  • È possibile impostare solo SessionId o MessageId.

Per altre informazioni, vedere Proprietà di recapito personalizzate.

Esempi REST (per PUT)

coda del bus di servizio

{
    "properties": 
    {
        "destination": 
        {
			"endpointType": "ServiceBusQueue",
            "properties": 
            {
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

Coda del bus di servizio: recapito con identità gestita

{
	"properties": {
        "deliveryWithResourceIdentity": 
        {
            "identity": 
            {
				"type": "SystemAssigned"
			},
            "destination": 
            {
				"endpointType": "ServiceBusQueue",
                "properties": 
                {
					"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
				}
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

Argomento del bus di servizio

{
    "properties": 
    {
        "destination": 
        {
			"endpointType": "ServiceBusTopic",
            "properties": 
            {
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

Argomento del bus di servizio: recapito con identità gestita

{
    "properties": 
    {
        "deliveryWithResourceIdentity": 
        {
            "identity": 
            {
				"type": "SystemAssigned"
			},
            "destination": 
            {
				"endpointType": "ServiceBusTopic",
                "properties": 
                {
					"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
				}
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

Nota

Quando si verifica un failover per uno spazio dei nomi del bus di servizio con Ripristino di emergenza geografico abilitato, lo spazio dei nomi secondario non genera eventi in Griglia di eventi. È necessario aggiungere manualmente la sottoscrizione di Griglia di eventi per lo spazio dei nomi secondario.

Passaggi successivi

Per un elenco di gestori eventi supportati, vedere l'articolo Gestori eventi.