Neste tutorial, mostramos como implantar um serviço autenticado do Cloud Run que recebe eventos do Cloud Storage usando os registros de auditoria do Cloud. Use este tutorial para implantar cargas de trabalho de produção. O gatilho Eventarc filtra eventos com base nas entradas de registros de auditoria do Cloud. Para mais informações, consulte Determinar filtros de evento para registros de auditoria do Cloud.
É possível concluir este tutorial usando o console Google Cloud ou a Google Cloud CLI.
Criar um repositório padrão do Artifact Registry
Crie um repositório padrão do Artifact Registry para armazenar a imagem do contêiner do Docker.Console
- No console do Google Cloud , acesse a página Repositórios.
- Clique em Criar repositório.
- Configurar seu repositório:
- Insira um nome exclusivo.
- Em Formato, escolha Docker.
- Em Modo, escolha Padrão.
- Em Tipo de local, escolha Região.
- Na lista Região, selecione us-central1 (Iowa).
- Aceite todos os padrões e clique em Criar.
gcloud
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$REGION
Substitua REPOSITORY
por um nome exclusivo para o
repositório do Artifact Registry.
crie um bucket do Cloud Storage
Este tutorial usa o Cloud Storage como origem do evento. Para criar um bucket de armazenamento:
Console
- No console Google Cloud , acesse a página Buckets.
- Clique em Criar bucket.
- Insira as informações do bucket e clique em Continuar para concluir cada etapa:
- Insira um nome exclusivo. Por exemplo,
eventarcbucket
. - Selecione Região como o Tipo de local.
- Selecione us-central1 (Iowa) como o Local.
- Selecione Padrão na classe de armazenamento padrão.
- Selecione Uniforme para Controle de acesso.
- Insira um nome exclusivo. Por exemplo,
- Clique em Criar.
gcloud
gcloud storage buckets create gs://events-tutorial-PROJECT_ID/ --location=$REGION
Depois que a origem do evento é criada, implante o serviço de receptor de eventos no Cloud Run.
Implantar o serviço de receptor de eventos no Cloud Run
Implante um serviço do Cloud Run que recebe e registra eventos. Para implantar o serviço de receptor de eventos de amostra:
Console
- Para clonar o repositório de exemplo na sua conta do GitHub, siga estas instruções:
- No GitHub, acesse GoogleCloudPlatform/golang-samples.
- Clique em Bifurcar.
- Se solicitado, selecione o local em que você quer clonar o repositório.
- No GitHub, acesse GoogleCloudPlatform/java-docs-samples.
- Clique em Bifurcar.
- Se solicitado, selecione o local em que você quer clonar o repositório.
- No GitHub, acesse GoogleCloudPlatform/dotnet-docs-samples.
- Clique em Bifurcar.
- Se solicitado, selecione o local em que você quer clonar o repositório.
- No GitHub, acesse GoogleCloudPlatform/nodejs-docs-samples.
- Clique em Bifurcar.
- Se solicitado, selecione o local em que você quer clonar o repositório.
- No GitHub, acesse GoogleCloudPlatform/python-docs-samples.
- Clique em Bifurcar.
- Se solicitado, selecione o local em que você quer clonar o repositório.
- No console do Google Cloud , acesse a página Serviços.
- Clique em Criar serviço para exibir o formulário Criar serviço.
- Selecione Implantar continuamente a partir de um repositório.
As mudanças no repositório do GitHub são automaticamente integradas às imagens de contêiner no Artifact Registry e implantadas no Cloud Run.
- Clique em Configurar com o Cloud Build para abrir o formulário Configurar com o Cloud Build.
- Se solicitado, ative a API Cloud Build e a API Artifact Analysis.
- Selecione GitHub como Repositório do repositório.
- Se solicitado, clique em Instalar o Google Cloud Build.
- Selecione o repositório do GitHub que você bifurcou como Repositório.
- Clique em Próxima.
- No campo Ramificação, digite
^main$
. - Selecione Dockerfile como o Tipo de versão e forneça o local de origem do Dockerfile:
eventarc/audit-storage/Dockerfile
ou
eventarc/audit_storage/Dockerfile
(Go)
- Clique em Salvar.
- No formulário Criar serviço, digite um nome de serviço.
Por exemplo,
helloworld-events
. - Selecione us-central1(Iowa) como a Região em que o serviço estará localizado.
- Selecione qualquer uma das opções de Entrada com base no tráfego de entrada que você quer permitir no serviço do Cloud Run.
- Selecione Exigir autenticação.
- Clique em Criar.
Go

Java

.NET

Node.js

Python

gcloud
- Clone o repositório do GitHub:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
.NET
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
- Crie o contêiner e faça upload dele para o Cloud Build:
gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
- Implante a imagem do contêiner no Cloud Run:
gcloud run deploy $SERVICE_NAME \ --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
No prompt para permitir invocações não autenticadas, digite
n
.Quando a implantação for bem-sucedida, a linha de comando exibirá o URL de serviço.
Agora que você implantou o serviço de receptor de eventos chamado
helloworld-events
no Cloud Run, configure o gatilho.
Criar um gatilho do Eventarc
O gatilho do Eventarc envia eventos do
bucket do Cloud Storage para
o serviço helloworld-events
do Cloud Run.
Console
- No console Google Cloud , acesse a página Gatilhos.
- Clique em Criar gatilho.
- Digite um Nome de acionador.
Esse é o ID do gatilho e precisa começar com uma letra. Ele pode conter até 63 letras minúsculas, números ou hifens.
- Selecione um Tipo de gatilho:
- Próprio: filtra eventos enviados de provedores do Google Cloud(diretamente ou por entradas de Registros de auditoria do Cloud) ou provedores que usam mensagens do Pub/Sub.
- Terceiros: filtra eventos enviados de provedores de terceiros.
- Na lista Provedor de eventos, selecione Cloud Storage como origem dos eventos.
- Na lista de tipo de Evento, selecione storage.objects.create.
- Na lista Região, selecione us-central1 como a região da qual você quer receber eventos.
- Selecione a conta de serviço que você criou. Exemplo,
SERVICE_ACCOUNT_ID@PROJECT_ID
.iam.gserviceaccount.com. - Na lista Destino do evento, selecione Cloud Run.
- Na lista Selecione um serviço do Cloud Run, selecione helloworld-events.
- Clique em Criar. Também é possível criar um gatilho do Eventarc usando a página do console do Cloud Run.
gcloud
- Crie um gatilho que filtre eventos do Cloud Storage e que use a conta de serviço que você criou:
Substituagcloud eventarc triggers create events-tutorial-trigger \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --service-account=sample-service-account@PROJECT_ID.iam.gserviceaccount.com
PROJECT_ID
pelo ID do projeto Google Cloud.Em que:
type
: especifica que os registros de auditoria são criados quando os critérios de filtro do acionador são atendidos.serviceName
: o serviço que grava o registro de auditoria, que é o Cloud Storage.methodName
: a operação que está sendo auditada, que éstorage.objects.create
.
events-tutorial-trigger
. - Para confirmar se
events-tutorial-trigger
foi criado, execute:gcloud eventarc triggers list --location=$REGION
O gatilho,
events-tutorial-trigger
, está listado com um
destino de helloworld-events
.
Gerar e visualizar um evento
- Para gerar um evento:
Console
- Crie um arquivo de texto com o nome
random.txt
e o texto "Hello World". - No console Google Cloud , acesse a página Buckets.
- Selecione o bucket de armazenamento que você criou.
- Na guia Objetos, clique em Fazer upload de arquivos e faça o upload do arquivo
random.txt
.
gcloud
Faça upload de um arquivo de texto para o Cloud Storage:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://events-tutorial-PROJECT_ID/random.txt
- Crie um arquivo de texto com o nome
- Para visualizar a entrada de registro:
- No console do Google Cloud , acesse a página Serviços.
- Na lista de serviços, clique no nome do serviço que você criou para acessar a página Detalhes do serviço.
- Clique na guia Registros para receber os registros de solicitação e contêiner para todas as revisões desse serviço. É possível filtrar por nível de gravidade de registro.
- Procure uma entrada de registro semelhante a esta:
em queDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
é o nome do bucket do Cloud Storage. -
gcloud logging read "resource.labels.service_name=helloworld-events AND textPayload:random.txt" --format=json
- Procure uma entrada de registro semelhante a esta:
em queDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
é o nome do bucket do Cloud Storage.
Console
gcloud
Você implantou com sucesso um serviço de receptor de eventos no Cloud Run, criou um gatilho do Eventarc, gerou um evento a partir do Cloud Storage e o visualizou nos registros do Cloud Run.