O Pub/Sub é um serviço de mensagens em tempo real totalmente gerenciado que permite o envio e o recebimento de mensagens entre aplicativos independentes. Nesta página, mostramos como gerenciar o Pub/Sub usando o Cloud Tools for PowerShell. Ela contém um exemplo simples de como criar um tópico, publicar mensagens, criar uma assinatura dele e solicitar as mensagens para a assinatura.
Leia a referência de cmdlets do Cloud Tools for PowerShell para saber mais sobre os cmdlets do Pub/Sub. Para saber mais sobre o Pub/Sub em geral, leia a Visão geral do Pub/Sub.
Criar um tópico
O aplicativo do editor cria e envia mensagens para um tópico. Você pode chamar o cmdlet New‑GcpsTopic
para criar uma instância em um tópico específico. Se a configuração ativa do gcloud tiver um projeto, você não precisará usar o parâmetro -Project
.
# Creates topic "my-topic" in the default project. New-GcpsTopic -Topic "my-topic"
Publicar uma mensagem em um tópico
Para publicar mensagens em um tópico, use o 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 várias mensagens no mesmo tópico com uma única solicitação, você pode usar o cmdlet New‑GcpsMessage
para criar uma matriz de mensagens e transmiti-la para o 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"
Criar uma assinatura em um tópico
O aplicativo do assinante cria uma assinatura em um tópico para receber mensagens dele. Você pode chamar o cmdlet New‑GcpsSubscription
para criar uma instância em um tópico específico. Se a configuração gcloud
ativa tiver um projeto, você não precisará usar o parâmetro -Project
.
Por padrão, a assinatura criada é uma assinatura de pull, o que significa que o assinante solicita as mensagens do tópico. Você pode criar uma assinatura de push (o Pub/Sub enviará mensagens para o endpoint escolhido pelo assinante) com -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"
Recuperar mensagens da assinatura
Para extrair mensagens da assinatura, use o cmdlet Get‑GcpsMessage
.
Por padrão, o cmdlet bloqueará o processo até que pelo menos uma mensagem seja recebida.
Para evitar o bloqueio, use o parâmetro -ReturnImmediately
.
O cmdlet também pode enviar automaticamente uma confirmação para cada mensagem recuperada, se você usar o parâmetro -AutoAck
. Caso contrário, você precisará usar o cmdlet Send‑GcpsAck
para enviar a confirmação. Mensagens não confirmadas ficarão disponíveis novamente para solicitação depois que o prazo de confirmação expirar.
# 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