Este documento mostra como publicar mensagens em um tópico com um esquema.
Antes de começar
Antes de configurar o fluxo de trabalho de publicação, verifique se você concluiu as seguintes tarefas:
- Entenda como os esquemas do Pub/Sub funcionam.
- Associar um esquema a um tópico.
Funções exigidas
Para receber as permissões necessárias para publicar mensagens em um tópico, peça ao administrador para conceder a você o papel do IAM Publicador do Pub/Sub (roles/pubsub.publisher
) no tópico.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Você precisa de permissões adicionais para criar ou atualizar tópicos e assinaturas.Publicar mensagens com esquema
É possível publicar mensagens em um tópico associado a um esquema. Você precisa codificar as mensagens no esquema e no formato especificados quando criou o tópico. Uma mensagem corresponde ao esquema associado ao tópico se corresponder a qualquer uma das revisões do esquema no intervalo permitido de revisões. As mensagens são avaliadas em relação às revisões, começando pela mais recente permitido até que uma correspondência seja encontrada ou a revisão mais antiga seja alcançada. O Pub/Sub adiciona os seguintes atributos a uma mensagem publicada em um tópico associado a um esquema:
googclient_schemaname
: o nome do esquema usado para validação.googclient_schemaencoding
: a codificação da mensagem, JSON ou BINÁRIO.googclient_schemarevisionid
: o ID de revisão do esquema usado para analisar e validar a mensagem. Cada revisão tem um ID de revisão exclusivo associado a ela. O ID da revisão é um UUID de oito caracteres gerado automaticamente.
Quando uma mensagem não corresponde a nenhuma das revisões de esquema permitidas pelo
tópico, o Pub/Sub retorna um
erro INVALID_ARGUMENT
para a solicitação de publicação.
O Pub/Sub só avalia as mensagens em relação às revisões de esquema no momento da publicação. Confirmar uma nova revisão de esquema ou mudar o esquema associado a um tópico após a publicação de uma mensagem não reavalia essa mensagem nem muda nenhum dos atributos de mensagem de esquema anexados.
É possível publicar mensagens em um tópico com um esquema associado em um projeto do Google Cloud usando o console do Google Cloud, a CLI do gcloud, a API Pub/Sub ou as bibliotecas de cliente do Cloud.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Publique uma mensagem de exemplo usando o comando gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGE
Substitua:
TOPIC_ID: nome do tópico que você já criou.
MESSAGE: mensagem publicada no tópico. Um exemplo de mensagem pode ser
{"name": "Alaska", "post_abbr": "AK"}
.
C++
Antes de tentar esse exemplo, siga as instruções de configuração do C++ em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
Avro ProtoC#
Antes de tentar esse exemplo, siga as instruções de configuração do C# em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C#.
Avro ProtoGo
Antes de tentar esse exemplo, siga as instruções de configuração do Go em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Go.
Avro ProtoJava
Antes de tentar essa amostra, siga as instruções de configuração do Java em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Java.
Avro ProtoNode.js
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Node.js.
Avro Buffer de protocoloNode.js
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Node.js.
Avro Buffer de protocoloPHP
Antes de tentar esse exemplo, siga as instruções de configuração do PHP em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub PHP.
Avro Buffer de protocoloPython
Antes de tentar esse exemplo, siga as instruções de configuração do Python em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Python.
Avro Buffer de protocoloRuby
Antes de tentar esse exemplo, siga as instruções de configuração do Ruby em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Ruby.
Avro Buffer de protocoloA seguir
Para restringir os locais em que o Pub/Sub armazena dados de mensagem, consulte Como restringir locais de recursos do Pub/Sub.
Para mais informações sobre como receber mensagens, consulte Escolher um tipo de assinatura.