In Pub/Sub, un argomento è una risorsa denominata che rappresenta un feed di messaggi. Devi creare un argomento prima di poterlo pubblicare o sottoscrivere. Pub/Sub supporta due tipi di argomenti: standard e di importazione.
Questo documento descrive come creare un argomento standard Pub/Sub. Se vuoi saperne di più su un argomento di importazione e su come crearne uno, consulta Creare un argomento di importazione.
Per creare un argomento, puoi utilizzare la console Google Cloud, Google Cloud CLI, la libreria client o l'API Pub/Sub.
Prima di iniziare
Scopri di più sul servizio Pub/Sub e sulla sua terminologia.
Scopri di più sulla procedura di pubblicazione.
Ruoli e autorizzazioni richiesti per gestire gli argomenti
Per ottenere le autorizzazioni necessarie per creare e gestire gli argomenti,
chiedi all'amministratore di concederti il
ruolo IAM Editor Pub/Sub(roles/pubsub.editor
)
per il tuo argomento o progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire gli argomenti. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare e gestire gli argomenti sono necessarie le seguenti autorizzazioni:
-
Crea un argomento:
pubsub.topics.create
-
Eliminare un argomento:
pubsub.topics.delete
-
Scollega una sottoscrizione da un argomento:
pubsub.topics.detachSubscription
-
Ottieni un argomento:
pubsub.topics.get
-
Elenca un argomento:
pubsub.topics.list
-
Pubblica in un argomento:
pubsub.topics.publish
-
Aggiorna un argomento:
pubsub.topics.update
-
Ottieni il criterio IAM per un argomento:
pubsub.topics.getIamPolicy
-
Configura il criterio IAM per un argomento:
pubsub.topics.setIamPolicy
Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Puoi configurare il controllo dell'accesso a livello di progetto e di singola risorsa. Puoi creare una sottoscrizione in un progetto e associarla a un argomento in un altro progetto. Assicurati di disporre delle autorizzazioni necessarie per ogni progetto.
Proprietà di un argomento
Quando crei o aggiorni un argomento, devi specificarne le proprietà.
-
Aggiungi un abbonamento predefinito. Aggiunge una sottoscrizione predefinita all'argomento Pub/Sub. Puoi creare un'altra sottoscrizione per l'argomento dopo la creazione dell'argomento stesso. L'abbonamento predefinito ha le seguenti proprietà:
- ID abbonamento di
-sub
- Tipo di distribuzione pull
- Durata di conservazione dei messaggi di sette giorni
- Scadenza dopo 31 giorni di inattività
- Scadenza per la conferma di 10 secondi
- Criterio immediato per nuovi tentativi
- ID abbonamento di
- Schema. Uno schema è un formato che il campo dei dati del messaggio deve seguire. Uno schema è un contratto tra il publisher e il sottoscrittore applicato da Pub/Sub. Gli schemi di argomenti aiutano a standardizzare i tipi di messaggi e le autorizzazioni per consentirne l'utilizzo da parte di diversi team dell'organizzazione. Pub/Sub crea un'autorità centrale per i tipi di messaggi e le autorizzazioni. Per creare un argomento con schema, consulta la Panoramica dello schema.
-
Abilita l'importazione. L'abilitazione di questa proprietà consente di importare flussi di dati da origini esterne in un argomento, in modo da poter sfruttare le funzionalità di Google Cloud. Per creare un argomento di importazione per l'importazione, consulta Creare un argomento di importazione.
-
Durata di conservazione dei messaggi. Specifica per quanto tempo l'argomento Pub/Sub conserva i messaggi dopo la pubblicazione. Al termine della durata di conservazione dei messaggi, Pub/Sub potrebbe ignorarlo indipendentemente dal suo stato di conferma. Le tariffe di archiviazione dei messaggi vengono addebitate per l'archiviazione di tutti i messaggi pubblicati nell'argomento.
- Impostazione predefinita = non abilitata
- Valore minimo = 10 minuti
- Valore massimo = 31 giorni
- Utilizza una chiave di crittografia gestita dal cliente (CMEK). Specifica se l'argomento è criptato con una CMEK. Pub/Sub cripta i messaggi con chiavi gestite da Google per impostazione predefinita. Se specifichi questa opzione, Pub/Sub utilizza il pattern di crittografia envelope con CMEK. In questo approccio, Cloud KMS non cripta i messaggi. Cloud KMS invece cripta le chiavi di crittografia dei dati (DEK) create da Pub/Sub per ogni argomento. Pub/Sub cripta i messaggi utilizzando la DEK più recente generata per l'argomento. Pub/Sub decripta i messaggi poco prima che vengano recapitati ai sottoscrittori. Per saperne di più sulla creazione di una chiave, consulta Configurare la crittografia dei messaggi.
crea un argomento
Crea un argomento prima di poterlo pubblicare o sottoscrivere.
Console
Per creare un argomento:
Nella console Google Cloud, vai alla pagina Argomenti di Pub/Sub.
Fai clic su Crea argomento.
Nel campo ID argomento, inserisci un ID per l'argomento. Per ulteriori informazioni sull'assegnazione di nomi agli argomenti, consulta le linee guida per l'assegnazione di nomi.
Mantieni l'opzione Aggiungi un abbonamento predefinito.
Non selezionare le altre opzioni.
Fai clic su Crea argomento.
gcloud
-
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Per creare un argomento, esegui il comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
REST
Per creare un argomento, utilizza il metodo projects.topics.create
:
La richiesta deve essere autenticata con un token di accesso nell'intestazione Authorization
. Per ottenere un token di accesso per le Credenziali predefinite dell'applicazione attuali: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Dove:
Risposta:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C++ di Pub/Sub.
Per eseguire l'autenticazione in Pub/Sub, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# di Pub/Sub.
Per eseguire l'autenticazione in Pub/Sub, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go di Pub/Sub.
Per eseguire l'autenticazione in Pub/Sub, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Per eseguire l'autenticazione in Pub/Sub, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Node.js
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP di Pub/Sub.
Per eseguire l'autenticazione in 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 di configurazione di Python nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python di Pub/Sub.
Per eseguire l'autenticazione in Pub/Sub, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida di Pub/Sub sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby di Pub/Sub.
Per eseguire l'autenticazione in Pub/Sub, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Vincoli dei criteri dell'organizzazione
I criteri dell'organizzazione possono limitare la creazione degli argomenti. Ad esempio, un criterio può limitare l'archiviazione dei messaggi in una regione di Compute Engine. Per evitare errori di creazione degli argomenti, esamina e aggiorna i criteri dell'organizzazione, se necessario, prima di creare un argomento.
Se il progetto è stato creato di recente, attendi qualche minuto per l'inizializzazione del criterio dell'organizzazione prima di creare un argomento.
Vai a Criteri dell'organizzazione
Per ulteriori informazioni, vedi Configurare i criteri di archiviazione dei messaggi.
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, le API REST o le librerie client.