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. Questo mostra come gestire Pub/Sub con Cloud Tools for PowerShell. Illustra un semplice esempio di creazione di un argomento, pubblicazione di messaggi all'argomento, creando una sottoscrizione all'argomento ed eseguendo il pull dei messaggi alla sottoscrizione.

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

Creazione di un argomento

L'applicazione del publisher crea e invia messaggi a un argomento. Puoi chiamare il cmdlet New‑GcpsTopic per creare un'istanza in un determinato argomento. Se le tue la configurazione gcloud attiva ha un progetto, non devi usare -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 usa il cmdlet New‑GcpsMessage per creare un array di messaggi e passalo il 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 Send‑GcpsAck cmdlet per inviare l'accettazione. Messaggi non confermati diventano nuovamente disponibili per l'estrazione dopo la scadenza di conferma scade.

# 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