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 acessar notificações do Pub/Sub.
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
É 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, acesse Configurar a autenticação para 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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse 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 a 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_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, acesse Configurar a autenticação para 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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o 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, acesse Configurar a autenticação para 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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o 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, acesse Configurar a autenticação para 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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse 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 autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse 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 a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o 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.