Utilizzo di Pub/Sub

Pub/Sub è un servizio di messaggistica in tempo reale completamente gestito che consente di inviare e ricevere messaggi tra applicazioni indipendenti. Questa pagina mostra come gestire Pub/Sub utilizzando Cloud Tools for PowerShell. Illustra un semplice esempio di creazione di un argomento, pubblicazione di messaggi nell'argomento, creazione di una sottoscrizione all'argomento e estrazione di messaggi dall'argomento alla sottoscrizione.

Leggi la documentazione di riferimento dei cmdlet Cloud Tools for PowerShell per saperne di più sui cmdlet Pub/Sub. Per saperne di più su Pub/Sub in generale, consulta la Panoramica di Pub/Sub.

Creazione di un argomento

L'applicazione publisher crea e invia messaggi a un argomento. Puoi chiamare il cmdlet New‑GcpsTopic per creare un'istanza in un determinato argomento. Se la tua configurazione gcloud attiva ha un progetto, non devi utilizzare il parametro -Project.

# Creates topic "my-topic" in the default project.
New-GcpsTopic -Topic "my-topic"

Pubblicazione di messaggi in un argomento

Per pubblicare messaggi in un argomento, puoi utilizzare il cmdlet Publish‑GcpsMessage.

# Publishes the message with data "This is a test" to topic "my-topic".
Publish-GcpsMessage -Data "This is a test" -Topic "my-topic"

Per pubblicare più messaggi nello stesso argomento con una singola richiesta, puoi utilizzare il cmdlet New‑GcpsMessage per creare un array di messaggi e passarlo al cmdlet Publish‑GcpsMessage.

# Creates two messages.
$messageOne = New-GcpsMessage -Data "This is a test"
$messageTwo = New-GcpsMessage -Data "Data" -Attributes @{"key" = "value"}

# Publish the messages to topic "my-topic".
Publish-GcpsMessage -Message @($messageOne, $messageTwo) -Topic "my-topic"

Creazione di una sottoscrizione per un argomento

L'applicazione del sottoscrittore crea una sottoscrizione a un argomento per ricevere i messaggi. Puoi chiamare il cmdlet New‑GcpsSubscription per creare un'istanza in un determinato argomento. Se la configurazione gcloud attiva ha un progetto, non è necessario utilizzare il parametro -Project.

Per impostazione predefinita, la sottoscrizione creata è una sottoscrizione pull, il che significa che il sottoscrittore eseguirà il pull dei messaggi dall'argomento. Puoi creare una sottoscrizione push (Pub/Sub invierà i messaggi all'endpoint scelto dall'abbonato) con -PushEndpoint.

# Creates pull subscription "pull-subscription" to topic "my-topic" in the default project.
New-GcpsSubscription -Topic "my-topic" -Subscription "pull-subscription"

# Creates push subscription "push-subscription" to topic "my-topic".
New-GcpsSubscription -Topic "my-topic" `
                     -Subscription "push-subscription" `
                     -PushEndpoint "http://www.example.com"

Eseguire il pull dei messaggi per la sottoscrizione

Per estrarre i messaggi per l'abbonamento, puoi utilizzare il cmdlet Get‑GcpsMessage. Per impostazione predefinita, il cmdlet si blocca finché non viene recuperato almeno un messaggio. Per evitare il blocco, utilizza il parametro -ReturnImmediately. Il cmdlet può anche inviare automaticamente un messaggio di conferma per ogni messaggio recuperato se utilizzi il parametro -AutoAck. In caso contrario, dovrai utilizzare il cmdlet Send‑GcpsAck per inviare il riconoscimento. I messaggi non confermati diventano di nuovo disponibili per il recupero dopo la scadenza della conferma del messaggio.

# Pulls messages from subscription "my-subscription" and sends out acknowledgement automatically.
Get-GcpsMessage -Subscription "my-subscription" -AutoAck

# Pulls messages from subscription "my-subscription" and sends out acknowledgement with Send-GcpsAck.
$messages = Get-GcpsMessage -Subscription "my-subscription"
Send-GcpsAck -InputObject $messages