É possível ativar a coleta e publicação de eventos de fontes do Google para um
barramento específico do Eventarc Advanced criando um recurso GoogleApiSource
.
Os eventos de fontes do Google são acionados diretamente por um evento não mediado, como a criação de uma função do Cloud Run ou uma mudança de status em um job do Dataflow. Para mais informações, consulte Tipos de evento do Google compatíveis com o Eventarc.
Observe o seguinte:
- Por padrão, os eventos são coletados do projeto Google Cloud em que o recurso
GoogleApiSource
existe. Também é possível usar a CLI gcloud para coletar eventos de vários projetos na mesma organização que o recursoGoogleApiSource
. Para mais informações, consulte Publicar eventos de vários projetos neste documento. - É possível publicar eventos em um barramento que está em um Google Cloud projeto
diferente daquele em que o recurso
GoogleApiSource
existe. É possível configurar isso usando a CLI gcloud ou enviando uma solicitação para a API Eventarc (mas não pelo console Google Cloud ). - Há um limite de um recurso
GoogleApiSource
por projeto por região. Google Cloud
Antes de começar
Antes de começar, verifique se você concluiu as etapas a seguir:
Se você estiver usando a Google Cloud CLI para executar os comandos nesta página, instale e inicialize a CLI gcloud. Se você já instalou a CLI gcloud, instale a versão mais recente executando
gcloud components update
.Ative a API Eventarc e a API Eventarc Publishing:
Console
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
Ativar eventos de fontes do Google
Para publicar eventos de fontes do Google, crie um recurso
GoogleApiSource
. Esse recurso representa uma assinatura de eventos da API do Google em um
projeto Google Cloud específico para um barramento do Eventarc Advanced.
É possível ativar a publicação de eventos de fontes do Google das seguintes maneiras:
- No console do Google Cloud
- Usando a Google Cloud CLI no terminal ou no Cloud Shell
Enviando uma solicitação para a API Eventarc
Console
No Google Cloud console, acesse a página Eventarc > Barramento.
Você pode criar um ônibus ou, se estiver atualizando um, clique em Editar.
Na página Editar barramento, para adicionar uma origem de mensagem, clique em
Adicionar origem.- No painel Adicionar origem da mensagem, para o provedor de mensagens da API do Google, aceite o padrão
google-api-source
ou insira um nome diferente para a origem da mensagem. - Clique em Criar.
- No painel Adicionar origem da mensagem, para o provedor de mensagens da API do Google, aceite o padrão
Clique em Save.
gcloud
Abra um terminal.
É possível ativar eventos de fontes do Google usando o 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:
GOOGLE_API_SOURCE_NAME
: o ID ou identificador totalmente qualificado do recursoGoogleApiSource
, que representa uma assinatura de eventos da API do Google para um barramento específico.BUS_NAME
: o ID ou identificador totalmente qualificado do ônibus para o qual você quer se inscrever em eventos da API do Google.BUS_PROJECT_ID
: o Google Cloud ID do projeto do barramento
Opcional: você também pode usar as seguintes flags:
--async
para retornar do comando imediatamente, sem aguardar a conclusão da operação em andamento.--crypto-key
para especificar o nome totalmente qualificado de uma chave de criptografia gerenciada pelo cliente. Se não for especificado, Google-owned and managed keys serão usados.--logging-config
para configurar o nível de geração de registros, que precisa ser um destes:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. Para mais informações, consulteLogSeverity
.
API REST
Para ativar eventos de fontes do Google, use o método
projects.locations.googleApiSources.create
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
GOOGLE_API_SOURCE_NAME
: o nome de exibição do recursoGoogleApiSource
, que representa uma assinatura de eventos da API do 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 rótulo que ajudam a organizar seus recursos do Google Cloud . Para mais informações, consulte O que são rótulos?ANNOTATION_KEY
eANNOTATION_VALUE
: opcional. Um mapa de pares de chave-valor de anotação de texto em formato livre. É possível usá-las para anexar informações arbitrárias associadas ao recurso. Para mais informações, consulte Anotações.DESTINATION
: o identificador totalmente qualificado do barramento do Eventarc Advanced em que os eventos de origem do Google devem ser publicados no formatoprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
. Para mais informações, consulte Criar um barramento para rotear mensagens.ENCRYPT_KEY
: opcional. Uma chave do Cloud KMS que o recursoGoogleApiSource
precisa usar para criptografia de dados no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.PROJECT_ID
: o ID do projeto Google Cloud em que o recursoGoogleApiSource
será criado.LOCATION
: a região compatível em que o recursoGoogleApiSource
será criado, por exemplo,us-central1
.LOG_SEVERITY
: opcional. A gravidade mínima do evento descrito em uma entrada de registro. Uma destas opções:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. O padrão éNONE
. Para mais informações, consulteLogSeverity
.
Corpo JSON da solicitação:
{ "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 a solicitação, expanda uma destas opções:
Se houver êxito, o corpo da resposta conterá uma instância 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 fontes do Google no mesmo projeto Google Cloud que o recurso GoogleApiSource
agora são coletados e publicados no barramento.
Desativar eventos de fontes do Google
Para desativar a publicação de eventos de fontes do Google em um projeto
Google Cloud específico para um barramento do Eventarc Advanced, exclua o recurso
GoogleApiSource
.
É possível desativar a publicação de eventos de fontes do Google das seguintes maneiras:
- No console do Google Cloud
- Usando a CLI gcloud no terminal ou no Cloud Shell
Enviando uma solicitação para a API Eventarc
Console
No Google Cloud console, acesse a página Eventarc > Detalhes do barramento.
Clique em
Editar.Na página Editar barramento, para excluir o provedor de mensagens da API do Google, clique em
Excluir recurso na origem da mensagem google-api-source (ou o nome que você deu a ela).No prompt Excluir recurso, clique em Confirmar.
Clique em Salvar.
gcloud
Abra um terminal.
É possível desativar eventos de fontes do Google usando o comando
gcloud eventarc google-api-sources delete
:gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \ --location=REGION
Substitua:
GOOGLE_API_SOURCE_NAME
: o ID ou identificador totalmente qualificado do recursoGoogleApiSource
REGION
: o local do recursoGoogleApiSource
API REST
Para desativar eventos de fontes do Google, use o método
projects.locations.googleApiSources.delete
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do Google Cloud projeto em que o recursoGoogleApiSource
é criado.LOCATION
: a região em que o recursoGoogleApiSource
é criado, por exemplo,us-central1
.GOOGLE_API_SOURCE_NAME
: o nome do recursoGoogleApiSource
que você quer excluir.
Para enviar a solicitação, expanda uma destas opções:
Se houver êxito, o corpo da resposta conterá uma instância 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 fontes do Google no mesmo projeto Google Cloud que o recursoGoogleApiSource
excluído não são mais coletados e publicados.
Publicar eventos de vários projetos
Para coletar e publicar eventos de origem do Google de vários projetos Google Cloud , crie um recurso GoogleApiSource
. Os projetos precisam estar na mesma organização que o recurso GoogleApiSource
. Para mais informações sobre organizações, consulte
Hierarquia de recursos.
Observe o seguinte:
- A publicação de eventos de vários projetos precisa ser configurada usando a CLI gcloud e não aparece no console Google Cloud .
- 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 não vai mais funcionar como esperado. É necessário atualizar ou recriar o recursoGoogleApiSource
.
1. Conceda ao agente de serviço do Eventarc o papel apropriado do IAM
Para coletar eventos no nível da organização, use o comando
gcloud organizations add-iam-policy-binding
para conceder ao agente de serviço do Eventarc o papel apropriado do
Identity and Access Management (IAM):
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member="SERVICE_AGENT_EMAIL" \ --role="roles/eventarc.multiProjectEventCollector"
Substitua:
ORGANIZATION_ID
: o ID do recurso da organização.SERVICE_AGENT_EMAIL
: o endereço de e-mail do agente de serviço principal do Eventarc no projeto em que você está criando o recursoGoogleApiSource
. O endereço de e-mail está no seguinte formato:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
Substitua
PROJECT_NUMBER
peloGoogle Cloud número do projeto. Encontre o número do projeto na página Boas-vindas do console do Google Cloud ou executando o seguinte comando:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
2. Publicar de todos os projetos ou de uma lista de projetos
Para publicar eventos de fontes do Google em vários projetos, use o comando
gcloud eventarc google-api-sources create
de uma das seguintes maneiras:
Publicar 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 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:
GOOGLE_API_SOURCE_NAME
: o ID ou identificador totalmente qualificado do recursoGoogleApiSource
REGION
: o local do recursoGoogleApiSource
BUS_NAME
: o ID ou identificador totalmente qualificado do ônibus para o qual você quer se inscrever em eventos da API do Google.BUS_PROJECT_ID
: o Google Cloud ID do projeto do barramentoLIST_OF_PROJECTS
: uma lista delimitada por vírgulas de Google Cloud IDs ou números de projetos. É possível combinar IDs e números na mesma lista. Para publicar eventos do projetoGoogle Cloud que contém o recursoGoogleApiSource
, é obrigatório incluir explicitamente o ID ou o número do projeto na lista.
A seguir
- Guia de início rápido: publicar eventos de uma fonte do Google
- Publicar eventos diretamente
- Formatar eventos recebidos
- Transformar eventos recebidos