Domini di eventi in Griglia di eventi di Azure

Un dominio eventi in Griglia di eventi di Azure fornisce un singolo endpoint di pubblicazione per migliaia di singoli argomenti correlati alla stessa applicazione. È possibile considerare un dominio di eventi come un meta-argomento che contiene molti argomenti singoli. Quando si pubblica un evento, il server di pubblicazione deve specificare l'argomento di destinazione nel dominio dell'evento in cui si desidera pubblicare. Il server di pubblicazione può inviare una matrice o un batch di eventi in cui gli eventi vengono inviati a argomenti diversi nel dominio eventi. Per informazioni dettagliate, vedere Pubblicazione in un dominio eventi.

I domini eventi offrono anche il controllo dell'autenticazione e dell'autorizzazione su ogni argomento, consentendo di partizionare i tenant. Questo articolo descrive come usare i domini eventi per gestire il flusso di eventi personalizzati per vari clienti, organizzazioni o applicazioni aziendali. Utilizzare i domini di eventi per:

  • Gestire architetture multi-tenant orientate agli eventi su larga scala.
  • Gestire l'autenticazione e l'autorizzazione.
  • Partizionare gli argomenti senza doverli gestire singolarmente.
  • Evita di pubblicare singolarmente su ciascun endpoint di argomento.

Esempio di caso d'uso del dominio eventi

I domini degli eventi si spiegano più facilmente con un esempio. Supponiamo che gestiate Contoso Construction Machinery, un'azienda che produce trattori, escavatori e altri macchinari pesanti. Tra le attività aziendali rientra l'invio ai clienti di informazioni in tempo reale sulla manutenzione delle apparecchiature, sullo stato dei sistemi e sugli aggiornamenti dei contratti. Tutte queste informazioni passano a vari endpoint, tra cui l'app, gli endpoint dei clienti e altre infrastrutture configurate dai clienti.

I domini eventi consentono di modellare Contoso Construction Machinery come singola entità griglia di eventi. Ogni cliente è rappresentato come argomento all'interno del dominio. L'autenticazione e l'autorizzazione vengono gestite tramite Microsoft Entra ID. Ciascuno dei tuoi clienti può iscriversi al proprio topic e ricevere i relativi eventi. L'accesso gestito tramite il dominio dell'evento garantisce che possano accedere solo al relativo topic.

Offre inoltre un singolo endpoint, in cui è possibile pubblicare tutti gli eventi dei clienti. Griglia di eventi assicurerà che ogni argomento venga a conoscenza solo degli eventi con ambito a livello del proprio tenant.

Immagine che mostra un caso d'uso di esempio per l'uso dei domini di Griglia di eventi.

Gestione degli accessi per i domini di eventi

I domini di eventi forniscono un controllo granulare dell'autorizzazione e dell'autenticazione per ogni argomento tramite il controllo degli accessi in base al ruolo di Azure (Azure RBAC). È possibile usare RBAC di Azure per limitare ogni tenant nell'applicazione ai soli argomenti a cui si desidera concedere l'accesso. RBAC di Azure nei domini eventi funziona allo stesso modo del controllo di accesso gestito nel resto di Griglia di eventi e di Azure. Usa Azure RBAC per creare e applicare definizioni di ruolo personalizzate nei domini di eventi.

Ruoli predefiniti per i domini di eventi

Event Grid include due definizioni di ruolo predefinite che semplificano Azure RBAC per lavorare con i domini di eventi:

  • Collaboratore per sottoscrizioni di eventi di Griglia di eventi
  • Lettore di EventSubscription di EventGrid

Assegna questi ruoli agli utenti che devono iscriversi ai topic nel dominio degli eventi. Limitare ogni assegnazione di ruolo al solo argomento a cui l'utente deve iscriversi. Per informazioni su questi ruoli, vedere Ruoli predefiniti per Griglia di eventi.

Sottoscrivere argomenti in un dominio eventi

La sottoscrizione di eventi per un argomento all'interno di un dominio eventi equivale alla creazione di una sottoscrizione di eventi in un argomento personalizzato o alla sottoscrizione di un evento da un servizio di Azure.

Importante

Un argomento di dominio è una risorsa gestita automaticamente in Griglia di eventi. È possibile creare una sottoscrizione di eventi nell'ambito del dominio senza prima creare l'argomento del dominio. In tal caso, Griglia di eventi crea automaticamente l'argomento di dominio per conto dell'utente. È anche possibile scegliere di creare manualmente l'argomento del dominio. Questo comportamento riduce il numero di risorse che è necessario gestire quando si lavora con un numero elevato di argomenti di dominio. Quando viene eliminata l'ultima sottoscrizione a un argomento di dominio, viene eliminato anche l'argomento del dominio, indipendentemente dal fatto che l'argomento del dominio sia stato creato o creato automaticamente manualmente.

Sottoscrizioni con ambito di dominio

I domini degli eventi supportano anche le sottoscrizioni a livello di dominio. Una sottoscrizione di eventi nell'ambito del dominio eventi riceve tutti gli eventi inviati al dominio eventi, indipendentemente dall'argomento a cui vengono inviati gli eventi. Le sottoscrizioni con ambito di dominio sono utili per scenari di gestione e controllo.

Pubblicazione su un dominio di eventi

Quando si crea un dominio di eventi, Griglia di eventi fornisce un endpoint di pubblicazione simile all'endpoint per un argomento personalizzato. Per pubblicare eventi in qualsiasi argomento di un dominio eventi, eseguire il push degli eventi nell'endpoint del dominio eventi nello stesso modo in cui si farebbe per un argomento personalizzato. L'unica differenza è che è necessario specificare l'argomento a cui deve essere recapitato l'evento. Ad esempio, la pubblicazione della matrice di eventi seguente invia l'evento con "id": "1111" all'argomento foo e all'evento con "id": "2222" all'argomento bar.

Nota

I domini eventi non supportano scenari di trasmissione in cui un evento viene inviato a un dominio eventi e ogni argomento nel dominio riceve una copia dell'evento. Quando si pubblicano eventi, il server di pubblicazione deve specificare l'argomento di destinazione nel dominio eventi in cui si desidera pubblicare. Per pubblicare lo stesso payload dell'evento in più argomenti nel dominio eventi, il server di pubblicazione deve duplicare il payload dell'evento, modificare il nome dell'argomento per ogni copia e pubblicarli in Griglia di eventi usando l'endpoint del dominio eventi, singolarmente o come batch.

Quando si usa lo schema di eventi cloud, specifica il nome dell'argomento di Griglia di eventi nel dominio di eventi come valore della proprietà source. Nell'esempio seguente la source proprietà è impostata su foo per il primo evento e su bar per il secondo evento.

Per usare un campo diverso per specificare l'argomento di destinazione nel dominio eventi, configurare il mapping dello schema di input durante la creazione del dominio eventi. Per l'API REST, usare la proprietà properties.inputSchemaMapping per eseguire il mapping di tale campo a properties.topic. Per .NET SDK, usare EventGridJsonInputSchemaMapping. Altri SDK supportano anche il mapping dello schema.

[{
  "source": "foo",
  "id": "1111",
  "type": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "time": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
  "specversion": "1.0"
},
{
  "source": "bar",
  "id": "2222",
  "type": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "time": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
  "specversion": "1.0"
}]

I domini di eventi si occupano per te della pubblicazione nei topic. Anziché pubblicare eventi in ogni argomento singolarmente, si pubblicano tutti gli eventi nell'endpoint del dominio eventi e Griglia di eventi instrada ogni evento all'argomento corretto.

Prezzi del dominio dell'evento

I domini di eventi usano gli stessi prezzi per le operazioni delle altre funzionalità di Event Grid. Le operazioni funzionano allo stesso modo nei domini eventi come avviene negli argomenti personalizzati:

  • Ogni ingresso di un evento a un dominio eventi è un'operazione.
  • Ogni tentativo di recapito per un evento è un'operazione.

Per informazioni sulla configurazione di domini eventi, la creazione di argomenti, la creazione di sottoscrizioni di eventi e la pubblicazione di eventi, vedere Manage Event Domains (Gestire domini eventi).