Nesta página, descrevemos como configurar o bucket para enviar notificações sobre alterações de objetos em um tópico do Pub/Sub. Para informações sobre como se inscrever em um tópico do Pub/Sub que recebe notificações, consulte Escolher um tipo de assinatura.
Antes de começar
Antes de usar esse recurso, siga estas instruções:
Habilitar a API Pub/Sub
Ative a API Pub/Sub para o projeto que receberá notificações.
Acessar os papéis necessários
Para ter as permissões necessárias para configurar e ver as notificações do Pub/Sub de um bucket, peça ao administrador para conceder a você os seguintes papéis: Esses papéis predefinidos contêm as permissões necessárias para configurar e ver notificações do Pub/Sub.
- Papel de Administrador do Storage ( - roles/storage.admin) no bucket em que você quer configurar notificações do Pub/Sub
- Papel de Administrador do Pub/Sub ( - roles/pubsub.admin) no projeto em que você quer receber notificações do Pub/Sub
É possível conseguir essas permissões com outros papéis predefinidos ou personalizados.
Consulte Definir e gerenciar políticas do IAM em buckets para instruções sobre como conceder papéis em buckets. Consulte Como controlar o acesso para ver instruções sobre como conceder papéis em projetos e definir controles de acesso para tópicos e assinaturas.
Verifique se você tem um tópico do Pub/Sub existente
Crie um tópico do Pub/Sub para receber notificações, caso ainda não tenha feito isso. Essa etapa não é necessária se você planeja usar a CLI do Google Cloud ou o Terraform para executar as instruções desta página.
Conceder o papel necessário ao agente de serviço do projeto
As etapas a seguir não são necessárias se você planeja usar a CLI do Google Cloud ou o Terraform para executar as instruções desta página.
- Encontre o endereço de e-mail da conta de serviço associada ao projeto que contém o bucket do Cloud Storage. 
- Conceda ao agente de serviço o papel de publisher do Pub/Sub ( - roles/pubsub.publisher) para o tópico do Pub/Sub relevante. Consulte Como controlar o acesso para ver instruções sobre como conceder papéis para tópicos.
Aplicar uma configuração de notificação
Nas etapas a seguir, você verá como adicionar uma configuração de notificação ao bucket que enviará notificações para os eventos possíveis.
Console
Não é possível gerenciar notificações do Pub/Sub com o console doGoogle Cloud . Use a CLI gcloud ou uma das bibliotecas de cliente disponíveis.
Linha de comando
Use o comando gcloud storage buckets notifications create:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Em que:
- BUCKET_NAMEé o nome do bucket pertinente. Por exemplo,- my-bucket.
- O - TOPIC_NAMEé o tópico Pub/Sub para onde as notificações serão enviadas. Se você especificar um tópico que não existe no projeto, o comando vai criar um.
Para enviar notificações sobre um subconjunto de eventos, inclua a
flag --event-types.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Para criar uma configuração de notificação para um bucket usando 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 Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Terraform
É possível usar um recurso do Terraform para adicionar uma configuração de notificação a um bucket.
APIs REST
API JSON
- Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho - Authorization.
- Crie um arquivo JSON com as informações a seguir: - { "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" } - Em que: - PROJECT_IDé o ID do projeto associado ao tópico do Pub/Sub para o qual você quer enviar notificações. Por exemplo,- my-pet-project.
- TOPIC_NAMEé o tópico do Pub/Sub para o qual as notificações serão enviadas. Por exemplo,- my-topic.
 - Para enviar notificações sobre um subconjunto de eventos, inclua o campo - event_typesno corpo da solicitação JSON.
- Use - cURLpara chamar a API JSON com uma solicitação- POST 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" - Em que: - JSON_FILE_NAMEé o caminho para o arquivo criado na Etapa 2.
- BUCKET_NAMEé o nome do bucket em que você quer que as notificações sejam geradas. Por exemplo,- my-bucket.
 
API XML
Não é possível gerenciar notificações do Pub/Sub com a API XML.
Receber uma configuração de notificação
Para receber uma configuração de notificação específica associada ao seu bucket, siga estas etapas:
Console
Não é possível gerenciar notificações do Pub/Sub com o console doGoogle Cloud . Use a CLI do Google Cloud ou uma das bibliotecas de cliente disponíveis.
Linha de comando
Use o comando gcloud storage buckets notifications describe:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Em que:
- BUCKET_NAMEé o nome do bucket com a configuração de notificação que você quer recuperar. Por exemplo,- my-bucket.
- NOTIFICATION_IDé o número do ID da configuração desejada. Por exemplo,- 5.
Se a operação for bem-sucedida, a resposta será semelhante a esta:
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 de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Para conseguir uma configuração de notificação para um bucket usando 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 Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
- Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho - Authorization.
- Use - cURLpara chamar a API JSON com uma solicitação- GET notificationConfigs:- curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID" - Em que: - BUCKET_NAMEé o nome do bucket que tem a configuração de notificação que você quer recuperar. Por exemplo,- my-bucket.
- NOTIFICATION_IDé o número do ID da configuração de notificação que você quer recuperar. Por exemplo,- 5.
 
API XML
Não é possível gerenciar notificações do Pub/Sub com a API XML.
Listar configurações de notificação de um bucket
Para listar todas as configurações de notificação associadas a um determinado bucket:
Console
Não é possível gerenciar notificações do Pub/Sub com o console doGoogle Cloud . Use a CLI gcloud ou uma das bibliotecas de cliente disponíveis.
Linha de comando
Use o comando gcloud storage buckets notifications list:
gcloud storage buckets notifications list gs://BUCKET_NAME
Em que BUCKET_NAME é o nome do bucket
com as configurações de notificação que você quer listar. Por exemplo, my-bucket.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Para listar as configurações de notificação associadas a um bucket usando 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 Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
- Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho - Authorization.
- Use - cURLpara chamar a API JSON com uma solicitação- GET notificationConfigs:- curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs" - Em que - BUCKET_NAMEé o nome do bucket com as configurações de notificação que você quer listar. Por exemplo,- my-bucket.
API XML
Não é possível gerenciar notificações do Pub/Sub com a API XML.
Remover uma configuração de notificação
Para remover uma configuração de notificação existente no seu bucket:
Console
Não é possível gerenciar notificações do Pub/Sub com o console doGoogle Cloud . Use a CLI gcloud ou uma das bibliotecas de cliente disponíveis.
Linha de comando
Use o comando gcloud storage buckets notifications delete:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Em que:
- BUCKET_NAMEé o nome do bucket com a configuração de notificação que você quer excluir. Por exemplo,- my-bucket.
- NOTIFICATION_IDé o número do ID da configuração que você quer excluir. Por exemplo,- 5.
Se a operação for bem-sucedida, a resposta será semelhante a esta:
Completed 1
Depois de enviada, o tempo estimado para que todas as notificações acionadas pela configuração da notificação parem é de até 30 segundos.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Para excluir uma configuração de notificação de um bucket usando 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 Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Terraform
Para remover a configuração de notificação que você criou, execute
terraform destroy na pasta que contém o
arquivo do Terraform.
APIs REST
API JSON
- Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho - Authorization.
- Use - cURLpara chamar a API JSON com uma solicitação- DELETE notificationConfigs:- curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID" - Em que: - BUCKET_NAMEé o nome do bucket com a configuração de notificação que você quer excluir. Por exemplo,- my-bucket.
- NOTIFICATION_IDé o número do ID da configuração de notificação que você quer excluir. Por exemplo,- 5.
 
Depois de enviada, o tempo estimado para que todas as notificações acionadas pela configuração da notificação parem é de até 30 segundos.
API XML
Não é possível gerenciar notificações do Pub/Sub com a API XML.
A seguir
- Saiba mais sobre as notificações do Pub/Sub para o Cloud Storage. 
- Crie uma assinatura no Pub/Sub para ver as notificações enviadas pelo Cloud Storage. 
- Consulte um exemplo de aplicativo em Python que pesquisa notificações no GitHub. 
- Use as funções do Cloud Run para enviar eventos com um acionador do Cloud Storage.