Utiliser Pub/Sub

Pub/Sub est un service de messagerie en temps réel entièrement géré qui vous permet d'envoyer et de recevoir des messages entre différentes applications. Cette page explique comment gérer Pub/Sub à l'aide de Cloud Tools for PowerShell. Elle explique, dans un exemple simple, comment créer un sujet, publier des messages dans ce sujet, créer un abonnement au sujet et extraire dans l'abonnement les messages publiés dans le sujet.

Consultez la documentation de référence des cmdlets Cloud Tools for PowerShell pour en savoir plus sur les cmdlets Pub/Sub. Pour en savoir plus sur Pub/Sub, consultez la section Présentation de Pub/Sub.

Créer un sujet

L'application d'éditeur crée et envoie des messages dans un sujet. Vous pouvez appeler le cmdlet New‑GcpsTopic pour créer une instance dans un sujet particulier. Si votre configuration gcloud active comporte un projet, vous n'avez pas besoin d'utiliser le paramètre -Project.

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

Publier des messages dans un sujet

Pour publier des messages dans un sujet, vous pouvez utiliser le 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"

Pour publier avec une seule requête plusieurs messages dans le même sujet, vous pouvez utiliser le cmdlet New‑GcpsMessage pour créer un tableau de messages que vous transmettez ensuite au 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"

Créer un abonnement à un sujet

L'application d'abonné crée un abonnement à un sujet pour recevoir les messages qui y sont publiés. Vous pouvez appeler le cmdlet New‑GcpsSubscription pour créer une instance dans un sujet particulier. Si votre configuration gcloud active comporte un projet, vous n'avez pas besoin d'utiliser le paramètre -Project.

Par défaut, l'abonnement créé est de type pull, ce qui signifie que c'est l'abonné qui extrait les messages publiés dans le sujet. Vous pouvez créer un abonnement push (Pub/Sub enverra les messages au point de terminaison choisi par l'abonné) à l'aide du paramètre -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"

Extraire des messages pour l'abonnement

Pour extraire des messages pour l'abonnement, vous pouvez utiliser le cmdlet Get‑GcpsMessage. Par défaut, le cmdlet sera bloqué jusqu'à ce qu'au moins un message soit récupéré. Pour éviter le blocage, utilisez le paramètre -ReturnImmediately. Le cmdlet peut également envoyer automatiquement une confirmation pour chaque message récupéré si vous utilisez le paramètre -AutoAck. Sinon, vous devrez utiliser le cmdlet Send‑GcpsAck pour envoyer la confirmation. Les messages non confirmés sont à nouveau disponibles pour l'extraction au terme du délai de confirmation du message.

# 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