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
If you are using Maven, add
the following to your pom.xml
file. For more information about
BOMs, see The Google Cloud Platform Libraries BOM.
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
If you're using Visual Studio Code, IntelliJ, or Eclipse, you can add client libraries to your project using the following IDE plugins:
The plugins provide additional functionality, such as key management for service accounts. Refer to each plugin's documentation for details.
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.