Informazioni sui domini eventi per la gestione di argomenti di Griglia di eventi
Un dominio eventi fornisce un endpoint per migliaia di singoli argomenti correlati alla stessa applicazione. È possibile considerarlo come un meta-argomento che può includere migliaia di singoli argomenti. Fornisce un endpoint di pubblicazione per tutti gli argomenti del dominio. Quando si pubblica un evento, il server di pubblicazione deve specificare l'argomento di destinazione nel dominio 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. Per informazioni dettagliate, vedere la sezione Pubblicazione di eventi in un dominio di eventi.
I domini offrono anche il controllo dell'autenticazione e dell'autorizzazione su ogni argomento, in modo da poter 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. Usare i domini eventi per:
- Gestire architetture basate su eventi multi-tenant su larga scala.
- Gestire l'autenticazione e l'autorizzazione.
- Partizionare gli argomenti senza doverli gestire singolarmente.
- Evitare di dover pubblicare singolarmente in ogni endpoint degli argomenti.
Nota
Il dominio eventi non è progettato per supportare lo scenario di trasmissione in cui un evento viene inviato a un dominio 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 in cui si desidera pubblicare. Se il server di pubblicazione vuole pubblicare lo stesso payload dell'evento in più argomenti nel dominio, l'autore deve duplicare il payload dell'evento e modificare il nome dell'argomento e pubblicarlo in Griglia di eventi usando l'endpoint di dominio, singolarmente o come batch.
Esempio di caso d'uso
I domini eventi si possono comprendere più facilmente con un esempio. Si supponga di eseguire Contoso Construction Machinery, dove si producono trattori, attrezzature di scavamento 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. Ognuno dei clienti può sottoscrivere il proprio argomento e ricevere gli eventi che gli vengono recapitati. L'accesso gestito tramite il dominio eventi garantisce che il cliente possa accedere solo al proprio argomento.
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.
Gestione degli accessi
Con un dominio, si ottiene un controllo granulare dell'autorizzazione e dell'autenticazione su ogni argomento tramite il controllo degli accessi in base al ruolo di Azure. È possibile usare questi ruoli per limitare ogni tenant nell'applicazione ai soli argomenti a cui si vuole concedere l'accesso. Il controllo degli accessi in base al ruolo di Azure nei domini eventi funziona allo stesso modo in cui il controllo di accesso gestito funziona nel resto di Griglia di eventi e In Azure. Usare il controllo degli accessi in base al ruolo di Azure per creare e applicare definizioni di ruolo personalizzate nei domini eventi.
Ruoli predefiniti
Griglia di eventi include due definizioni di ruolo predefinite per semplificare l'uso del controllo degli accessi in base al ruolo di Azure per l'uso dei domini eventi. Questi ruoli sono EventGrid EventSubscription Contributor e EventGrid EventSubscription Reader. e vengono assegnati a utenti che necessitano di sottoscrivere argomenti del dominio eventi del proprietario. L'ambito dell'assegnazione di ruolo è limitato all'argomento a cui gli utenti devono sottoscrivere. Per informazioni su questi ruoli, vedere Ruoli predefiniti per Griglia di eventi.
Sottoscrizione di argomenti
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
L'argomento dominio è considerato una risorsa gestita automaticamente in Griglia di eventi. È possibile creare una sottoscrizione di eventi nell'ambito del dominio senza creare l'argomento dominio. In questo caso, Griglia di eventi crea automaticamente l'argomento del dominio per conto dell'utente. Naturalmente, è comunque possibile scegliere di creare manualmente l'argomento del dominio. Questo comportamento consente di preoccuparsi di una risorsa inferiore quando si tratta di un numero enorme di argomenti di dominio. Quando viene eliminata l'ultima sottoscrizione a un argomento di dominio, l'argomento del dominio viene eliminato anche indipendentemente dal fatto che l'argomento del dominio sia stato creato o creato automaticamente manualmente.
Sottoscrizioni di ambiti di dominio
I domini eventi consentono anche di sottoscrivere ambiti di dominio. Una sottoscrizione di eventi in un dominio di eventi riceve tutti gli eventi inviati al dominio indipendentemente dall'argomento a cui vengono inviati gli eventi. Le sottoscrizioni di ambiti di dominio possono essere utili a scopi di gestione e controllo.
Pubblicazione in un dominio eventi
Quando si crea un dominio eventi, si ottiene un endpoint di pubblicazione come se si fosse creato un argomento in Griglia di eventi. Per pubblicare eventi in qualsiasi argomento di un dominio eventi, eseguire il push degli eventi nell'endpoint del dominio nello stesso modo in cui si farebbe per un argomento personalizzato. L'unica differenza è che è necessario specificare l'argomento al quale si vuole recapitare l'evento. Ad esempio, la pubblicazione della matrice di eventi seguente invia l'evento con "id": "1111"
all'argomento foo
mentre l'evento con "id": "2222"
verrebbe inviato all'argomento bar
.
Quando si usa lo schema di eventi cloud, specificare il nome dell'argomento griglia di eventi nel dominio come valore per la source
proprietà . Nell'esempio seguente, source
la proprietà è impostata su foo
per il primo evento e su bar
per il secondo evento.
Se si vuole usare un campo diverso per specificare l'argomento previsto nel dominio, specificare il mapping dello schema di input durante la creazione del dominio. Ad esempio, se si usa l'API REST, usare la proprietà properties.inputSchemaMapping quando eseguire il mapping di tale campo a properties.topic
. Se si usa .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 eventi gestiscono automaticamente la pubblicazione negli argomenti. Invece di pubblicare gli eventi in ogni argomento gestito individualmente, è possibile pubblicare tutti gli eventi nell'endpoint del dominio. Griglia di eventi assicurerà che ogni evento venga inviato all'argomento corretto.
Prezzi
I domini eventi usano gli stessi prezzi delle operazioni usati da tutte le altre funzionalità di Griglia di eventi. Nei domini eventi le operazioni funzionano come negli argomenti personalizzati. Ogni ingresso di un evento in un dominio eventi è un'operazione e ogni tentativo di recapito di un evento è un'operazione.
Contenuto correlato
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).