Trabaja con Pub/Sub

Pub/Sub es un servicio de mensajería en tiempo real completamente administrado que te permite enviar y recibir mensajes entre aplicaciones independientes. En esta página, se muestra cómo administrar Pub/Sub con Cloud Tools for PowerShell. Se explica un ejemplo sencillo de cómo crear un tema y publicar mensajes en él. También se explica cómo crear una suscripción al tema y extraer mensajes de este a la suscripción.

Lee el Cmdlet Cloud Tools for PowerShell. referencia para obtener más información sobre los cmdlets de Pub/Sub. Para obtener más información Pub/Sub en general, consulta el Descripción general de Pub/Sub.

Crea un tema

Con la aplicación de publicador, se crean y se envían mensajes a un tema. Puedes llamar el cmdlet New‑GcpsTopic para crear una instancia en un tema en particular. Si tu configuración activa de gcloud tiene un proyecto, no tienes que usar el parámetro -Project.

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

Publica mensajes en un tema

Para publicar mensajes en un tema, puedes usar el 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"

Para publicar varios mensajes en el mismo tema con una sola solicitud, puedes usar el cmdlet New‑GcpsMessage para crear un array de mensajes y pasarlo 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"

Crea una suscripción a un tema

Con la aplicación de suscriptor, se crea una suscripción a un tema para recibir mensajes de este. Puedes llamar al cmdlet New‑GcpsSubscription para crear una instancia en un tema en particular. Si tu configuración activa de gcloud tiene un proyecto, puedes no necesitas usar el parámetro -Project.

Según la configuración predeterminada, la suscripción creada es una suscripción de extracción, lo que significa que el suscriptor extraerá los mensajes del tema. Puedes crear una suscripción de envío (Pub/Sub enviará mensajes al extremo elegido del suscriptor) 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"

Extrae mensajes para la suscripción

Si quieres extraer mensajes destinados a la suscripción, puedes usar el cmdlet Get‑GcpsMessage. Según la configuración predeterminada, el cmdlet se bloqueará hasta que se recupere al menos un mensaje. Para evitar el bloqueo, usa el parámetro -ReturnImmediately. El cmdlet también puede enviar automáticamente una confirmación para cada recuperación mensaje si usas el parámetro -AutoAck. De lo contrario, tendrás que usar el Cmdlet Send‑GcpsAck para enviar la confirmación. Los mensajes no confirmados vuelven a estar disponibles para su extracción después de que venza el plazo de confirmación del mensaje.

# 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