Un argomento di importazione di flussi di dati Amazon Kinesis ti consente di importare dati da Flussi di dati Amazon Kinesis come origine esterna e in Pub/Sub. Poi puoi inviare i dati in modalità flusso in qualsiasi destinazione Supporta Pub/Sub.
Questo documento mostra come creare e gestire Amazon Kinesis Argomenti di importazione degli stream di dati. Per creare un argomento standard, consulta Crea un argomento standard.
Prima di iniziare
Scopri di più sulle Processo di pubblicazione di Pub/Sub.
Configura il ruoli e autorizzazioni necessari per gestire gli argomenti di importazione dei flussi di dati Amazon Kinesis tra cui:
Configura la federazione delle identità per i carichi di lavoro in modo che Google Cloud può accedere al servizio di streaming esterno.
Ruoli e autorizzazioni richiesti per gestire gli argomenti di importazione
Per ottenere le autorizzazioni necessarie per creare e gestire gli argomenti di importazione di Amazon Kinesis Data Streams,
chiedi all'amministratore di concederti il ruolo IAM Editor Pub/Sub (roles/pubsub.editor
)
sul tuo argomento o progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire gli argomenti di importazione di Amazon Kinesis Data Streams. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare e gestire gli argomenti di importazione di Amazon Kinesis Data Streams sono necessarie le seguenti autorizzazioni:
-
Crea un argomento di importazione:
pubsub.topics.create
-
Elimina un argomento di importazione:
pubsub.topics.delete
-
Ricevi un argomento di importazione:
pubsub.topics.get
-
Elenca un argomento di importazione:
pubsub.topics.list
-
Pubblica in un argomento di importazione:
pubsub.topics.publish
-
Aggiorna un argomento relativo all'importazione:
pubsub.topics.update
-
Ottieni 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 riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.
Puoi configurare il controllo dell'accesso a livello di progetto e di singola risorsa.
Configura l'identità federata per accedere ai flussi di dati Kinesis
La federazione delle identità dei carichi di lavoro consente ai servizi Google Cloud di accedere ai carichi di lavoro eseguiti al di fuori di Google Cloud. Con la federazione delle identità non è necessario per gestire o passare le credenziali a Google Cloud per accedere alle tue risorse in altre nuvole. In alternativa, puoi utilizzare le identità dei carichi di lavoro stessi per autenticarti su Google Cloud e accedere alle risorse.
Creare un account di servizio in Google 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 dell'account di servizio per al passaggio successivo.
Per un argomento di importazione di Amazon Kinesis Data Streams, Pub/Sub utilizza l'account di servizio come identità per accedere alle risorse da AWS.
Per ulteriori informazioni sulla creazione di un account di servizio, inclusi i prerequisiti, i ruoli e le autorizzazioni richiesti e le linee guida per la denominazione, consulta Crea gli account di servizio. Dopo aver creato un account di servizio, potrebbe essere necessario attendere almeno 60 secondi prima di utilizzarlo. Questo comportamento si verifica perché le operazioni di lettura alla fine coerente; potrebbe volerci del tempo prima che il nuovo account di servizio diventano visibili.
Registrare l'ID univoco dell'account di servizio.
Per configurare un ruolo nella console AWS, devi disporre di un ID univoco dell'account di servizio.
Nella console Google Cloud, vai alla pagina dei dettagli dell'account di servizio.
Fai clic sull'account di servizio che hai appena creato o su quello che stai che intendi utilizzare.
Nella pagina Dettagli account di servizio, registra il numero ID univoco.
Ti servirà l'ID nella sezione Creare un ruolo in AWS utilizzando un criterio di attendibilità personalizzato.
Aggiungi il ruolo Creatore token account di servizio all'account di servizio Pub/Sub
Il ruolo Creatore token account di servizio (roles/iam.serviceAccountTokenCreator
)
consente alle entità di creare credenziali di breve durata
per un account di servizio. Questi token o credenziali vengono utilizzati per impersonare
l'account di servizio.
Per ulteriori informazioni sull'impersonificazione degli account di servizio, consulta Impersonificazione degli account di servizio.
Puoi anche aggiungere il ruolo Publisher Pub/Sub (roles/pubsub.publisher
)
durante questa procedura. Per ulteriori informazioni sul ruolo e sul motivo per cui lo aggiungi, consulta Aggiungere il ruolo Publisher Pub/Sub all'account di servizio Pub/Sub.
Nella console Google Cloud, vai alla pagina IAM.
Attiva l'opzione Includi concessioni di ruoli fornite da Google.
Cerca l'account di servizio con il formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.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 seleziona il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator
).Fai clic su Salva.
Crea un criterio in AWS
È necessario un criterio in AWS per consentire a Pub/Sub l'autenticazione con AWS per consentire a Pub/Sub di importare dati da AWS Kinesis flusso di dati. Prima di creare un criterio AWS, crea un di uno stream di dati Kinesis e di un consumatore registrato. Lo consigliamo in modo da poter limitare le autorizzazioni allo stream specifico.
Per ulteriori informazioni su come creare uno stream di dati AWS Kinesis, consulta Stream di dati Kinesis.
Per ulteriori informazioni sull'API AWS Kinesis Data Stream utilizzata per registrare i consumer, consulta RegisterStreamConsumer.
Per altri metodi e informazioni su come creare un criterio in AWS, consulta Creazione di criteri IAM.
Per creare un criterio in AWS, svolgi i seguenti passaggi:
Accedi alla Console di gestione AWS e apri la console IAM.
Nel riquadro di navigazione della console per IAM, Fai clic su Access Management > Norme.
Fai clic su Crea criterio.
In Seleziona un servizio, seleziona Kinesis.
Per azione consentita, seleziona quanto segue:
Elenco > ElencaShards.
Questa azione concede l'autorizzazione per elencare i frammenti in uno stream e fornisce informazioni su ciascun frammento.
Leggi > SubscribeToShard.
Questa azione concede l'autorizzazione per ascoltare uno specifico shard con fan-out migliorato.
Leggi > DescribeStreamConsumer.
Questa azione concede l'autorizzazione per ottenere la descrizione di un consumatore di streaming registrato.
Queste autorizzazioni riguardano la lettura dello stream. Pub/Sub supporta la lettura da uno stream Kinesis con fan-out avanzato solo utilizzando l'API SubscribeToShard in streaming.
In Risorse, se vuoi limitare il criterio a flussi specifici o consumer (consigliato), specifica l'ARN del consumer e l'ARN del flusso.
Fai clic su Aggiungi altre autorizzazioni.
In Seleziona un servizio, inserisci e seleziona STS.
Per Azione consentita, seleziona Scrivi > AssumeRoleWithWebIdentity.
Questa azione concede l'autorizzazione per ottenere un insieme di credenziali di sicurezza temporanee per Pub/Sub per autenticarsi nello stream di dati Kinesis utilizzando la federazione delle identità.
Fai clic su Avanti.
Inserisci un nome e una descrizione per la norma.
Fai clic su Crea criterio.
Crea un ruolo in AWS utilizzando un criterio di attendibilità personalizzato
Devi creare un ruolo in AWS in modo che Pub/Sub possa autenticarsi in AWS per importare i dati da Kinesis Data Streams.
Per creare un ruolo utilizzando un criterio di attendibilità personalizzato:
Accedi alla console di gestione AWS e apri la console IAM.
Nel riquadro di navigazione della console per IAM, fai clic su Ruoli.
Fai clic su Crea ruolo.
Per Seleziona entità attendibile, seleziona Criterio di attendibilità personalizzato.
Nella sezione Criterio di attendibilità personalizzato, inserisci o incolla quanto segue:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:sub": "<SERVICE_ACCOUNT_UNIQUE_ID>" } } } ] }
Sostituisci
<SERVICE_ACCOUNT_UNIQUE_ID>
con l'ID univoco dell'account di servizio registrato in Registrare l'ID univoco dell'account di servizio.Fai clic su Avanti.
In Aggiungi autorizzazioni, cerca e seleziona il criterio personalizzato appena creato.
Fai clic su Avanti.
Inserisci un nome e una descrizione per il ruolo.
Fai clic su Crea ruolo.
Aggiungere il ruolo di publisher Pub/Sub all'account di servizio Pub/Sub
Devi assegnare un ruolo di publisher all'account di servizio Pub/Sub in modo che Pub/Sub possa pubblicare nell'argomento di importazione da Flussi di dati AWS Kinesis.
Per attivare la pubblicazione da tutti gli argomenti di un progetto, consulta Attivare la pubblicazione da tutti gli argomenti.
Per attivare la pubblicazione da un argomento specifico (opzione consigliata), consulta Attivare la pubblicazione da un singolo argomento.
Attiva la pubblicazione da tutti gli argomenti
Nella console Google Cloud, vai alla pagina IAM.
Attiva l'opzione Includi concessioni dei ruoli fornite da Google.
Cerca l'account di servizio con il formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.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 seleziona il ruolo Publisher Pub/Sub (
roles/pubsub.publisher
).Fai clic su Salva.
Abilita la pubblicazione da un singolo argomento
Se vuoi concedere l'autorizzazione di pubblicazione solo a una specifica l'argomento di importazione dei flussi di dati Amazon Kinesis, segui questi passaggi:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.iam.gserviceaccount.com"\ --role="roles/pubsub.publisher"
Sostituisci quanto segue:
TOPIC_ID è l'ID dell'argomento di importazione di Amazon Kinesis Data Streams.
PROJECT_NUMBER è il numero del progetto. Per visualizzare il progetto consulta Identificazione dei progetti.
Aggiungi il ruolo utente dell'account di servizio all'account di servizio
Il ruolo Utente account di servizio (roles/iam.serviceAccountUser
) include
l'autorizzazione iam.serviceAccounts.actAs
che consente a un'entità di collegare
l'account di servizio all'importazione dell'argomento di importazione dei flussi di dati Amazon Kinesis
impostazioni e utilizzare quell'account di servizio per l'identità federata.
Procedi nel seguente modo:
Nella console Google Cloud, vai alla pagina IAM.
Per l'entità che emette le chiamate all'argomento di creazione o aggiornamento, fai clic sul pulsante Modifica entità.
Se necessario, fai clic su Aggiungi un altro ruolo.
Cerca e seleziona il ruolo Utente account di servizio (
roles/iam.serviceAccountUser
).Fai clic su Salva.
Crea un argomento di importazione di Amazon Kinesis Data Streams
Per saperne di più sulle proprietà associate a un argomento, consulta Proprietà di un argomento.
Assicurati di aver completato le seguenti procedure:
Configura l'identità federata per accedere ai flussi di dati Kinesis
Aggiungi il ruolo Publisher Pub/Sub all'account di servizio Pub/Sub
Aggiungi il ruolo Utente account di servizio all'account di servizio
Per creare un argomento di importazione di flussi di dati Amazon Kinesis:
Console
-
Nella console Google Cloud, vai alla pagina Topic.
-
Fai clic su Crea argomento.
-
Nel campo ID argomento, inserisci un ID per l'argomento di importazione di Amazon Kinesis Data Streams.
Per ulteriori informazioni sugli argomenti relativi alla denominazione, consulta le linee guida per i nomi.
-
Seleziona Aggiungi una sottoscrizione predefinita.
-
Seleziona Attiva importazione.
-
Per l'origine di importazione, seleziona Amazon Kinesis Data Streams.
-
Inserisci i seguenti dettagli:
-
ARN del flusso Kinesis: l'ARN del flusso di dati Kinesis che prevedi di importare in Pub/Sub. Il formato dell'ARN è il seguente:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
ARN del consumer Kinesis: l'ARN della risorsa consumer che è registrato nel flusso di dati AWS Kinesis. Il formato ARN è il seguente che segue:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
ARN del ruolo AWS: l'ARN del ruolo AWS. Il formato ARN del ruolo è il seguente:
arn:aws:iam:${Account}:role/${RoleName}
. -
Account di servizio: l'account di servizio che hai creato in Creare un account di servizio in Google Cloud.
-
-
Fai clic su Crea argomento.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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
--kinesis-ingestion-stream-arn KINESIS_STREAM_ARN
--kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN
--kinesis-ingestion-role-arn KINESIS_ROLE_ARN
--kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNTSostituisci quanto segue:
-
TOPIC_ID è l'ID argomento.
-
KINESIS_STREAM_ARN è l'ARN dei flussi di dati Kinesis che prevedi di importare in Pub/Sub. Il formato dell'ARN è il seguente:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN è l'ARN della risorsa consumer registrata in AWS Kinesis Data Streams. Il formato dell'ARN è il seguente:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
KINESIS_ROLE_ARN è l'ARN del ruolo AWS. Il formato dell'ARN del ruolo è il seguente:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT è l'account di servizio che creato in Creare un account di servizio in Google Cloud.
-
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di Pub/Sub con librerie client. Per ulteriori informazioni, consulta API Pub/Sub Go documentazione di riferimento.
Per eseguire l'autenticazione su Pub/Sub, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di Pub/Sub con librerie client. Per ulteriori informazioni, consulta API Pub/Sub Java documentazione di riferimento.
Per autenticarti a Pub/Sub, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Pub/Sub che utilizza le librerie client. Per ulteriori informazioni, consulta API Pub/Sub Node.js documentazione di riferimento.
Per autenticarti a Pub/Sub, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Pub/Sub con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Per eseguire l'autenticazione su Pub/Sub, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ riportate nella guida rapida di Pub/Sub che utilizza le librerie client. Per ulteriori informazioni, consulta API Pub/Sub C++ documentazione di riferimento.
Per eseguire l'autenticazione su Pub/Sub, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js (TypeScript)
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella Guida rapida di Pub/Sub con l'utilizzo librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Per eseguire l'autenticazione su Pub/Sub, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per saperne di più sugli ARN, consulta Nomi delle risorse Amazon (ARN) e Identificatori IAM.
Se riscontri problemi, consulta Risolvere i problemi relativi a un argomento di importazione di Amazon Kinesis Data Streams.
Modifica un argomento di importazione di flussi di dati Amazon Kinesis
Puoi modificare le impostazioni dell'origine dati di importazione di un argomento di importazione di flussi di dati Amazon Kinesis. Procedi nel seguente modo:
Console
-
Nella console Google Cloud, vai alla pagina Topic.
-
Fai clic sull'argomento di importazione di Amazon Kinesis Data Streams.
-
Nella pagina dei dettagli dell'argomento, fai clic su Modifica.
-
Aggiorna i campi che vuoi modificare.
-
Fai clic su Aggiorna.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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 nel seguente esempio:gcloud pubsub topics update TOPIC_ID
--kinesis-ingestion-stream-arn KINESIS_STREAM_ARN
--kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN
--kinesis-ingestion-role-arn KINESIS_ROLE_ARN
--kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNTSostituisci quanto segue:
-
TOPIC_ID è l'ID argomento. Questo campo non può essere aggiornato.
-
KINESIS_STREAM_ARN è l'ARN dei flussi di dati Kinesis che prevedi di importare in Pub/Sub. L'ARN formato è il seguente:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN è l'ARN della risorsa consumer registrato nei flussi di dati AWS Kinesis. Il formato dell'ARN è il seguente:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
KINESIS_ROLE_ARN è l'ARN del ruolo AWS. Il formato ARN del ruolo è il seguente:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT è l'account di servizio che creato in Creare un account di servizio in Google Cloud.
-
Quote e limiti per gli argomenti di importazione di flussi di dati Amazon Kinesis
Il throughput del publisher per gli argomenti di importazione è limitato dalla quota di pubblicazione dell'argomento. Per ulteriori informazioni, vedi Quote e limiti di Pub/Sub.
Passaggi successivi
Scegli il tipo di sottoscrizione per l'argomento.
Scopri come pubblicare un messaggio in un argomento.
Crea o modifica un argomento con gcloud CLI, API REST o librerie client.
Risolvere i problemi relativi a un argomento di importazione di flussi di dati Amazon Kinesis.
Passaggi per configurare il job di trasferimento dati per trasferire i dati da AWS S3 a GCS.