Un argomento di importazione di Azure Event Hubs ti consente di importare continuamente dati da Azure Event Hubs come origine esterna e in Pub/Sub. Poi puoi trasmettere i dati in streaming a una qualsiasi delle destinazioni supportate da Pub/Sub.
Questo documento mostra come creare e gestire gli argomenti di importazione di Azure Event Hubs. Per creare un argomento standard, vedi Creare un argomento standard.
Per saperne di più sugli argomenti di importazione, consulta Informazioni sugli argomenti di importazione.
Prima di iniziare
Scopri di più sulla procedura di pubblicazione Pub/Sub.
Configura i ruoli e le autorizzazioni richiesti per gestire gli argomenti di importazione di Azure Event Hubs, tra cui:
Configura la federazione delle identità per i workload in modo che Trusted Cloud possa accedere al servizio di streaming esterno.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni
necessarie per creare e gestire argomenti di importazione di Azure Event Hubs,
chiedi all'amministratore di concederti il
ruolo IAM Pub/Sub Editor (roles/pubsub.editor
)
nell'argomento o nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire gli argomenti di importazione di Azure Event Hubs. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare e gestire gli argomenti di importazione di Azure Event Hubs sono necessarie le seguenti autorizzazioni:
-
Crea un argomento di importazione:
pubsub.topics.create
-
Elimina un argomento di importazione:
pubsub.topics.delete
-
Recuperare un argomento di importazione:
pubsub.topics.get
-
Elenca un argomento di importazione:
pubsub.topics.list
-
Pubblica in un argomento di importazione:
pubsub.topics.publish and pubsub.serviceAgent
-
Aggiorna un argomento di importazione:
pubsub.topics.update
-
Recupera il criterio IAM per un argomento di importazione:
pubsub.topics.getIamPolicy
-
Configura il criterio IAM per un argomento di importazione:
pubsub.topics.setIamPolicy
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Puoi configurare il controllo dell'accesso a livello di progetto e a livello di singola risorsa.
Configurare l'identità federata per accedere ad Azure Event Hubs
La federazione delle identità per i workload consente ai servizi di accedere ai workload in esecuzione al di fuori di Trusted Cloud. Trusted Cloud Con la federazione delle identità, non devi mantenere o trasmettere le credenziali a Trusted Cloud per accedere alle tue risorse in altri cloud. Puoi invece utilizzare le identità dei carichi di lavoro stessi per autenticarti su Trusted Cloud e accedere alle risorse.
Crea un account di servizio in Trusted Cloud
Questo passaggio è facoltativo. Se hai già un account di servizio, puoi utilizzarlo in questa procedura anziché crearne uno nuovo. Se utilizzi un account di servizio esistente, vai a Registra l'ID univoco del service account per il passaggio successivo.
Per gli argomenti di importazione di Azure Event Hubs, Pub/Sub utilizza l'account di servizio come identità per accedere alle risorse da Azure.
Per ulteriori informazioni sulla creazione di un account di servizio, inclusi prerequisiti, ruoli e autorizzazioni richiesti e linee guida per la denominazione, consulta Creare service account. Dopo aver creato un account di servizio, potresti dover attendere 60 secondi o più prima di account di servizio utilizzare. Questo comportamento si verifica perché le operazioni di lettura sono alla fine coerenti; potrebbe essere necessario del tempo prima che il nuovoaccount di serviziot diventi visibile.
Registra l'ID univoco del account di servizio
Per configurare la registrazione dell'app in Azure, è necessario un ID univoco dell'account di servizio.
Nella Trusted Cloud console, vai alla pagina dei dettagli del service account.
Fai clic sul account di servizio che hai appena creato o su quello che intendi utilizzare.
Nella pagina Dettagli del service account, annota il numero dell'ID univoco.
Hai bisogno dell'ID come parte del flusso di lavoro per configurare la registrazione dell'app in Azure.
Aggiungi il ruolo di creatore token account di servizio al account di servizio Pub/Sub
Il ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator
)
consente alle entità di creare credenziali di breve durata
per un account di servizio. Questi token o credenziali vengono utilizzati per rappresentare
ilaccount di serviziot.
Per ulteriori informazioni sull'impersonificazione del account di servizio, consulta Impersonificazione del service account.
Puoi anche aggiungere il ruolo Publisher Pub/Sub (roles/pubsub.publisher
)
durante questa procedura. Per saperne di più sul ruolo e sul motivo per cui lo stai aggiungendo,
consulta Aggiungere il ruolo Publisher Pub/Sub all'account di servizio Pub/Sub.
Nella console Trusted Cloud , vai alla pagina IAM.
Fai clic sulla casella di controllo Includi concessioni di ruoli fornite da S3NS.
Cerca il account di servizio con il formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Per questo account di servizio, fai clic sul pulsante Modifica entità.
Se necessario, fai clic su Aggiungi un altro ruolo.
Cerca e fai clic sul ruolo Creatore token service account (
roles/iam.serviceAccountTokenCreator
).Fai clic su Salva.
Crea una registrazione dell'app con la federazione delle identità
Per importare i dati da Azure Event Hubs, registra un'applicazione con la piattaforma Microsoft Identity e attiva la federazione delle identità per il tuaccount di serviziont. In questo modo, il account di servizio può autenticarsi su Azure.
Per ulteriori informazioni sulla registrazione di un'applicazione con Microsoft Identity Platform, consulta la guida rapida alla registrazione dell'app Azure.
Accedi al portale Azure e apri la pagina Microsoft Entra ID.
Nel riquadro di navigazione, fai clic su Gestisci > Registrazioni app.
Fai clic su Nuova registrazione.
Assegna un nome all'applicazione e imposta Tipi di account supportati su un valore diverso da Solo account Microsoft personali.
Per registrare l'applicazione, fai clic su Registra.
Apri l'applicazione e fai clic su Gestisci > Certificati e segreti.
Fai clic su Aggiungi credenziale.
Per configurare una credenziale federata, fai clic su Altro emittente.
Nel campo Emittente, inserisci
https://accounts.google.com
.Per il campo Valore, inserisci l'ID univoco del tuo account di servizio Pub/Sub.
Puoi trovare questo ID in Registra l'ID univoco dell'account di servizio.
Assegna un nome all'identità federata e fai clic su Aggiungi.
Concedere assegnazioni di ruoli all'app registrata
Per consentire a Pub/Sub di leggere dall'hub eventi Azure, concedi i ruoli necessari all'app registrata.
Accedi al portale Azure e apri lo spazio dei nomi degli hub di evento.
Per aprire uno spazio dei nomi, inserisci Hub eventi nella ricerca e poi fai clic su uno degli spazi dei nomi.
Nella barra laterale, fai clic su Controllo accesso (IAM).
Fai clic su Aggiungi > Aggiungi assegnazione ruolo.
Seleziona il ruolo Azure Event Hubs Data Receiver e poi fai clic su Avanti.
In questo modo, l'account di servizio Pub/Sub ha accesso in lettura all'hub eventi Azure.
Fai clic su + Seleziona membri, quindi cerca l'app registrata.
Digita il nome dell'app registrata nel campo di ricerca.
Fai clic sul nome della tua app, quindi su Seleziona.
Fai clic su Rivedi e assegna.
Ripeti i passaggi 3-6 e aggiungi il ruolo Azure Event Hubs Data Sender.
Questo ruolo concede all'account di servizio Google Cloud l'autorizzazione per recuperare i metadati dall'hub eventi Azure.
Per ulteriori informazioni sull'assegnazione dei ruoli Azure, visita la pagina Assegnare ruoli Azure.
Aggiungi il ruolo Publisher Pub/Sub all'entità Pub/Sub
Per attivare la pubblicazione, devi assegnare un ruolo di publisher all'account di servizio Pub/Sub in modo che Pub/Sub possa pubblicare nell'argomento di importazione di Azure Event Hubs.
Aggiungi il ruolo di agente di servizio Pub/Sub all'account di servizio Pub/Sub
Per consentire a Pub/Sub di utilizzare la quota di pubblicazione del progetto dell'argomento di importazione, l'agente di servizio Pub/Sub richiede l'autorizzazione serviceusage.services.use
per il progetto dell'argomento di importazione.
Per fornire questa autorizzazione, ti consigliamo di aggiungere il ruolo di agente di servizio Pub/Sub all'account di servizio Pub/Sub.
Se l'account di servizio Pub/Sub non dispone del ruolo Agente di servizio Pub/Sub, può essere concesso nel seguente modo:
Nella console Trusted Cloud , vai alla pagina IAM.
Fai clic sulla casella di controllo Includi concessioni di ruoli fornite da S3NS.
Cerca il account di servizio con il formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Per questo account di servizio, fai clic sul pulsante Modifica entità.
Se necessario, fai clic su Aggiungi un altro ruolo.
Cerca e fai clic sul ruolo Agente di servizio Pub/Sub (
roles/pubsub.serviceAgent
).Fai clic su Salva.
Attivare la pubblicazione da tutti gli argomenti
Utilizza questo metodo se non hai creato argomenti di importazione di Azure Event Hubs.
Nella console Trusted Cloud , vai alla pagina IAM.
Fai clic sulla casella di controllo Includi concessioni di ruoli fornite da S3NS.
Cerca il account di servizio con il formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Per questo account di servizio, fai clic sul pulsante Modifica entità.
Se necessario, fai clic su Aggiungi un altro ruolo.
Cerca e fai clic sul ruolo Publisher Pub/Sub (
roles/pubsub.publisher
).Fai clic su Salva.
Abilitare la pubblicazione da un singolo argomento
Utilizza questo metodo solo se l'argomento di importazione di Azure Event Hubs esiste già.
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Esegui il comando
gcloud pubsub topics add-iam-policy-binding
:gcloud pubsub topics add-iam-policy-binding TOPIC_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher"
Sostituisci quanto segue:
TOPIC_ID
: l'ID argomento dell'argomento di importazione di Azure Event Hubs.PROJECT_NUMBER
: il numero di progetto. Per visualizzare il numero del progetto, consulta Identificazione dei progetti.
Nella console Trusted Cloud , vai alla pagina IAM.
Per l'entità che effettua le chiamate di creazione o aggiornamento dell'argomento, fai clic sul pulsante Modifica entità.
Se necessario, fai clic su Aggiungi un altro ruolo.
Cerca e fai clic sul ruolo Utente service account (
roles/iam.serviceAccountUser
).Fai clic su Salva.
La creazione separata dell'argomento e della sottoscrizione, anche se eseguita in rapida successione, può comportare la perdita di dati. Esiste un breve periodo di tempo in cui l'argomento esiste senza un abbonamento. Se vengono inviati dati all'argomento durante questo periodo, vanno persi. Se crei prima l'argomento, poi la sottoscrizione e infine converti l'argomento in un argomento di importazione, ti assicuri che nessun messaggio venga perso durante il processo di importazione.
Se devi ricreare l'hub eventi Azure di un argomento di importazione esistente con lo stesso nome, non puoi semplicemente eliminare l'hub eventi Azure e ricrearlo. Questa azione può invalidare la gestione degli offset di Pub/Sub, il che può comportare la perdita di dati. Per risolvere il problema, segui questi passaggi:
- Elimina l'argomento di importazione Pub/Sub
- Elimina l'hub eventi Azure
- Crea l'hub eventi Azure
- Crea l'argomento di importazione Pub/Sub
I dati di un hub eventi Azure vengono sempre letti dall'offset più recente.
Configurare l'identità federata per accedere ad Azure Event Hubs
Aggiungi il ruolo Publisher Pub/Sub all'account di servizio Pub/Sub
Nella console Trusted Cloud , vai alla pagina Argomenti.
Fai clic su Crea argomento.
Nel campo ID argomento, inserisci un ID per l'argomento di importazione di Azure Event Hubs. Per ulteriori informazioni sulla denominazione degli argomenti, consulta le linee guida per la denominazione.
Seleziona Aggiungi una sottoscrizione predefinita.
Seleziona Abilita importazione.
Per l'origine dell'importazione, seleziona Azure Event Hubs.
Inserisci i seguenti dettagli:
- Gruppo di risorse: il nome del gruppo di risorse Azure che contiene lo spazio dei nomi di Azure Event Hubs che prevedi di importare in Pub/Sub.
- Spazio dei nomi dell'hub di evento: il nome dello spazio dei nomi di Azure Event Hubs che contiene l'hub di evento Azure che prevedi di importare in Pub/Sub.
- Event Hub: il nome dell'hub eventi Azure che prevedi di importare in Pub/Sub.
- ID client: l'ID applicazione (client) dell'app registrata in Azure che contiene l'identità federata dell'account di servizio Google Cloud. Questo valore deve essere un UUID. Per ulteriori informazioni, visita la pagina di registrazione dell'app Azure.
- ID tenant: l'ID directory (tenant) del tenant proprietario dell'hub eventi Azure che prevedi di importare in Pub/Sub. Questo valore deve essere un UUID. Per trovare l'ID tenant, visita la pagina Azure Get subscription and tenant IDs.
- ID abbonamento: l'ID abbonamento dell'abbonamento proprietario del gruppo di risorse Azure Event Hubs. Questo valore deve essere un UUID. Per trovare l'ID abbonamento, visita la pagina Azure Get subscription and tenant IDs.
- Account di servizio: l'account di servizio che hai creato in Creare un service account in Trusted Cloud.
Lascia invariati i valori predefiniti dei restanti campi.
Fai clic su Crea argomento.
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Esegui il comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID \ --azure-event-hubs-ingestion-resource-group RESOURCE_GROUP \ --azure-event-hubs-ingestion-namespace NAMESPACE \ --azure-event-hubs-ingestion-event-hub EVENT_HUB \ --azure-event-hubs-ingestion-client-id CLIENT_ID \ --azure-event-hubs-ingestion-tenant-id TENANT_ID \ --azure-event-hubs-ingestion-subscription-id SUBSCRIPTION_ID \ --azure-event-hubs-ingestion-service-account SERVICE_ACCOUNT
Sostituisci quanto segue:
TOPIC_ID
: il nome o l'ID dell'argomento Pub/Sub.RESOURCE_GROUP
: il nome del gruppo di risorse Azure Event Hubs che contiene lo spazio dei nomi Azure Event Hubs che prevedi di importare in Pub/Sub.NAMESPACE
: il nome dello spazio dei nomi di Azure Event Hubs che contiene l'hub eventi Azure che prevedi di importare in Pub/Sub.EVENT_HUB
: il nome dell'hub eventi di Azure che prevedi di importare in Pub/Sub.CLIENT_ID
: l'ID applicazione (client) dell'app registrata in Azure che contiene l'identità federata del service accountTrusted Cloud . Questo valore deve essere un UUID. Per ulteriori informazioni, visita la pagina di registrazione dell'app Azure.TENANT_ID
: l'ID directory (tenant) del tenant proprietario dell'hub eventi Azure che prevedi di importare in Pub/Sub. Questo valore deve essere un UUID. Per trovare l'ID tenant, visita la pagina Azure Get subscription and tenant IDs.SUBSCRIPTION_ID
: l'ID abbonamento dell'abbonamento proprietario dell'hub eventi Azure che prevedi di importare in Pub/Sub. Questo valore deve essere un UUID. Per trovare l'ID abbonamento, visita la pagina Azure Get subscription and tenant IDs.SERVICE_ACCOUNT
: il account di servizio che hai creato in Creare un account di servizio in Trusted Cloud
Nella console Trusted Cloud , vai alla pagina Argomenti.
Fai clic sull'argomento di importazione di Azure Event Hubs.
Nella pagina dei dettagli dell'argomento, fai clic su Modifica.
Aggiorna i campi che vuoi modificare.
Fai clic su Aggiorna.
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Esegui il comando
gcloud pubsub topics update
con tutti i flag menzionati nell'esempio seguente:gcloud pubsub topics update TOPIC_ID \ --azure-event-hubs-ingestion-resource-group RESOURCE_GROUP \ --azure-event-hubs-ingestion-namespace NAMESPACE \ --azure-event-hubs-ingestion-event-hub EVENT_HUB \ --azure-event-hubs-ingestion-client-id CLIENT_ID \ --azure-event-hubs-ingestion-tenant-id TENANT_ID \ --azure-event-hubs-ingestion-subscription-id SUBSCRIPTION_ID \ --azure-event-hubs-ingestion-service-account SERVICE_ACCOUNT
Sostituisci quanto segue:
TOPIC_ID
: il nome o l'ID dell'argomento Pub/Sub.RESOURCE_GROUP
: il nome del gruppo di risorse Azure Event Hubs che contiene lo spazio dei nomi Azure Event Hubs che stai importando in Pub/Sub.NAMESPACE
: il nome dello spazio dei nomi di Azure Event Hubs che contiene l'hub di eventi di Azure che stai importando in Pub/Sub.EVENT_HUB
: il nome dell'hub eventi Azure che stai importando in Pub/Sub.CLIENT_ID
: l'ID applicazione (client) dell'app registrata in Azure che contiene l'identità federata del service accountTrusted Cloud . Questo valore deve essere un UUID. Per ulteriori informazioni, consulta la pagina di registrazione dell'app Azure.TENANT_ID
: l'ID directory (tenant) del tenant proprietario degli hub eventi Azure che stai importando in Pub/Sub. Questo valore deve essere un UUID. Per trovare l'ID tenant, visita la pagina di Azure per ottenere l'ID abbonamento e tenant.SUBSCRIPTION_ID
: l'ID abbonamento dell'abbonamento proprietario dell'hub eventi Azure che stai importando in Pub/Sub. Questo valore deve essere un UUID. Per trovare l'ID abbonamento, consulta Azure Get subscription and tenant IDs.SERVICE_ACCOUNT
: il account di servizio che hai creato in Creare un account di servizio in Trusted Cloud
Scegli il tipo di abbonamento per l'argomento.
Scopri come pubblicare un messaggio in un argomento.
Crea o modifica un argomento con gcloud CLI, API REST o librerie client.
Risolvi i problemi relativi a un argomento di importazione di Azure Event Hubs.
Aggiungi il ruolo Utente account di servizio al account di servizio
Il ruolo Utente service account (roles/iam.serviceAccountUser
) include l'autorizzazione iam.serviceAccounts.actAs
che consente a un'entità di collegare un service account alle impostazioni di importazione dell'argomento di importazione di Azure Event Hubs e di utilizzare questo account di servizio per l'identità federata.
Utilizzare gli argomenti di importazione di Azure Event Hubs
Puoi creare un nuovo argomento di importazione o modificarne uno esistente.
Considerazioni
Crea argomenti di importazione di Azure Event Hubs
Per saperne di più sulle proprietà associate a un argomento, consulta Proprietà di un argomento.
Assicurati di aver completato le seguenti procedure:
Per creare un argomento di importazione di Hub eventi di Azure:
Console
gcloud
C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C++.
Vai
L'esempio seguente utilizza la versione principale della libreria client Go Pub/Sub (v2). Se utilizzi ancora la libreria v1, consulta la guida alla migrazione alla v2. Per visualizzare un elenco di esempi di codice della versione 1, consulta gli esempi di codice ritirati.
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Node.ts
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Se riscontri problemi, consulta Risoluzione dei problemi relativi a un argomento di importazione di Azure Event Hubs.
Modifica gli argomenti di importazione di Azure Event Hubs
Per modificare le impostazioni dell'origine dati di importazione di un argomento di importazione di Azure Event Hubs:
Console
gcloud
Quote e limiti
Il throughput del publisher per gli argomenti di importazione è vincolato alla quota di pubblicazione dell'argomento. Per maggiori informazioni, consulta Quote e limiti di Pub/Sub.