Pode ativar a recolha e a publicação de eventos de origens Google para um bus avançado do Eventarc específico criando um recurso GoogleApiSource
.
Os eventos de origens Google são acionados diretamente por um evento não mediado, como a criação de uma função do Cloud Run ou uma alteração de estado num trabalho do Dataflow. Para mais informações, consulte o artigo Tipos de eventos Google suportados pelo Eventarc.
Tenha em conta o seguinte:
- Por predefinição, os eventos são recolhidos a partir do Google Cloud projeto onde o recurso
GoogleApiSource
existe. Também pode usar a CLI gcloud para recolher eventos de vários projetos que estão na mesma organização que o recursoGoogleApiSource
. Para mais informações, consulte a secção Publique eventos a partir de vários projetos neste documento. - Pode publicar eventos num barramento que esteja num Google Cloud projeto
diferente daquele em que o recurso
GoogleApiSource
existe. Pode configurar esta opção através da CLI gcloud ou enviando um pedido para a API Eventarc (mas não através da Google Cloud consola). - Existe um limite de um
GoogleApiSource
recurso por Google Cloud projeto por região.
Antes de começar
Antes de começar, certifique-se de que concluiu os seguintes passos:
Se estiver a usar a CLI gcloud para executar os comandos nesta página, instale e, em seguida, inicialize a CLI gcloud. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.Ative a API Eventarc e a API Eventarc Publishing:
Consola
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable eventarc.googleapis.com
eventarcpublishing.googleapis.com
Ative eventos de origens Google
Para publicar eventos de origens Google, tem de criar um recurso
GoogleApiSource
. Este recurso representa uma subscrição de eventos da API Google num projeto Google Cloud específico para um barramento Eventarc Advanced específico.
Pode ativar a publicação de eventos de origens Google das seguintes formas:
- Na consola Google Cloud
- Usando a Google Cloud CLI no seu terminal ou no Cloud Shell
Enviando um pedido para a API Eventarc
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Pode criar um autocarro ou, se estiver a atualizar um autocarro, clique em Editar.
Na página Editar autocarro, para adicionar uma origem de mensagens, clique em
Adicionar origem.- No painel Adicionar origem da mensagem, para o fornecedor de mensagens da API Google, aceite o valor predefinido de
google-api-source
ou introduza um nome de origem da mensagem diferente. - Clique em Criar.
- No painel Adicionar origem da mensagem, para o fornecedor de mensagens da API Google, aceite o valor predefinido de
Clique em Guardar.
gcloud
Abra um terminal.
Pode ativar eventos de origens Google através do comando:
gcloud eventarc google-api-sources create
gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
Substitua o seguinte:
GOOGLE_API_SOURCE_NAME
: o ID ou o identificador totalmente qualificado do seu recursoGoogleApiSource
que representa uma subscrição de eventos da API Google para um barramento específicoBUS_NAME
: o ID ou o identificador totalmente qualificado do autocarro para o qual quer subscrever eventos da API GoogleBUS_PROJECT_ID
: o Google Cloud ID do projeto para o autocarro
Opcional: também pode usar as seguintes flags:
--async
para regressar imediatamente ao comando, sem esperar que a operação em curso seja concluída.--crypto-key
para especificar o nome totalmente qualificado de uma chave de encriptação gerida pelo cliente; se não for especificado,são usadas as Google-owned and managed keys .--logging-config
para configurar o nível de registo, que tem de ser um dos seguintes:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. Para mais informações, consulteLogSeverity
.
API REST
Para ativar eventos de origens Google, use o método
projects.locations.googleApiSources.create
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
GOOGLE_API_SOURCE_NAME
: o nome a apresentar do recursoGoogleApiSource
que representa uma subscrição de eventos da API Google para um barramento específico, por exemplo,my_google_source
.LABEL_KEY
eLABEL_VALUE
: opcional. Um mapa de pares de chave e valor de etiquetas que ajudam a organizar os seus Google Cloud recursos. Para mais informações, consulte o artigo O que são etiquetas?ANNOTATION_KEY
eANNOTATION_VALUE
: opcional. Um mapa de pares de chave e valor de anotação de texto de forma livre. Pode usá-los para anexar informações arbitrárias associadas ao recurso. Para mais informações, consulte o artigo Anotações.DESTINATION
: o identificador totalmente qualificado do bus avançado do Eventarc para o qual os eventos de origem da Google devem ser publicados no formatoprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
. Para mais informações, consulte o artigo Crie um barramento para encaminhar mensagens.ENCRYPT_KEY
: opcional. Uma chave do Cloud KMS que o recursoGoogleApiSource
deve usar para a encriptação de dados no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Para mais informações, consulte o artigo Use chaves de encriptação geridas pelo cliente.PROJECT_ID
: o ID do projeto no qual criar o recursoGoogleApiSource
. Google CloudLOCATION
: a região suportada na qual criar o recursoGoogleApiSource
, por exemplo,us-central1
.LOG_SEVERITY
: opcional. A gravidade mínima do evento descrito numa entrada do registo. Um dos seguintes:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. A predefinição éNONE
. Para mais informações, consulteLogSeverity
.
Corpo JSON do pedido:
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "cryptoKeyName": "ENCRYPT_KEY", "loggingConfig": {"logSeverity":"LOG_SEVERITY"} }
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de
Operation
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata", "createTime": "2024-01-25T17:17:45.782370139Z", "target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Os eventos de origens Google no mesmo Google Cloud projeto que o recursoGoogleApiSource
são agora recolhidos e publicados no barramento.
Desative eventos de origens Google
Para desativar a publicação de eventos de origens Google num
Google Cloud projeto específico para um barramento avançado do Eventarc, tem de
eliminar o recurso
GoogleApiSource
.
Pode desativar a publicação de eventos de origens Google das seguintes formas:
- Na consola Google Cloud
- Usando a CLI gcloud no seu terminal ou no Cloud Shell
Enviando um pedido para a API Eventarc
Consola
Na Google Cloud consola, aceda à página Eventarc > Detalhes do barramento.
Clique em
Editar.Na página Editar autocarro, para eliminar o fornecedor de mensagens da API Google, clique em
Eliminar recurso para a origem de mensagens google-api-source (ou o nome que lhe atribuiu).Na mensagem Eliminar recurso, clique em Confirmar.
Clique em Guardar.
gcloud
Abra um terminal.
Pode desativar eventos de origens Google através do comando:
gcloud eventarc google-api-sources delete
gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \ --location=REGION
Substitua o seguinte:
GOOGLE_API_SOURCE_NAME
: o ID ou o identificador totalmente qualificado do recursoGoogleApiSource
REGION
: a localização do recursoGoogleApiSource
API REST
Para desativar eventos de origens Google, use o método
projects.locations.googleApiSources.delete
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do projeto no qual o recurso Google Cloud é criado.GoogleApiSource
LOCATION
: a região na qual o recursoGoogleApiSource
é criado, por exemplo,us-central1
.GOOGLE_API_SOURCE_NAME
: o nome do recursoGoogleApiSource
que quer eliminar.
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de
Operation
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata", "createTime": "2024-01-25T17:17:45.782370139Z", "target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Os eventos de origens Google no mesmo Google Cloud projeto que o recurso
GoogleApiSource
eliminado já não são recolhidos nem publicados.
Publique eventos a partir de vários projetos
Para recolher e publicar eventos de origem da Google a partir de vários Google Cloud projetos,
tem de criar um recurso
GoogleApiSource
e os projetos têm de estar na mesma organização que o recurso
GoogleApiSource
. Para mais informações sobre organizações, consulte o artigo
Hierarquia de recursos.
Tenha em conta o seguinte:
- A publicação de eventos a partir de vários projetos tem de ser configurada através da CLI gcloud e não é apresentada na Google Cloud consola.
- Se o projeto que contém o recurso
GoogleApiSource
for movido para uma organização diferente, a publicação de eventos de vários projetos deixa de funcionar como esperado. Tem de atualizar ou recriar o recursoGoogleApiSource
.
1. Conceda ao agente do serviço Eventarc a função IAM adequada
Para recolher eventos ao nível da organização, use o comando
gcloud organizations add-iam-policy-binding
para conceder ao agente do serviço Eventarc a função de
gestão de identidade e acesso (IAM) adequada:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member="SERVICE_AGENT_EMAIL" \ --role="roles/eventarc.multiProjectEventCollector"
Substitua o seguinte:
ORGANIZATION_ID
: o ID do recurso da sua organização.SERVICE_AGENT_EMAIL
: o endereço de email do agente de serviço principal do Eventarc no projeto onde está a criar o recursoGoogleApiSource
. O endereço de email tem o seguinte formato:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
Substitua
PROJECT_NUMBER
pelo seu Google Cloud número do projeto. Pode encontrar o número do projeto na página Boas-vindas da Google Cloud consola ou executando o seguinte comando:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
2. Publique a partir de todos os projetos ou de uma lista de projetos
Para publicar eventos de origens Google em vários projetos, use o comando
gcloud eventarc google-api-sources create
de uma das seguintes formas:
Publicar a partir de todos Google Cloud os projetos na mesma organização que o recurso
GoogleApiSource
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --organization-subscription
Publicar a partir de uma lista de Google Cloud projetos na mesma organização que o recurso
GoogleApiSource
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --project-subscriptions=LIST_OF_PROJECTS
Substitua o seguinte:
GOOGLE_API_SOURCE_NAME
: o ID ou o identificador totalmente qualificado do recursoGoogleApiSource
REGION
: a localização do recursoGoogleApiSource
BUS_NAME
: o ID ou o identificador totalmente qualificado do autocarro para o qual quer subscrever eventos da API GoogleBUS_PROJECT_ID
: o Google Cloud ID do projeto para o autocarroLIST_OF_PROJECTS
: uma lista separada por vírgulas de Google Cloud IDs ou números de projetos. Pode combinar IDs e números na mesma lista. Para publicar eventos a partir do projeto que contém o recursoGoogleApiSource
, tem de incluir explicitamente o ID ou o número do projeto na lista.Google Cloud
O que se segue?
- Início rápido: publique eventos a partir de uma origem Google
- Publique eventos diretamente
- Formate os eventos recebidos
- Transforme eventos recebidos