Publicar e receber mensagens no Pub/Sub usando uma biblioteca de cliente
O serviço Pub/Sub permite que os aplicativos troquem mensagens de maneira confiável, rápida e assíncrona. Confira a seguir a sequência de eventos:
- Um produtor de dados publica uma mensagem em um tópico do Pub/Sub.
- Um cliente assinante cria uma assinatura no tópico e consome as mensagens da assinatura.
É possível configurar um ambiente Pub/Sub usando qualquer um dos seguintes métodos: console do Google Cloud, Cloud Shell, bibliotecas de cliente ou APIs REST. Nesta página, mostramos como começar a publicar mensagens com o Pub/Sub usando bibliotecas de cliente.
O Pub/Sub oferece uma biblioteca de cliente de alto e baixo nível gerada automaticamente. Por padrão, como neste guia de início rápido, recomendamos a biblioteca de cliente de alto nível.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud, clique em Orientação:
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie ou selecione um projeto do Google Cloud.
-
Crie um projeto do Google Cloud:
gcloud projects create PROJECT_ID
Substitua
PROJECT_ID
por um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome do projeto do Google Cloud.
-
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
-
Atribua os papéis à sua Conta do Google. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
- Substitua
PROJECT_ID
pela ID do seu projeto. - Substitua
EMAIL_ADDRESS
pelo seu endereço de e-mail. - Substitua
ROLE
por cada papel individual.
- Substitua
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie ou selecione um projeto do Google Cloud.
-
Crie um projeto do Google Cloud:
gcloud projects create PROJECT_ID
Substitua
PROJECT_ID
por um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome do projeto do Google Cloud.
-
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
-
Atribua os papéis à sua Conta do Google. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
- Substitua
PROJECT_ID
pela ID do seu projeto. - Substitua
EMAIL_ADDRESS
pelo seu endereço de e-mail. - Substitua
ROLE
por cada papel individual.
- Substitua
Instalar as bibliotecas de cliente
Os exemplos a seguir mostram como instalar as bibliotecas de cliente:
Python
Para mais informações sobre a configuração do ambiente de desenvolvimento Python, consulte o Guia de configuração do ambiente de desenvolvimento Python.
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
Para saber mais sobre como instalar a biblioteca C++,
consulte o README
do GitHub (link em inglês).
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
go get cloud.google.com/go/pubsub
Java
Se você estiver usando o Maven,
adicione o código abaixo ao arquivo pom.xml
. Para mais informações sobre
BOMs, consulte BOM das bibliotecas do Google Cloud Platform.
Se você estiver usando o Gradle, adicione isto às dependências:
Se você estiver usando o sbt, adicione o seguinte às suas dependências:
Se você estiver usando o Visual Studio Code, o IntelliJ ou o Eclipse, poderá adicionar bibliotecas de cliente ao projeto usando estes plug-ins de IDE:
Os plug-ins também oferecem outras funcionalidades, como gerenciamento de chaves de contas de serviço. Consulte a documentação de cada plug-in para mais detalhes.
Node.js
npm install --save @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
Criar um tópico e uma assinatura
Depois de criar um tópico, é possível assinar ou publicar nele.
Use o seguinte comando gcloud pubsub topics create para criar um tópico chamado my-topic
. Não altere o nome do tópico, porque ele será usado no restante do tutorial.
gcloud pubsub topics create my-topic
Use o comando gcloud pubsub subscriptions create para criar uma assinatura. Somente mensagens publicadas no tópico após a criação da assinatura estarão disponíveis para aplicativos do assinante.
gcloud pubsub subscriptions create my-sub --topic my-topic
Para mais informações sobre como nomear tópicos e assinaturas, consulte Nomes dos recursos.
Publique mensagens
Antes de executar as amostras a seguir, remova a marca de comentário e preencha qualquer um dos valores obrigatórios marcados no código. Isso é necessário para vincular a amostra ao projeto e aos recursos do Pub/Sub criados anteriormente.
Use my-topic
como ID do tópico.
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
Receber mensagens
Configure um assinante para solicitar as mensagens que você acabou de publicar. Todos os assinantes precisam confirmar o recebimento de cada mensagem dentro de um determinado período de tempo configurável. As mensagens não confirmadas serão reenviadas. Observe que o Pub/Sub de vez em quando entrega as mensagens mais de uma vez para garantir que todas as mensagens foram entregues ao assinante.
Antes de executar as amostras a seguir, remova a marca de comentário e preencha qualquer um dos valores obrigatórios marcados no código. Isso é necessário para vincular a amostra ao projeto e aos recursos do Pub/Sub criados anteriormente
Use my-sub
como o ID da assinatura.
Para mais exemplos que mostram como extrair mensagens, consulte Exemplos de código da biblioteca de cliente.
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
Como foi?
Limpar (opcional)
- Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste guia, use a linha de comando para excluir o tópico e a assinatura.
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
-
Opcional: revogue as credenciais de autenticação que você criou e exclua o arquivo de credenciais local:
gcloud auth application-default revoke
-
Opcional: revogar credenciais da CLI gcloud.
gcloud auth revoke
A seguir
Saiba mais sobre os conceitos do Pub/Sub discutidos nesta página.
Leia os conceitos básicos do serviço Pub/Sub.
Saiba como criar um sistema Pub/Sub de um para muitos, que cria um aplicativo de editor que é publicado em dois aplicativos de assinante separados.
Teste outro guia de início rápido do Pub/Sub que use a CLI gcloud ou o console.
Saiba mais sobre as APIs Pub/Sub.
Saiba como executar o Pub/Sub usando o Kotlin.