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 serviço do Cloud Run de destino.
O Eventarc envia eventos para o recetor de eventos num formato CloudEvents através de um pedido HTTP.
Estas instruções mostram como configurar o encaminhamento de eventos para o seu serviço do Cloud Run acionado por um eventoFirebase Alerts direto. Para mais detalhes, consulte a lista de eventos diretos suportados.
Prepare-se para criar um acionador
Antes de criar um acionador, conclua estes pré-requisitos:
Consola
Na Google Cloud consola, na página do seletor de projetos, selecione ou crie um Google Cloud projeto.
Ative as APIs Cloud Logging, Eventarc e Eventarc Publishing.
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 o seu serviço de destino.
Na Google Cloud consola, aceda à página Criar conta 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 identidades e acessos (IAM) necessárias para conceder à sua conta de serviço para invocações autenticadas ou não autenticadas. Para mais informações, consulte o artigo Funções e autorizações para alvos do Cloud Run.
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 Cloud Logging, Eventarc e Eventarc Publishing.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.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 o seu serviço de destino.
Crie a conta de serviço:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Substitua
SERVICE_ACCOUNT_NAMEpelo 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 invocações autenticadas ou não autenticadas. Para mais informações, consulte Funções e autorizações para destinos do Cloud Run.
Crie um acionador
Pode criar um acionador do Eventarc através da CLI Google Cloud ou da Google Cloud consola.
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 Cloud Run.
- Selecione um serviço.
Este é o nome do serviço que recebe os eventos para o acionador. O serviço tem de estar no mesmo projeto que o acionador e recebe eventos como pedidos HTTP POST enviados para o respetivo caminho do URL raiz (
/) sempre que o evento é gerado. - Opcionalmente, pode especificar o caminho do URL do serviço para enviar
o pedido recebido.
Este é o caminho relativo no serviço de destino para o qual os eventos do acionador devem ser enviados. Por exemplo:
/,/route,route,route/subroute. - Opcionalmente, para adicionar uma etiqueta, pode clicar em 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 O que são etiquetas?
- 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
Pode criar um acionador executando um gcloud eventarc triggers createcomando juntamente com flags obrigatórias e opcionais.
gcloud eventarc triggers create TRIGGER \ --location=global \ --destination-run-service=DESTINATION_RUN_SERVICE \ --destination-run-region=DESTINATION_RUN_REGION \ --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \ --event-filters="alerttype=ALERT_TYPE" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Substitua o seguinte:
TRIGGER: o ID do acionador ou um identificador totalmente qualificado.-
DESTINATION_RUN_SERVICE: o nome do serviço do Cloud Run que recebe os eventos para o acionador. O serviço pode estar em qualquer uma das localizações suportadas pelo Cloud Run e não tem de estar na mesma localização que o acionador. No entanto, o serviço tem de estar no mesmo projeto que o acionador e recebe eventos como pedidos HTTP POST enviados para o respetivo caminho do URL raiz (/) sempre que o evento é gerado. -
DESTINATION_RUN_REGION: (opcional) a região na qual o serviço de execução na nuvem de destino pode ser encontrado. Se não for especificado, assume-se que o serviço está na mesma região que o acionador.
ALERT_TYPE: o tipo de alerta do Firebase e pode ter 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_TYPEtem 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/jsonouapplication/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 sua conta de serviço gerida pelo utilizador.PROJECT_ID: o ID do seu Google Cloud projeto.
Notas:
- A flag
--locationtem de serglobal. Para mais informações, consulte 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"
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.
- 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.
- A flag
--service-accounté usada para especificar o email da conta de serviço de gestão de identidade e de acesso (IAM) associado ao acionador. - Opcionalmente, especifique um caminho relativo no serviço do Cloud Run de destino para o qual os eventos do acionador devem ser enviados através da flag
--destination-run-path.
Exemplo:
gcloud eventarc triggers create helloworld-trigger \
--location=global \
--destination-run-service=helloworld-events \
--destination-run-region=us-central1 \
--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 helloworld-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 destino do Cloud Run através do Terraform. Para ver detalhes, consulte o artigo Crie um acionador com 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
ORpara 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.