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 sequência de eventos a seguir:
- Um produtor de dados publica uma mensagem em um tópico do Pub/Sub.
- Um cliente assinante cria uma assinatura para o tópico e consome as mensagens da assinatura.
É possível configurar um ambiente do 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 passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
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 mais informações sobre como instalar a biblioteca C++, consulte o README
do GitHub.
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 assiná-lo ou publicar nele.
Use o comando
gcloud pubsub topics
create para criar um tópico chamado my-topic
. Não mude
o nome do tópico, porque ele é referenciado 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 os exemplos a seguir, remova os comentários e preencha todos os valores obrigatórios marcados no código. Isso é necessário para vincular o exemplo ao seu projeto e aos recursos do Pub/Sub que você criou anteriormente.
Use my-topic
para o 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 os exemplos a seguir, remova os comentários e preencha todos os valores obrigatórios marcados no código. Isso é necessário para vincular o exemplo ao seu projeto e aos recursos do Pub/Sub que você criou anteriormente.
Use my-sub
para o ID da sua 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 que os recursos usados neste guia sejam cobrados na conta do Google Cloud, 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
-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the gcloud CLI.
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 um para muitos, que cria um aplicativo de editor que publica em dois aplicativos de assinante separados.
Teste outro guia de início rápido do Pub/Sub que use a gcloud CLI ou o console.
Saiba mais sobre as APIs Pub/Sub.
Aprenda a executar o Pub/Sub usando Kotlin.