Share via


Gestire argomenti e pubblicare eventi con Domini eventi

Questo articolo illustra come:

  • Creare un dominio di Griglia di eventi
  • Sottoscrivere 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. L'assegnazione di ruolo usa il controllo degli accessi in base al ruolo di Azure 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 è 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.

Button to deploy the Resource Manager template to Azure.

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 revoca l'accesso a un utente per creare sottoscrizioni di eventi se ha accesso in scrittura in un argomento.

Pubblicare eventi in un dominio di 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 esempi che usano SDK del linguaggio di programmazione per pubblicare eventi in un dominio di Griglia di eventi, usare i collegamenti seguenti:

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