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 ed esecuzione di pull dei messaggi dall'argomento alla sottoscrizione.

Per ulteriori informazioni sui cmdlet di Pub/Sub, consulta il riferimento su Cloud Tools for PowerShell. Per scoprire di più su Pub/Sub in generale, consulta la 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 la configurazione gcloud attiva ha un progetto, non è necessario 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 a un argomento

L'applicazione dell'abbonato crea una sottoscrizione a un argomento per ricevere messaggi dall'argomento. 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 eseguirà il push dei messaggi all'endpoint scelto dal sottoscrittore) 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"

Pull dei messaggi per la sottoscrizione

Per eseguire il pull dei messaggi relativi alla sottoscrizione, puoi utilizzare il cmdlet Get‑GcpsMessage. Per impostazione predefinita, il cmdlet blocca finché non viene recuperato almeno un messaggio. Per evitare il blocco, utilizza il parametro -ReturnImmediately. Se utilizzi il parametro -AutoAck, il cmdlet può anche inviare automaticamente una conferma per ogni messaggio recuperato. In caso contrario, dovrai utilizzare il cmdlet Send‑GcpsAck per inviare la conferma. I messaggi non confermati diventano di nuovo disponibili per il pull 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