Publicar e receber mensagens no Pub/Sub usando uma biblioteca de cliente
- Um produtor de dados publica uma mensagem em um tópico do Pub/Sub.
- Depois, um cliente assinante cria uma assinatura no tópico para consumir as respectivas mensagens.
É possível configurar um ambiente do Pub/Sub usando qualquer um dos seguintes métodos:console 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, 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.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Habilitar a API Pub/Sub:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.gcloud services enable pubsub.googleapis.com
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Atribua papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário . Por exemplo,myemail@example.com.ROLE: o papel do IAM concedido à sua conta de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Habilitar a API Pub/Sub:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.gcloud services enable pubsub.googleapis.com
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Atribua papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário . Por exemplo,myemail@example.com.ROLE: o papel do IAM concedido à sua conta de usuário.
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
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 ou o IntelliJ, 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 @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 comando gcloud pubsub topics create a seguir para criar um tópico chamado my-topic. Não mude o nome do tópico, porque ele é referenciado em todo o 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
Publique mensagens
Antes de executar os exemplos a seguir, remova a marca de comentário 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 antes.
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 a marca de comentário e preencha todos os valores obrigatórios marcados no código. Isso é necessário para vincular a amostra ao seu projeto e aos recursos do Pub/Sub que você criou antes.
Use my-sub para o ID da sua assinatura.
Para mais exemplos de 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 editor que publica em dois aplicativos assinantes 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.
Aprenda a executar o Pub/Sub usando Kotlin.