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.

Consulta la referencia del cmdlet de Cloud Tools for PowerShell a fin de obtener más información sobre los cmdlets de Pub/Sub. Para obtener más información sobre Pub/Sub en general, consulta la 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 al 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 gcloud tiene un proyecto, no tienes que 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

A fin de extraer mensajes para 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 de forma automática una confirmación para cada mensaje recuperado si usas el parámetro -AutoAck. De lo contrario, tendrás que usar el Send‑GcpsAckcmdlet 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