Concetti relativi agli spazi dei nomi di Griglia di eventi di Azure

Questo articolo presenta i concetti e le funzionalità principali associati agli argomenti dello spazio dei nomi.

Eventi

Un evento è la quantità minima di informazioni necessarie per descrivere integralmente ciò che si è verificato nel sistema. Spesso si fa riferimento a un evento discreto perché rappresenta un fatto distinto e autonomo su un sistema che fornisce informazioni utili. Ogni evento include informazioni comuni, ad esempiosource dell'evento, time in cui si è verificato l'evento e un identificatore univoco. Ogni evento ha anche un type, che in genere è un identificatore univoco che descrive il tipo di annuncio per cui viene usato l'evento.

Un evento di creazione di un nuovo file in Archiviazione di Azure, ad esempio, contiene i dettagli sul file, come il valore lastTimeModified. Un evento di Hub eventi ha l'URL del file acquisito. Un evento relativo a un nuovo ordine nel microservizio Orders potrebbe avere un attributo orderId e un attributo URL alla rappresentazione dello stato dell'ordine. Altri esempi di tipi di evento includono: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.

Ecco un evento di esempio:

{
    "specversion" : "1.0",
    "type" : "com.yourcompany.order.created",
    "source" : "/orders/account/123",
    "subject" : "O-28964",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "comexampleextension1" : "value",
    "comexampleothervalue" : 5,
    "datacontenttype" : "application/json",
    "data" : {
       "orderId" : "O-28964",
       "URL" : "https://com.yourcompany/orders/O-28964"
    }
}

Un altro tipo di evento

La community degli utenti si riferisce anche a "eventi" ai messaggi che contengono un punto dati, ad esempio la lettura di un singolo dispositivo o un clic su una pagina dell'applicazione Web. Questo tipo di evento viene in genere analizzato in un intervallo di tempo per derivare informazioni dettagliate ed eseguire un'azione. Nella documentazione di Griglia’di eventi si fa riferimento a questo tipo di evento come punto dati, streaming di dati o semplicemente come telemetria. Tra gli altri tipi di messaggi, questo tipo di eventi viene usato con la funzionalità broker MQTT (Message Queuing Telemetry Transport) di Griglia di eventi.

Supporto per CloudEvents

Gli argomenti dello spazio dei nomi di Griglia di eventi accettano eventi conformi alla specifica CloudEvents 1.0, standard aperto, della Cloud Native Computing Foundation (CNCF) usando il binding del protocollo HTTP in formato JSON. Un CloudEvent è un tipo di messaggio che contiene ciò che viene comunicato, detto dati dell'evento e metadati su di esso. I dati degli eventi nelle architetture guidate dagli eventi in genere contengono le informazioni che annunciano una modifica dello stato del sistema. I metadati CloudEvents sono costituiti da un set di attributi che forniscono informazioni contestuali sul messaggio, ad esempio dove ha avuto origine (il sistema di origine), il tipo e così via.

Per altre informazioni, vedere Supporto per lo schema CloudEvents.

Autori

Un server di pubblicazione è l'applicazione che invia eventi alla Griglia di eventi. Potrebbe trattarsi della stessa applicazione in cui sono stati originati gli eventi, ovvero l'origine evento. È possibile pubblicare eventi dalla propria applicazione quando si usano gli argomenti dello spazio dei nomi.

Origini eventi

Un'origine evento indica la posizione in cui si verifica l'evento. Ogni origine evento supporta uno o più tipi di evento. Ad esempio, l'applicazione è l'origine evento per gli eventi personalizzati definiti dal sistema. Quando si usano gli argomenti dello spazio dei nomi, le origini eventi supportate sono applicazioni personalizzate.

Namespaces (Spazi dei nomi)

Uno spazio dei nomi di Griglia di eventi è un contenitore di gestione per le risorse seguenti:

Conto risorse Protocollo supportato
Argomenti dello spazio dei nomi HTTP
Spazi degli argomenti MQTT
Client MQTT
Gruppi di client MQTT
Certificati CA MQTT
Associazioni autorizzazioni MQTT

Con uno spazio dei nomi di Griglia di eventi di Azure è possibile raggruppare le risorse correlate e gestirle come singola unità nella sottoscrizione di Azure. Fornisce un nome di dominio completo (FQDN) univoco.

Uno spazio dei nomi espone due endpoint:

  • Endpoint HTTP per supportare i requisiti generali di messaggistica usando gli argomenti dello spazio dei nomi.
  • Endpoint MQTT per la messaggistica o le soluzioni IoT che usano MQTT.

Uno spazio dei nomi fornisce anche endpoint di rete integrati con DNS. Offre inoltre una gamma di funzionalità di controllo di accesso e gestione dell'integrazione di rete, ad esempio il filtro dell'ingresso IP pubblico e i collegamenti privati. È anche il contenitore di identità gestite usate per le risorse contenute nello spazio dei nomi.

Ecco alcuni altri punti sugli spazi dei nomi:

  • Lo spazio dei nomi è una risorsa rilevata con proprietà tags e location e, una volta creata, è disponibile in resources.azure.com.
  • Il nome dello spazio dei nomi può essere lungo 3-50 caratteri. Può includere caratteri alfanumerici e trattini (-) e nessuno spazio.
  • Il nome deve essere univoco per area.

Unità elaborate

Le unità elaborate definiscono la capacità di ingresso e velocità in uscita degli eventi negli spazi dei nomi. Per altre informazioni, vedere quote e limiti di Griglia di eventi di Azure.

Argomenti

Argomento contenente eventi pubblicati in Griglia di eventi. In genere si usa una risorsa argomento per una raccolta di eventi correlati. Spesso si fa riferimento ad argomenti all'interno di uno spazio dei nomi come argomenti dello spazio dei nomi.

Argomenti dello spazio dei nomi

Gli argomenti dello spazio dei nomi sono argomenti creati all'interno di uno spazio dei nomi di Griglia di eventi. L'applicazione pubblica eventi in un endpoint dello spazio dei nomi HTTP specificando un argomento dello spazio dei nomi in cui gli eventi pubblicati sono contenuti logicamente. Quando si progetta l'applicazione, è necessario decidere quanti argomenti creare. Per soluzioni relativamente grandi, creare un argomento dello spazio dei nomi per ogni categoria di eventi correlati. Si consideri, ad esempio, un'applicazione che gestisce gli account utente e un'altra applicazione sugli ordini dei clienti. È improbabile che tutti i sottoscrittori di eventi vogliano eventi di entrambe le applicazioni. Per separare i problemi, creare due argomenti dello spazio dei nomi: uno per ogni applicazione. Consentire ai consumer di eventi di sottoscrivere l'argomento in base ai requisiti. Per le soluzioni di piccole dimensioni, è preferibile inviare tutti gli eventi a un singolo argomento.

Gli argomenti dello spazio dei nomi supportano il recapito pull e il recapito push. Vedere quando usare il recapito pull o push per decidere se il recapito pull è l'approccio appropriato in base ai requisiti.

Sottoscrizioni di eventi

Una sottoscrizione di eventi è una risorsa di configurazione associata a un singolo argomento. Tra le altre cose, una sottoscrizione di eventi viene usata per impostare i criteri di selezione degli eventi, al fine di definire la raccolta di eventi disponibile per un sottoscrittore del set totale di eventi disponibili in un argomento. È possibile filtrare gli eventi in base ai requisiti del sottoscrittore. Ad esempio, è possibile filtrare gli eventi in base al tipo di evento. È anche possibile definire criteri di filtro per le proprietà dei dati degli eventi se si usa un oggetto JSON come valore per la proprietà di dati. Per altre informazioni sulle proprietà delle risorse, cercare le operazioni del piano di controllo nell'API REST di Griglia di eventi.

Diagramma che mostra un argomento e le sottoscrizioni di eventi associate.

Per un esempio di creazione di sottoscrizioni per gli argomenti dello spazio dei nomi, vedere Pubblicare e utilizzare messaggi usando gli argomenti dello spazio dei nomi tramite l'interfaccia della riga di comando.

Nota

Le sottoscrizioni di eventi in un argomento dello spazio dei nomi includono un modello di risorse semplificato rispetto a quello usato per argomenti personalizzati, di dominio, partner e di sistema (Griglia di eventi di base). Per altre informazioni, vedere Creare, visualizzare e gestire sottoscrizioni di eventi.

Recapito pull

Con il recapito pull, l'applicazione si connette a Griglia di eventi per leggere i messaggi usando una semantica simile alla coda. Quando le applicazioni si connettono a Griglia di eventi per utilizzare gli eventi, sono sotto controllo della frequenza di utilizzo degli eventi e della relativa tempistica. Le applicazioni consumer possono anche usare endpoint privati quando ci si connette a Griglia di eventi per leggere gli eventi usando lo spazio IP privato.

Il recapito pull supporta le operazioni seguenti per la lettura dei messaggi e il controllo dello stato dei messaggi: ricezione, conferma, rilascio, rifiuto e rinnovo del blocco. Per altre informazioni, vedere Panoramica del recapito pull.

Forma dei dati durante la ricezione di eventi tramite il recapito pull

Quando si recapitano eventi tramite il recapito pull, Griglia di eventi include una matrice di oggetti che a sua volta include gli oggetti event e brokerProperties. Il valore della proprietà event è il CloudEvent recapitato in modalità contenuto strutturata. L'oggetto brokerProperties contiene il token di blocco associato al CloudEvent recapitato. L'oggetto JSON seguente è una risposta di esempio a un'operazione di ricezione che restituisce due eventi:

{
    "value": [
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
                "deliveryCount": 2
            },
            "event": {
                "specversion": "1.0",
                "id": "A234-1234-1235",
                "source": "/mycontext",
                "time": "2018-04-05T17:31:00Z",
                "type": "com.example.someeventtype",
                "data": "some data"
            }
        },
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
                "deliveryCount": 1
            },
            "event": {
                "specversion": "1.0",
                "id": "B688-1234-1235",
                "source": "/mycontext",
                "type": "com.example.someeventtype",
                "time": "2018-04-05T17:31:00Z",
                "data": {
                    "somekey" : "value",
                    "someOtherKey" : 9
                }
            }
        }
    ]
}

Recapito push

Con il recapito push, Griglia di eventi invia eventi a una destinazione configurata in una sottoscrizione di eventi push (modalità di recapito in). Fornisce una logica di ripetizione dei tentativi affidabile nel caso in cui la destinazione non sia in grado di ricevere eventi.

Importante

Il recapito push degli spazi dei nomi di Griglia di eventi supporta attualmente Hub eventi di Azure come destinazione. In futuro, gli spazi dei nomi di Griglia di eventi supporteranno più destinazioni, incluse tutte le destinazioni supportate da Griglia di eventi Basic.

Recapito di eventi di Hub eventi

Griglia di eventi usa l'SDK di Hub eventi per inviare eventi a Hub eventi tramite AMQP. Gli eventi vengono inviati come matrice di byte con ogni elemento nella matrice contenente un CloudEvent.

Recapito push e pull

Griglia di eventi supporta il recapito di eventi push e pull tramite HTTP. Con il recapito push si definisce una destinazione in una sottoscrizione di eventi, un webhook o un servizio di Azure a cui Griglia di eventi invia eventi. Con il recapito pull, le applicazioni sottoscrittori si connettono a Griglia di eventi per utilizzare gli eventi. Il recapito pull è supportato per gli argomenti in uno spazio dei nomi di Griglia di eventi.

Importante

Hub eventi è supportato come destinazione per le sottoscrizioni agli argomenti dello spazio dei nomi. Nelle prossime versioni, gli spazi dei nomi di Griglia di eventi supporteranno tutte le destinazioni attualmente disponibili in Griglia di eventi base insieme a destinazioni aggiuntive.

Diagramma generale che mostra il recapito push e il recapito pull con il tipo di risorse coinvolte.

Quando usare il recapito push e il recapito pull

Di seguito sono riportate linee guida generali che consentono di decidere quando usare il recapito pull o push.

Recapito pull

  • È necessario il controllo completo su quando ricevere gli eventi. Ad esempio, l'applicazione potrebbe non essere sempre aggiornata, non abbastanza stabile o elaborare i dati in determinati momenti.
  • È necessario il controllo completo sull'utilizzo degli eventi. Ad esempio, un servizio downstream o un livello nell'applicazione consumer presenta un problema che impedisce l'elaborazione di eventi. In tal caso, l'API di recapito pull consente all'app consumer di rilasciare un evento già letto al broker in modo che possa essere recapitato in un secondo momento.
  • Si vogliono usare collegamenti privati quando si ricevono eventi, che è possibile solo con il recapito pull, non con il recapito push.
  • Non è possibile esporre un endpoint e usare il recapito push, ma è possibile connettersi a Griglia di eventi per utilizzare gli eventi.

Recapito push

  • Si vuole evitare il polling costante per determinare che si è verificata una modifica dello stato del sistema. È invece possibile usare Griglia di eventi per inviare eventi al momento in cui si verificano modifiche dello stato.
  • Si dispone di un'applicazione che non può effettuare chiamate in uscita. Ad esempio, l'organizzazione potrebbe preoccuparsi dell'esfiltrazione dei dati. Tuttavia, l'applicazione può ricevere eventi tramite un endpoint pubblico.

Passaggi successivi