Questo documento fornisce informazioni sulla pubblicazione dei messaggi.
Un'applicazione publisher crea e invia messaggi a un argomento. Pub/Sub offre la consegna "at-least-once" dei messaggi e l'ordinamento con il massimo impegno ai sottoscrittori esistenti.
Il flusso generale per una richiesta di publisher è il seguente:
- Crea un messaggio contenente i tuoi dati.
- Invia una richiesta al server Pub/Sub per pubblicare il messaggio nell'argomento specificato.
Prima di iniziare
Prima di configurare il flusso di lavoro di pubblicazione, assicurati di aver completato le seguenti attività:
- Scopri di più sul workflow di pubblicazione.
- Crea un argomento.
- Scegli e crea un abbonamento.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per pubblicare messaggi in un argomento, chiedi all'amministratore di concederti il ruolo IAM Pub/Sub Publisher (roles/pubsub.publisher) nell'argomento.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Devi disporre di autorizzazioni aggiuntive per creare o aggiornare argomenti e abbonamenti.
Formato del messaggio
Un messaggio è composto da campi con i dati e i metadati del messaggio. Specifica almeno uno dei seguenti elementi nel messaggio:
- I dati del messaggio
- Una chiave di ordinamento
- Attributi con metadati aggiuntivi
Il servizio Pub/Sub aggiunge i seguenti campi al messaggio:
- Un ID messaggio univoco per l'argomento
- Un timestamp di ricezione del messaggio da parte del servizio Pub/Sub
Per saperne di più sui messaggi, consulta Formato dei messaggi.
pubblica dei messaggi
Puoi pubblicare messaggi con la console Google Cloud , Google Cloud CLI, l'API Pub/Sub e le librerie client. Le librerie client possono pubblicare i messaggi in modo asincrono.
Gli esempi riportati di seguito mostrano come pubblicare un messaggio in un argomento.
Console
Per pubblicare un messaggio:
Nella console Google Cloud , vai alla pagina Argomenti Pub/Sub.
Fai clic sull'ID argomento.
Nella pagina Dettagli dell'argomento, in Messaggi, fai clic su Pubblica messaggio.
Nel campo Corpo del messaggio, inserisci i dati del messaggio.
Fai clic su Pubblica.
gcloud
Per pubblicare un messaggio, utilizza il comando gcloud pubsub topics publish:
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGE_DATA \ [--attribute=KEY="VALUE",...]
Sostituisci quanto segue:
- TOPIC_ID: l'ID dell'argomento
- MESSAGE_DATA: una stringa con i dati del messaggio
- KEY: la chiave di un attributo del messaggio
- VALUE: il valore della chiave dell'attributo del messaggio
REST
Per pubblicare un messaggio, invia una richiesta POST come la seguente:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID:publish Content-Type: application/json Authorization: Bearer $(gcloud auth application-default print-access-token)
Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto del progetto con l'argomento
- TOPIC_ID: l'ID dell'argomento
Specifica i seguenti campi nel corpo della richiesta:
{
"messages": [
{
"attributes": {
"KEY": "VALUE",
...
},
"data": "MESSAGE_DATA",
}
]
}Sostituisci quanto segue:
- KEY: la chiave di un attributo del messaggio
- VALUE: il valore della chiave dell'attributo del messaggio
- MESSAGE_DATA: una stringa codificata in base64 con i dati del messaggio
Il messaggio deve contenere un campo dati non vuoto o almeno un attributo.
Se la richiesta riesce, la risposta è un oggetto JSON con l'ID messaggio. Il seguente esempio è una risposta con un ID messaggio:
{
"messageIds": [
"19916711285",
]
}C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub C++.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per saperne di più, 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 deprecati.
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.