Gestire argomenti e pubblicare eventi con Domini eventi
Questo articolo illustra come:
- Creare un dominio di Griglia di eventi
- Eseguire la sottoscrizione agli argomenti di Griglia di eventi
- List keys
- Pubblicare eventi in un dominio
Per informazioni su Domini eventi, vedere Informazioni sui domini eventi per la gestione di argomenti di Griglia di eventi.
Creare un dominio eventi
Per gestire set di argomenti di grandi dimensioni, creare un dominio eventi.
az eventgrid domain create \
-g <my-resource-group> \
--name <my-domain-name> \
-l <location>
In seguito alla creazione verranno restituiti i valori seguenti:
{
"endpoint": "https://<my-domain-name>.westus2-1.eventgrid.azure.net/api/events",
"id": "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>",
"inputSchema": "EventGridSchema",
"inputSchemaMapping": null,
"location": "westus2",
"name": "<my-domain-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<my-resource-group>",
"tags": null,
"type": "Microsoft.EventGrid/domains"
}
Prendere nota del valore di endpoint
e id
perché verranno richiesti per gestire il dominio e pubblicare eventi.
Gestire l'accesso agli argomenti
Per gestire l'accesso agli argomenti, si usa l'assegnazione di ruolo. Per l'assegnazione di ruolo si utilizza il controllo degli accessi in base al ruolo per limitare le operazioni sulle risorse di Azure agli utenti autorizzati in un determinato ambito.
In Griglia di eventi sono disponibili due ruoli predefiniti che è possibile usare per assegnare agli utenti l'accesso ai diversi argomenti in un dominio. Questi ruoli sono EventGrid EventSubscription Contributor (Preview)
, che consente di creare ed eliminare le sottoscrizioni, e EventGrid EventSubscription Reader (Preview)
, che consente solo di visualizzare l'elenco delle sottoscrizioni di eventi.
Il comando seguente dell'interfaccia della riga di comando di Azure consente all'utente alice@contoso.com
di creare ed eliminare le sottoscrizioni di eventi solo per l'argomento demotopic1
:
az role assignment create \
--assignee alice@contoso.com \
--role "EventGrid EventSubscription Contributor (Preview)" \
--scope /subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1
Per altre informazioni sulla gestione dell'accesso per le operazioni di Griglia di eventi, vedere Sicurezza e autenticazione di Griglia di eventi.
Creare argomenti e sottoscrizioni
Il servizio Griglia di eventi crea e gestisce automaticamente l'argomento corrispondente in un dominio in base alla chiamata per creare una sottoscrizione di eventi per un argomento del dominio. Non è previsto alcun passaggio apposito per creare un argomento in un dominio. Analogamente, quando viene eliminata l'ultima sottoscrizione di eventi per un argomento, viene eliminato anche l'argomento.
La procedura di sottoscrizione di un argomento in un dominio è identica a quella per sottoscrivere qualsiasi altra risorsa di Azure. Per l'ID della risorsa di origine specificare l'ID del dominio eventi restituito in precedenza durante la creazione del dominio. Per specificare l'argomento che si vuole sottoscrivere, aggiungere /topics/<my-topic>
alla fine dell'ID risorsa di origine. Per creare una sottoscrizione di eventi con ambito di dominio che riceva tutti gli eventi nel dominio, specificare l'ID del dominio eventi senza specificare alcun argomento.
In genere, l'utente a cui è stato concesso l'accesso nella sezione precedente creerà la sottoscrizione. Per semplificare questo articolo, creare la sottoscrizione.
az eventgrid event-subscription create \
--name <event-subscription> \
--source-resource-id "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1" \
--endpoint https://contoso.azurewebsites.net/api/updates
Se fosse necessario un endpoint di test per sottoscrivere gli eventi, è sempre possibile distribuire un'app Web predefinita che visualizza gli eventi in ingresso. È possibile inviare gli eventi al sito Web di test all'indirizzo https://<your-site-name>.azurewebsites.net/api/updates
.
Le autorizzazioni impostate per un argomento vengono archiviate in Microsoft Entra ID e devono essere eliminate in modo esplicito. L'eliminazione di una sottoscrizione di eventi non implica la revoca di un accesso utente per creare le sottoscrizioni di eventi, se l'utente dispone dell'accesso in scrittura per un argomento.
Pubblicare eventi in un dominio Griglia di eventi
La procedura di pubblicazione di eventi in un dominio è identica a quella di pubblicazione in un argomento personalizzato. Tuttavia, tutti gli eventi vengono pubblicati all'endpoint di dominio invece che nell'argomento personalizzato. Nei dati evento JSON, specificare l'argomento a cui si desidera che vengano inviati gli eventi. Con la matrice di eventi seguente l'evento con "id": "1111"
viene inviato all'argomento demotopic1
, mentre l'evento con "id": "2222"
viene inviato all'argomento demotopic2
:
[{
"topic": "demotopic1",
"id": "1111",
"eventType": "maintenanceRequested",
"subject": "myapp/vehicles/diggers",
"eventTime": "2018-10-30T21:03:07+00:00",
"data": {
"make": "Contoso",
"model": "Small Digger"
},
"dataVersion": "1.0"
},
{
"topic": "demotopic2",
"id": "2222",
"eventType": "maintenanceCompleted",
"subject": "myapp/vehicles/tractors",
"eventTime": "2018-10-30T21:04:12+00:00",
"data": {
"make": "Contoso",
"model": "Big Tractor"
},
"dataVersion": "1.0"
}]
Per ottenere l'endpoint di dominio con l'interfaccia della riga di comando di Azure, usare
az eventgrid domain show \
-g <my-resource-group> \
-n <my-domain>
Per ottenere le chiavi per un dominio usare:
az eventgrid domain key list \
-g <my-resource-group> \
-n <my-domain>
Usare quindi il metodo preferito per effettuare una richiesta HTTP POST per la pubblicazione di eventi nel dominio di Griglia di eventi.
Nota
Per gli esempi che usano SDK del linguaggio di programmazione per pubblicare eventi in un dominio di Griglia di eventi, usare i collegamenti riportati di seguito:
Cercare elenchi di argomenti o sottoscrizioni
Per cercare e gestire un numero elevato di argomenti o sottoscrizioni, le API di Griglia di eventi supportano l'inserzione e la paginazione.
Uso dell'interfaccia della riga di comando
Ad esempio, il comando seguente elenca tutti gli argomenti con il nome contenente mytopic
.
az eventgrid topic list --odata-query "contains(name, 'mytopic')"
Per altre informazioni su questo comando, vedere az eventgrid topic list
.
Passaggi successivi
- Per altre informazioni sui concetti generali relativi ai domini eventi e sulla loro utilità, vedere la panoramica concettuale dei domini eventi.