Guia de início rápido: receber eventos usando os registros de auditoria do Cloud (Google Cloud CLI)
Veja neste guia de início rápido como configurar o Cloud Run for Anthos para receber eventos do Cloud Storage usando o Eventarc.
Neste guia de início rápido, você vai:
- Criar um bucket do Cloud Storage para ser a origem do evento.
- Criar um cluster do Google Kubernetes Engine (GKE) e ativar o Cloud Run for Anthos.
- Configurar uma conta de serviço para extrair eventos do Pub/Sub usando um componente encaminhador de eventos que encaminha eventos para o destino.
- Implantar um serviço do Cloud Run for Anthos que recebe eventos.
- Inicializar os destinos do Cloud Run for Anthos no Eventarc.
- Criar um gatilho do Eventarc no GKE que envia eventos do Cloud Storage para o serviço do Cloud Run for Anthos.
- Fazer o upload de um arquivo para o bucket do Cloud Storage para gerar um evento e visualizar o evento nos registros do Cloud Run for Anthos.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- Instale e inicialize a Google Cloud CLI.
Se precisar configurar uma região de computação padrão, insira
n
. - Atualize os componentes da gcloud:
gcloud components update
- Ative as APIs Google Cloud, Cloud Build, Resource Manager,
Google Kubernetes Engine, Container Registry e e as APIs do Eventarc:
gcloud services enable cloudapis.googleapis.com gcloud services enable cloudbuild.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com gcloud services enable container.googleapis.com gcloud services enable containerregistry.googleapis.com gcloud services enable eventarc.googleapis.com
- Defina as variáveis de configuração usadas neste guia de início rápido:
gcloud config set project PROJECT_ID gcloud config set run/cluster events-cluster gcloud config set run/cluster_location us-central1 gcloud config set run/platform gke gcloud config set eventarc/location us-central1
em que PROJECT_ID é o ID do projeto no Google Cloud. - Opcional: é possível verificar os parâmetros de configuração usando a CLI do Google Cloud. Basta digitar:
gcloud config list
A saída será semelhante a:[eventarc] location = us-central1 [run] cluster = events-cluster cluster_location = us-central1 platform = gke
- Ative os tipos de registro de auditoria do Cloud: Leitura de administradores, Leitura de dados e Gravação de dados no Google Cloud Storage:
- Leia a política de IAM do projeto e guarde-a em um arquivo:
gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
- Edite sua política em
/tmp/policy.yaml
, adicionar ou alterar somente a configuração dos registros de auditoria de acesso a dados.auditConfigs: - auditLogConfigs: - logType: ADMIN_READ - logType: DATA_WRITE - logType: DATA_READ service: storage.googleapis.com bindings: - members: - user:EMAIL_ADDRESS role: roles/owner etag: BwW_bHKTV5U= version: 1
Substitua EMAIL_ADDRESS pelo seu endereço de e-mail. - Grave a nova política de IAM:
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
Se o comando anterior relatar um conflito com outra alteração, repita essas etapas, começando com a leitura da política de IAM do projeto.
- Leia a política de IAM do projeto e guarde-a em um arquivo:
crie um bucket do Cloud Storage
No guia de início rápido, usamos o Cloud Storage como origem do evento. Para criar um bucket de armazenamento:
gsutil mb -l us-central1 gs://events-quickstart-$(gcloud config get-value project)/
Depois que a origem do evento é criada, implante o serviço de receptor de eventos no Cloud Run.
Criar um cluster do GKE com o Cloud Run for Anthos ativado
Crie um cluster do GKE para o Cloud Run for Anthos
com os complementos CloudRun
, HttpLoadBalancing
e HorizontalPodAutoscaling
.
Ative a identidade da carga de trabalho
para acessar os serviços do Google Cloud em aplicativos em execução no
GKE.
PROJECT_ID=$(gcloud config get-value project) gcloud beta container clusters create events-cluster \ --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \ --machine-type=n1-standard-4 \ --enable-autoscaling --min-nodes=2 --max-nodes=10 \ --no-issue-client-certificate --num-nodes=2 \ --enable-stackdriver-kubernetes \ --scopes=cloud-platform,logging-write,monitoring-write,pubsub \ --zone us-central1 \ --release-channel=rapid \ --workload-pool=$PROJECT_ID.svc.id.goog
Aguarde a conclusão da criação do cluster. Ignore os avisos durante o processo de criação. Depois que o cluster é criado, a saída fica mais ou menos assim:
Creating cluster events-cluster...done.
Created [https://container.googleapis.com/v1beta1/projects/my-project
/zones/us-central1/clusters/events-cluster].
em que my-project
é o ID do projeto no Google Cloud.
Isso cria um cluster do GKE chamado events-cluster
em
my-project
.
Configurar uma conta de serviço do Google
Configure uma conta de serviço fornecida pelo usuário e conceda papéis específicos para que o componente encaminhador de eventos possa extrair eventos do Pub/Sub e os encaminhar ao destino.
Crie uma conta de serviço chamada
TRIGGER_GSA
, que é usada para criar gatilhos:TRIGGER_GSA=eventarc-crfa-triggers gcloud iam service-accounts create $TRIGGER_GSA
Conceda os papéis
pubsub.subscriber
,monitoring.metricWriter
eeventarc.eventReceiver
à conta de serviço:gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/pubsub.subscriber" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/eventarc.eventReceiver"
Implantar um serviço do Cloud Run for Anthos
Usando uma imagem pré-criada, gcr.io/cloudrun/hello
, implante um
serviço do Cloud Run for Anthos que vai receber e registrar eventos:
gcloud run deploy hello \ --platform=gke \ --cluster=events-cluster \ --cluster-location=us-central1 \ --namespace=default \ --image=gcr.io/cloudrun/hello
Ativar destinos do GKE
Para cada gatilho direcionado a um serviço do Cloud Run for Anthos, o Eventarc cria um componente encaminhador de eventos que extrai eventos do Pub/Sub e os encaminha ao destino. Para criar o componente e gerenciar recursos no cluster do GKE, conceda permissões a uma conta de serviço do Eventarc:
Ative os destinos do GKE para o Eventarc:
gcloud eventarc gke-destinations init
No prompt para vincular os papéis necessários, digite
y
.Os papéis a seguir estão vinculados à conta de serviço:
compute.viewer
container.developer
iam.serviceAccountAdmin
Criar um gatilho dos Registros de auditoria do Cloud
Quando você faz o upload de um arquivo para o Cloud Storage, o
gatilho do Eventarc envia eventos do Cloud Storage para
o serviço hello
do Cloud Run for Anthos.
Crie um gatilho dos Registros de auditoria do Cloud:
gcloud eventarc triggers create my-gke-trigger \ --location=$TRIGGER_LOCATION \ --destination-gke-cluster="events-cluster" \ --destination-gke-location="us-central1" \ --destination-gke-namespace="default" \ --destination-gke-service="hello" \ --destination-gke-path="/" \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --service-account=$TRIGGER_GSA@$PROJECT_ID.iam.gserviceaccount.com
Isso cria um gatilho chamado
my-gke-trigger
.Confirme se o gatilho foi criado com sucesso:
gcloud eventarc triggers list
A saída será semelhante a:
NAME TYPE DESTINATION_RUN_SERVICE DESTINATION_RUN_PATH ACTIVE my-gke-trigger google.cloud.audit.log.v1.written Yes
Gerar e visualizar um evento
Faça o upload de um arquivo de texto para o Cloud Storage para gerar um evento e acionar o serviço do Cloud Run for Anthos. Em seguida, visualize a mensagem do evento nos registros do serviço do Cloud Run for Anthos.
Faça upload de um arquivo de texto para o Cloud Storage:
echo "Hello World" > random.txt gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
O upload gera um evento, e o serviço do Cloud Run for Anthos registra a mensagem desse evento.
Para ver a mensagem do evento, acesse os registros do serviço do Cloud Run for Anthos:
- Acesse a página do Cloud Run for Anthos.
- Clique no serviço
hello
. - Selecione a guia Registros.
Procure uma entrada de registro semelhante a esta:
Hello from Cloud Run! The container started successfully and is listening for HTTP requests on $PORT Received event of type google.cloud.audit.log.v1.written.
Limpar
Ainda que o Cloud Run não gere custos quando o serviço não está em uso, pode haver cobrança pelo armazenamento da imagem do contêiner no Container Registry, por recursos do Eventarc e mensagens do Pub/Sub e para o cluster do GKE.
Você pode excluir a imagem, excluir o bucket de armazenamento e excluir o cluster do GKE.
Para excluir o gatilho do Eventarc:
gcloud eventarc triggers delete my-gke-trigger
Se preferir, exclua o projeto do Google Cloud para evitar cobranças. A exclusão do projeto do Cloud interrompe o faturamento de todos os recursos usados nele.
gcloud projects delete PROJECT_ID_OR_NUMBER
Substitua PROJECT_ID_OR_NUMBER pelo código ou número do projeto.