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:
Papel de Administrador do Storage (
roles/storage.admin
) no bucket em que você quer configurar notificações do Pub/SubPapel de Administrador do Pub/Sub (
roles/pubsub.admin
) no projeto em que você quer receber notificações do Pub/Sub
Esses papéis predefinidos contêm as permissões necessárias para configurar e ver notificações do Pub/Sub. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.buckets.get
storage.buckets.update
pubsub.topics.create
pubsub.topics.setIamPolicy
É possível conseguir essas permissões com outros papéis predefinidos ou personalizados.
Consulte Usar o IAM com buckets para ver 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 do Google 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Terraform
É possível usar um recurso do Terraform para adicionar uma configuração de notificação a um bucket.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no 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_types
no corpo da solicitação JSON.Use
cURL
para chamar a API JSON com uma solicitaçãoPOST 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 do Google 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitaçãoGET 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 do Google 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitaçãoGET 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 do Google 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitaçãoDELETE 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.