Esta página descreve como configurar o seu contentor para enviar notificações sobre alterações de objetos para um tópico do Pub/Sub. Para obter informações sobre como subscrever um tópico do Pub/Sub que recebe notificações, consulte o artigo Escolha um tipo de subscrição.
Antes de começar
Antes de usar esta funcionalidade, siga as instruções abaixo.
Ative a API Pub/Sub
Ative a API Pub/Sub para o projeto que vai receber notificações.
Obtenha as funções necessárias
Para receber as autorizações necessárias para configurar e ver as notificações do Pub/Sub para um contentor, peça ao seu administrador que lhe conceda as seguintes funções. Estas funções predefinidas contêm as autorizações necessárias para configurar e ver notificações do Pub/Sub.
Função de administrador de armazenamento (
roles/storage.admin
) no contentor para o qual quer configurar notificações do Pub/SubFunção de administrador do Pub/Sub (
roles/pubsub.admin
) no projeto no qual quer receber notificações do Pub/Sub
Pode conseguir estas autorizações com outras funções predefinidas ou funções personalizadas.
Consulte o artigo Use o IAM com contentores para ver instruções sobre como conceder funções em contentores. Consulte o artigo Controlar o acesso para obter instruções sobre como conceder funções em projetos e definir controlos de acesso para tópicos e subscrições.
Certifique-se de que tem um tópico Pub/Sub existente
Se ainda não o fez, crie um tópico do Pub/Sub para o qual quer enviar notificações. Este passo não é necessário se planear usar a CLI Google Cloud ou o Terraform para executar as instruções nesta página.
Conceda a função necessária ao agente do serviço do seu projeto
Os passos seguintes não são necessários se planear usar a CLI Google Cloud ou o Terraform para executar as instruções nesta página.
Obtenha o endereço de email do agente de serviço associado ao projeto que contém o seu contentor do Cloud Storage.
Conceda ao agente de serviço a função de publicador do Pub/Sub (
roles/pubsub.publisher
) para o tópico do Pub/Sub relevante. Consulte o artigo Controlar o acesso para obter instruções sobre como conceder funções para tópicos.
Aplique uma configuração de notificação
Os passos seguintes adicionam uma configuração de notificação ao seu contentor que envia notificações para todos os eventos suportados.
Consola
Não pode gerir as notificações do Pub/Sub com a Google Cloud consola. Em alternativa, use a gcloud CLI ou uma das bibliotecas de cliente disponíveis.
Linha de comandos
Use o comando gcloud storage buckets notifications create
:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Onde:
BUCKET_NAME
é o nome do contentor relevante. Por exemplo,my-bucket
.TOPIC_NAME
é o tópico do Pub/Sub para o qual enviar notificações. Se especificar um tópico que não existe no seu projeto, o comando cria um para si.
Para enviar notificações para um subconjunto de eventos, inclua a flag --event-types
.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Para criar uma configuração de notificação para um contentor através do PHP, consulte a documentação de referência da biblioteca de cliente do Google Cloud.Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Terraform
Pode usar um recurso do Terraform para adicionar uma configuração de notificação a um contentor.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro JSON que contenha as seguintes informações:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
Onde:
PROJECT_ID
é o ID do projeto associado ao tópico do Pub/Sub para o qual quer enviar notificações. Por exemplo,my-pet-project
.TOPIC_NAME
é o tópico do Pub/Sub para o qual enviar notificações. Por exemplo,my-topic
.
Para enviar notificações para um subconjunto de eventos, inclua o campo
event_types
no corpo do seu pedido JSON.Use
cURL
para chamar a API JSON com um pedidoPOST notificationConfigs
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Onde:
JSON_FILE_NAME
é o caminho do ficheiro que criou no passo 2.BUCKET_NAME
é o nome do contentor para o qual quer que sejam geradas notificações. Por exemplo,my-bucket
.
API XML
Não pode gerir notificações do Pub/Sub com a API XML.
Obtenha uma configuração de notificação
Para obter uma configuração de notificação específica associada ao seu contentor, conclua os seguintes passos:
Consola
Não pode gerir as notificações do Pub/Sub com a Google Cloud consola. Em alternativa, use a CLI do Google Cloud ou uma das bibliotecas de cliente disponíveis.
Linha de comandos
Use o comando gcloud storage buckets notifications describe
:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Onde:
BUCKET_NAME
é o nome do contentor cuja configuração de notificação quer obter. Por exemplo,my-bucket
.NOTIFICATION_ID
é o número de ID da configuração relevante. Por exemplo,5
.
Se for bem-sucedido, a resposta é semelhante ao seguinte exemplo:
etag: '132' id: '132' kind: storage#notification payload_format: JSON_API_V1 selfLink: https://www.googleapis.com/storage/v1/b/my-bucket/notificationConfigs/132 topic: //pubsub.googleapis.com/projects/my-project/topics/my-bucket
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Para obter uma configuração de notificação para um contentor através do PHP, consulte a documentação de referência da biblioteca cliente do Google Cloud.Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com um pedidoGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Onde:
BUCKET_NAME
é o nome do contentor cuja configuração de notificação quer obter. Por exemplo,my-bucket
.NOTIFICATION_ID
é o número de ID da configuração de notificação que quer obter. Por exemplo,5
.
API XML
Não pode gerir notificações do Pub/Sub com a API XML.
Liste as configurações de notificações de um contentor
Para listar todas as configurações de notificação associadas a um determinado contentor:
Consola
Não pode gerir as notificações do Pub/Sub com a Google Cloud consola. Em alternativa, use a gcloud CLI ou uma das bibliotecas de cliente disponíveis.
Linha de comandos
Use o comando gcloud storage buckets notifications list
:
gcloud storage buckets notifications list gs://BUCKET_NAME
Onde BUCKET_NAME
é o nome do contentor cujas configurações de notificação quer listar. Por exemplo,
my-bucket
.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Para listar as configurações de notificação associadas a um contentor através do PHP, consulte a documentação de referência da biblioteca de cliente do Google Cloud.Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com um pedidoGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Onde
BUCKET_NAME
é o nome do contentor cujas configurações de notificação quer listar. Por exemplo,my-bucket
.
API XML
Não pode gerir notificações do Pub/Sub com a API XML.
Remova uma configuração de notificação
Para remover uma configuração de notificação existente do seu contentor:
Consola
Não pode gerir as notificações do Pub/Sub com a Google Cloud consola. Em alternativa, use a gcloud CLI ou uma das bibliotecas de cliente disponíveis.
Linha de comandos
Use o comando gcloud storage buckets notifications delete
:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Onde:
BUCKET_NAME
é o nome do contentor cuja configuração de notificação quer eliminar. Por exemplo,my-bucket
.NOTIFICATION_ID
é o número de ID da configuração que quer eliminar. Por exemplo,5
.
Se for bem-sucedido, a resposta é semelhante ao seguinte exemplo:
Completed 1
Depois de enviadas, as notificações acionadas pela configuração de notificações podem demorar até 30 segundos a parar.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Para eliminar uma configuração de notificação para um contentor com PHP, consulte a documentação de referência da biblioteca de cliente do Google Cloud.Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Terraform
Para remover a configuração de notificação que criou, execute o comando
terraform destroy
a partir da pasta que contém o seu ficheiro do Terraform.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com um pedidoDELETE notificationConfigs
:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Onde:
BUCKET_NAME
é o nome do contentor cuja configuração de notificação quer eliminar. Por exemplo,my-bucket
.NOTIFICATION_ID
é o número de ID da configuração de notificação que quer eliminar. Por exemplo,5
.
Após o envio, pode demorar até 30 segundos para que todas as notificações acionadas pela configuração de notificações parem.
API XML
Não pode gerir notificações do Pub/Sub com a API XML.
O que se segue?
Saiba mais sobre as notificações do Pub/Sub para o Cloud Storage.
Crie uma subscrição no Pub/Sub para ver as notificações enviadas pelo Cloud Storage.
Veja uma app de exemplo em Python que procura notificações no GitHub.
Use funções do Cloud Run para enviar eventos com um acionador do Cloud Storage.