Gatilhos do Cloud Storage
No Cloud Functions, um acionador do Cloud Storage permite que uma função seja chamada em resposta às mudanças no Cloud Storage. Ao especificar um gatilho do Cloud Storage para uma função, você escolhe um tipo de evento e um bucket do Cloud Storage. A função será chamada sempre que ocorrer uma alteração em um objeto (arquivo) no bucket especificado.
Os seguintes tipos de eventos do Cloud Storage são compatíveis:
Evento | Tipo de evento | Descrição |
---|---|---|
Objeto finalizado |
|
Isso ocorre quando um novo objeto é criado ou um objeto existente é substituído e uma nova geração desse objeto é criada. |
Objeto excluído |
|
Isso ocorre quando um objeto é excluído permanentemente. |
Objeto arquivado |
|
Isso ocorre quando uma versão ativa de um objeto se torna uma versão não atual. Consulte Controle de versão de objeto para mais informações. |
Metadados de objetos atualizados |
|
Ocorre quando os metadados de um objeto são alterados. |
Para que uma função use um acionador do Cloud Storage, ela precisa ser implementada como uma função orientada a eventos:
Se você usar um Função CloudEvent , os dados de evento do Cloud Storage são transmitidos para sua função no Formato do CloudEvents e o payload de dados do CloudEvent é do tipo
StorageObjectData
.Se você usar uma função em segundo plano, o payload de dados de eventos do Cloud Storage será transmitido diretamente para sua função no formato
StorageObjectData
.
O repositório Eventos do Google contém outros recursos para trabalhar com dados de eventos.
Permissões
Para usar gatilhos do Cloud Storage no Cloud Functions (2ª geração), o agente de serviço do Cloud Storage precisa ter o papel do IAM Publicador do Pub/Sub (roles/pubsub.publisher
) no projeto. Esse requisito não se aplica ao Cloud Functions (1ª geração).
Implantação
É possível especificar um acionador do Cloud Storage ao implantar uma função. Consulte Implantar uma função do Cloud para instruções gerais sobre como implantar uma função. Veja abaixo mais informações específicas para configurar gatilhos do Cloud Storage durante a implantação.
gcloud
Se você estiver implantando usando a CLI gcloud, poderá usar o tipo de evento Objeto finalizado do Cloud Storage com as seguintes sinalizações:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-bucket=YOUR_STORAGE_BUCKET \ [--retry] \ ...
- A flag
--trigger-bucket
especifica o bucket do Cloud Storage que será monitorado pelo gatilho. Eventos finalizados pelo objeto nesse bucket acionarão chamadas para sua função. - A sinalização
--retry
controla se as chamadas de função com falha são repetidas automaticamente. Consulte Como repetir funções orientadas a eventos para mais informações.
Para usar tipos de eventos diferentes de objeto finalizado, use as seguintes sinalizações:
Para o Cloud Functions (2ª geração):
gcloud functions deploy YOUR_FUNCTION_NAME \ --gen2 \ --trigger-event-filters="type=EVENT_TYPE" \ --trigger-event-filters="bucket=YOUR_STORAGE_BUCKET" \ ...
Para o Cloud Functions (1ª geração):
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=EVENT_TYPE \ --trigger-resource=YOUR_STORAGE_BUCKET \ ...
Eventos legados do Cloud Storage
As funções legadas no Cloud Functions (1a geração) usam notificações de alteração de objeto legadas para acionadores do Cloud Storage:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=providers/cloud.storage/eventTypes/object.change \ --trigger-resource=YOUR_STORAGE_BUCKET \ ...
Esse tipo de evento é compatível com funções legadas que já consomem esses eventos. No entanto, não recomendamos o uso desse tipo de evento, já que ele poderá ser removido no futuro.
Console
Se você estiver implantando usando o Console do Google Cloud, será possível configurar um acionador do Cloud Storage na seção Acionador.
Para o Cloud Functions (2ª geração):
- Para adicionar um gatilho de evento, clique em Adicionar gatilho.
Selecione Gatilho do Cloud Storage.
O painel Gatilho do Eventarc é aberto. O painel é pré-preenchido com o Cloud Storage como o provedor de eventos e
google.cloud.storage.object.v1.finalized
como o evento engatilhador.Você pode usar o campo Evento para selecionar um evento diferente. Para um evento do Cloud Storage que usa os Registros de auditoria do Cloud, consulte as instruções de configuração de um gatilho do Eventarc.
No campo Bucket, clique em Procurar para selecionar um bucket do Cloud Storage para o gatilho monitorar. As alterações feitas nos objetos dentro desse bucket acionarão chamadas para sua função.
Opcionalmente, no campo Conta de serviço, selecione uma conta de serviço a ser usada como a identidade do gatilho do Eventarc. Consulte Identidade do gatilho para mais informações.
Marque ou desmarque a caixa de seleção Tentar novamente em caso de falha para controlar se novas tentativas são feitas automaticamente. Consulte Como repetir funções orientadas a eventos para mais informações.
Clique em Salvar acionador.
Para o Cloud Functions (1ª geração):
- No campo tipo de Acionador, selecione Cloud Storage.
- No campo Tipo de evento, selecione um tipo.
- No campo Bucket, clique em Procurar para selecionar um bucket do Cloud Storage para o gatilho monitorar. As alterações feitas nos objetos dentro desse bucket acionarão chamadas para sua função.
- Marque ou desmarque a caixa de seleção Tentar novamente em caso de falha para controlar se novas tentativas são feitas automaticamente. Consulte Como repetir funções orientadas a eventos para mais informações.
Entrega de eventos
Os gatilhos do Cloud Storage são implementados com notificações do Pub/Sub para Cloud Storage. Os eventos estão sujeitos às garantias de entrega de notificações do Pub/Sub.
Um bucket do Cloud Storage pode ter até 10 configurações de notificação definidas para gatilho de um evento específico. Exceder os limites de notificações do bucket fará com que outras implantações de função falhem com um erro como este:
Cloud Storage bucket ...: Pub/Sub notification limit reached
Consulte Cotas e limites do Cloud Storage para saber mais.
Próximas etapas
- Saiba como escrever funções baseadas em eventos.
- Saiba como implantar uma função do Cloud.
- Consulte o tutorial de função do Cloud Storage para ver um exemplo de gravação, implantação e chamada de uma função com um gatilho do Cloud Storage.