Um acionador do Eventarc declara o seu interesse num determinado evento ou conjunto de eventos. Pode configurar o encaminhamento de eventos especificando filtros para o acionador, incluindo a origem do evento e o fluxo de trabalho de destino.
Os eventos são entregues no formato CloudEvents através de um pedido HTTP. O serviço Workflows converte o evento num objeto JSON (seguindo a especificação CloudEvents) e passa o evento para a execução do fluxo de trabalho como um argumento de tempo de execução do fluxo de trabalho. Certifique-se de que o tamanho do evento não excede 512 KB. Os eventos superiores ao tamanho máximo dos argumentos dos fluxos de trabalho não acionam execuções de fluxos de trabalho.
Estas instruções mostram como configurar o encaminhamento de eventos para que uma execução do fluxo de trabalho seja acionada em resposta a um eventoFirebase Alerts direto. Para mais detalhes, consulte a lista de eventos diretos suportados. Os pedidos ao seu serviço são acionados em resposta a um evento quando um serviço do Firebase publica um alerta do Firebase.Prepare-se para criar um acionador
Antes de criar um acionador do Eventarc para um fluxo de trabalho de destino, conclua as seguintes tarefas.
Consola
Na Google Cloud consola, na página do seletor de projetos, selecione ou crie um Google Cloud projeto.
Ative as APIs Eventarc, Eventarc Publishing, Workflows e Workflow Executions.
Se aplicável, ative a API relacionada com os eventos diretos. Por exemplo, para eventos, ative a APIFirebase Alerts . Firebase Alerts
Se ainda não tiver uma, crie uma conta de serviço gerida pelo utilizador e, em seguida, conceda-lhe as funções e as autorizações necessárias para que o Eventarc possa gerir eventos para um fluxo de trabalho de destino.
Na Google Cloud consola, aceda à página Contas de serviço.
Selecione o seu projeto.
No campo Nome da conta de serviço, introduza um nome. A Google Cloud consola preenche o campo ID da conta de serviço com base neste nome.
No campo Descrição da conta de serviço, introduza uma descrição. Por exemplo,
Service account for event trigger
.Clique em Criar e continuar.
Para conceder o acesso adequado, na lista Selecionar uma função, selecione as funções de gestão de identidade e de acesso (IAM) necessárias para conceder à sua conta de serviço. Para mais informações, consulte o artigo Funções e autorizações para alvos de fluxos de trabalho.
Para funções adicionais, clique em
Adicionar outra função e adicione cada função adicional.Clique em Continuar.
Para concluir a criação da conta, clique em Concluído.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Ative as APIs Eventarc, Eventarc Publishing, Workflows e Workflow Executions:
gcloud services enable eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
Se aplicável, ative a API relacionada com os eventos diretos. Por exemplo, para Firebase Alerts eventos, ative
firestore.googleapis.com
.Se ainda não tiver uma, crie uma conta de serviço gerida pelo utilizador e, em seguida, conceda-lhe as funções e as autorizações necessárias para que o Eventarc possa gerir eventos para um fluxo de trabalho de destino.
Crie a conta de serviço:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Substitua
SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço. Tem de ter entre 6 e 30 carateres e pode conter carateres alfanuméricos em minúsculas e traços. Depois de criar uma conta de serviço, não pode alterar o respetivo nome.Conceda as funções ou as autorizações da gestão de identidade e de acesso (IAM) necessárias. Para mais informações, consulte o artigo Funções e autorizações para alvos de fluxos de trabalho.
Crie um acionador
Pode criar um acionador do Eventarc com um fluxo de trabalho implementado como o recetor de eventos através da CLI Google Cloud (gcloud
ou Terraform) ou através da consola Google Cloud .
Consola
- Na Google Cloud consola, aceda à página Triggers do Eventarc.
- Clique em Criar acionador.
- Escreva um Nome do acionador.
Este é o ID do acionador e tem de começar com uma letra. Pode conter até 63 letras minúsculas, números ou hífenes.
- Para o Tipo de acionador, selecione Fontes Google.
- Na lista Fornecedor de eventos, selecione
Firebase Alerts.
Tenha em atenção que o nome do fornecedor de eventos usado na Google Cloud documentação associada pode não ter um prefixo de Cloud ou Google Cloud. Por exemplo, na consola, o Memorystore for Redis é denominado Google Cloud Memorystore for Redis.
- Na lista Tipo de evento, nos eventos Direto, selecione um tipo de evento.
- Para especificar a codificação da carga útil do evento, na lista Tipo de conteúdo dos dados do evento, selecione application/json ou application/protobuf.
Tenha em atenção que um payload de evento formatado em JSON é maior do que um formatado em Protobuf. Isto pode afetar a fiabilidade, dependendo do destino do evento e dos respetivos limites de tamanho do evento. Para mais informações, consulte a secção Problemas conhecidos.
- Na lista Região, selecione global (Global).
Para mais informações, consulte o artigo Localizações do Eventarc.
- No campo Atributo 1, o alerttype
ID do recurso funciona como um
filtro de eventos. Selecione um operador para este filtro:
- Igual
- Padrão de caminho
Para mais informações, consulte o artigo Compreenda os padrões de caminhos.
- No campo Valor do atributo 1, introduza um dos seguintes valores:
appDistribution.inAppFeedback
: o evento é enviado quando um testador envia feedback na app para uma determinada appappDistribution.newTesterIosDevice
: o evento é enviado quando um dispositivo de teste iOS novo é registado para uma determinada appbilling.planAutomatedUpdate
: o evento é enviado quando o plano de faturação de um projeto do Firebase é atualizado automaticamente; por exemplo, quando um plano é reduzido devido a problemas de pagamentobilling.planUpdate
: o evento é enviado quando um utilizador modifica o plano de faturação de um projeto do Firebase; por exemplo, quando uma conta de faturação é anexada ou desanexada de um projetocrashlytics.missingSymbolFile
: o evento é enviado quando o Firebase Crashlytics determina que não tem os símbolos de depuração adequados para simbolizar um relatório de falha recebidocrashlytics.newAnrIssue
: o evento é enviado quando uma app tem um erro novo do tipo A aplicação não está a responder (ANR) (não para eventos idênticos subsequentes)crashlytics.newFatalIssue
: o evento é enviado quando uma app tem uma falha fatal nova (não para eventos idênticos subsequentes)crashlytics.newNonfatalIssue
: o evento é enviado quando uma app tem um erro não crítico novo (não para eventos idênticos subsequentes)crashlytics.regression
: evento enviado quando uma app sofre uma falha de sistema devido a um problema marcado como resolvido para uma versão anterior da app- O evento
crashlytics.stabilityDigest
: é enviado quando existe uma notificação dos principais problemas de tendências no Crashlytics crashlytics.velocity
: o evento é enviado quando um único problema é responsável por provocar uma falha de sistema num número significativo de sessões da appperformance.threshold
: o evento é enviado quando o desempenho de uma métrica ultrapassa o limite definido
- Opcionalmente, pode filtrar eventos para um ID da app do Firebase específico. Clique em add Adicionar filtro e especifique o appid.
- Selecione a conta de serviço que vai invocar o seu serviço
ou fluxo de trabalho.
Em alternativa, pode criar uma nova conta de serviço.
Isto especifica o email da conta de serviço de gestão de identidade e de acesso (IAM) associado ao acionador e ao qual concedeu anteriormente funções específicas necessárias pelo Eventarc.
- Na lista Destino do evento, selecione Workflows.
- Selecione um fluxo de trabalho.
Este é o nome do fluxo de trabalho para o qual os eventos são transmitidos. Os eventos de uma execução do fluxo de trabalho são transformados e transmitidos ao fluxo de trabalho como argumentos de tempo de execução.
Para mais informações, consulte o artigo Crie um acionador para fluxos de trabalho.
- Opcionalmente, para adicionar uma etiqueta, pode clicar em O que são etiquetas? Adicionar etiqueta. As etiquetas são pares de chave-valor que ajudam a organizar os seus Google Cloud recursos. Para mais informações, consulte o artigo
- Clique em Criar.
Depois de criar um acionador, não é possível modificar os filtros da origem do evento. Em alternativa, crie um novo acionador e elimine o antigo. Para mais informações, consulte o artigo Faça a gestão dos acionadores.
gcloud
gcloud eventarc triggers create TRIGGER \ --location=global \ --destination-workflow=DESTINATION_WORKFLOW \ --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=ALERT_TYPE" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account="MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com"
Substitua o seguinte:
TRIGGER
: o ID do acionador ou um identificador totalmente qualificado.-
DESTINATION_WORKFLOW
: o ID do fluxo de trabalho implementado que recebe os eventos do acionador. O fluxo de trabalho pode estar em qualquer uma das localizações suportadas e não tem de estar na mesma localização que o acionador. No entanto, o fluxo de trabalho tem de estar no mesmo projeto que o acionador. -
DESTINATION_WORKFLOW_LOCATION
(opcional): a localização em que o fluxo de trabalho de destino é implementado. Se não for especificado, assume-se que o fluxo de trabalho está na mesma localização que o acionador. ALERT_TYPE
: o tipo de alerta do Firebase e pode ser um dos seguintes valores:appDistribution.inAppFeedback
: o evento é enviado quando um testador envia feedback na app para uma determinada appappDistribution.newTesterIosDevice
: o evento é enviado quando um dispositivo de teste iOS novo é registado para uma determinada appbilling.planAutomatedUpdate
: o evento é enviado quando o plano de faturação de um projeto do Firebase é atualizado automaticamente; por exemplo, quando um plano é reduzido devido a problemas de pagamentobilling.planUpdate
: o evento é enviado quando um utilizador modifica o plano de faturação de um projeto do Firebase; por exemplo, quando uma conta de faturação é anexada ou desanexada de um projetocrashlytics.missingSymbolFile
: o evento é enviado quando o Firebase Crashlytics determina que não tem os símbolos de depuração adequados para simbolizar um relatório de falha recebidocrashlytics.newAnrIssue
: o evento é enviado quando uma app tem um erro novo do tipo A aplicação não está a responder (ANR) (não para eventos idênticos subsequentes)crashlytics.newFatalIssue
: o evento é enviado quando uma app tem uma falha fatal nova (não para eventos idênticos subsequentes)crashlytics.newNonfatalIssue
: o evento é enviado quando uma app tem um erro não crítico novo (não para eventos idênticos subsequentes)crashlytics.regression
: evento enviado quando uma app sofre uma falha de sistema devido a um problema marcado como resolvido para uma versão anterior da app- O evento
crashlytics.stabilityDigest
: é enviado quando existe uma notificação dos principais problemas de tendências no Crashlytics crashlytics.velocity
: o evento é enviado quando um único problema é responsável por provocar uma falha de sistema num número significativo de sessões da appperformance.threshold
: o evento é enviado quando o desempenho de uma métrica ultrapassa o limite definido
ALERT_TYPE
tem de ser um dos seguintes:- Igual; por exemplo,
--event-filters="alerttype=appDistribution.inAppFeedback"
- Padrão de caminho; por exemplo,
--event-filters-path-pattern="alerttype=appDistribution."
ou--event-filters-path-pattern="alerttype=crashlytics.new
"
.Para mais informações, consulte o artigo Compreenda os padrões de caminhos.
-
EVENT_DATA_CONTENT_TYPE
: (opcional) a codificação da carga útil do evento. Pode serapplication/json
ouapplication/protobuf
. A codificação predefinida éapplication/json
.Tenha em atenção que um payload de evento formatado em JSON é maior do que um formatado em Protobuf. Isto pode afetar a fiabilidade, dependendo do destino do evento e dos respetivos limites de tamanho do evento. Para mais informações, consulte a secção Problemas conhecidos.
-
SERVICE_ACCOUNT_NAME
: o nome da conta de serviço do IAM que criou à qual concedeu funções específicas exigidas pelos Workflows. -
PROJECT_ID
: o ID do seu Google Cloud projeto
Notas:
- A flag
--location
tem de serglobal
. Para mais informações, consulte o artigo Localizações do Eventarc. - Estas flags são obrigatórias:
--event-filters="type=google.firebase.firebasealerts.alerts.v1.published"
--event-filters="alerttype=ALERT_TYPE"
ou--event-filters-path-pattern="alerttype=ALERT_TYPE"
- Depois de criar um acionador, não é possível alterar o tipo de filtro de eventos. Para um tipo de evento diferente, tem de criar um novo acionador.
- Opcionalmente, pode filtrar eventos para um ID da app Firebase específico usando a flag
--event-filters="appid=APP_ID"
e especificando uma correspondência exata. -
--service-account
: O email da conta de serviço de IAM que o acionador do Eventarc vai usar para invocar as execuções do fluxo de trabalho. Recomendamos vivamente que use uma conta de serviço com o mínimo de privilégios necessários para aceder aos recursos necessários. Para saber mais sobre as contas de serviço, consulte o artigo Crie e faça a gestão de contas de serviço. - Por predefinição, as subscrições do Pub/Sub criadas para o Eventarc persistem independentemente da atividade e não expiram. Para alterar a duração da inatividade, consulte o artigo Propriedades da subscrição.
Exemplo:
gcloud eventarc triggers create firealerts-workflows-trigger \ --location=global \ --destination-workflow=my-workflow \ --destination-workflow-location=europe-west4 \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=crashlytics.velocity" \ --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
Este comando cria um acionador denominado firealerts-workflows-trigger
para
o evento identificado como google.firebase.firebasealerts.alerts.v1.published
,
e para um tipo de alerta crashlytics.velocity
.
Terraform
Pode criar um acionador para um fluxo de trabalho com o Terraform. Para ver detalhes, consulte o artigo Acione um fluxo de trabalho com o Eventarc e o Terraform.
Crie uma lista de um acionador
Pode confirmar a criação de um acionador listando os acionadores do Eventarc através da CLI do Google Cloud ou da Google Cloud consola.
Consola
Na Google Cloud consola, aceda à página Triggers do Eventarc.
Esta página lista os seus acionadores em todas as localizações e inclui detalhes como nomes, regiões, fornecedores de eventos, destinos e muito mais.
Para filtrar os acionadores:
- Clique em Filtro ou no campo Acionadores de filtro.
- Na lista Propriedades, selecione uma opção para filtrar os acionadores.
Pode selecionar uma única propriedade ou usar o operador lógico
OR
para adicionar mais propriedades.Para ordenar os acionadores, junto ao título de qualquer coluna suportada, clique em
Ordenar.
gcloud
Execute o seguinte comando para listar os seus acionadores:
gcloud eventarc triggers list --location=-
Este comando lista os seus acionadores em todas as localizações e inclui detalhes como nomes, tipos, destinos e estados.