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, conclua as etapas a seguir:
Ative a API Pub/Sub para o projeto que receberá notificações.
Tenha a permissão
storage.buckets.update
estorage.buckets.get
no bucket que você quer monitorar. Consulte Como usar as permissões do IAM para mais instruções sobre como fazer isso. Se você é proprietário do projeto que contém o bucket, é provável que tenha a permissão necessária.Ter permissões suficientes no projeto que receberá as notificações:
Se você é proprietário do projeto que vai receber as notificações, é provável que tenha a permissão necessária.
Se você planeja criar tópicos para receber as notificações, é necessário ter a permissão
pubsub.topics.create
.Se você planeja usar tópicos atuais ou novos, é necessário ter a permissão
pubsub.topics.setIamPolicy
. Se você criar um tópico, ele normalmente terápubsub.topics.setIamPolicy
.Consulte Controle de acesso do Pub/Sub para mais instruções sobre como receber essas permissões.
-
Tenha um tópico do Pub/Sub para onde as notificações serão enviadas.
Encontre o endereço de e-mail da conta de serviço associada ao projeto que contém o bucket do Cloud Storage.
Use esse endereço de e-mail para atribuir ao agente de serviço o papel do IAM
pubsub.publisher
para o tópico do Pub/Sub relevante.
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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
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 OAUTH2_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.OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.BUCKET_NAME
é o nome do bucket para o qual 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 obter uma configuração de notificação específica associada ao 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 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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitaçãoGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitaçãoGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitaçãoDELETE notificationConfigs
:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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 o recurso notificações do Pub/Sub para Cloud Storage.
- Crie uma inscrição no Pub/Sub para ver as notificações enviadas pelo Cloud Storage.
- Veja um exemplo de aplicativo em Python para pesquisa de notificações no GitHub.
- Use o Cloud Functions para enviar eventos com um acionador do Cloud Storage.