En esta página, se muestra cómo configurar eventos para Cloud Run for Anthos y recibir eventos de Cloud Storage.
En esta guía de inicio rápido, podrás hacer lo siguiente:
- Crear un clúster de GKE y habilitar Cloud Run for Anthos en Google Cloud
- Inicializar eventos para Cloud Run for Anthos
- Crear un agente de eventos para enrutar los eventos desde el origen hasta el receptor
- Implementar un servicio de Cloud Run for Anthos que reciba eventos
- Configurar Cloud Storage para generar eventos
- Generar y visualizar un evento
Antes de comenzar
- Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.
- Instala e inicializa el SDK de Cloud.
- Asegúrate de usar la versión más reciente de la herramienta de línea de comandos de
gcloud
. - Configura la herramienta de línea de comandos de
gcloud
para usar el proyecto de GCP:gcloud config set project PROJECT-ID
- Instala los componentes beta de la herramienta de línea de comandos de
gcloud
:gcloud components install beta
- Habilita los servicios que se usan en esta guía de inicio rápido:
gcloud services enable cloudapis.googleapis.com gcloud services enable container.googleapis.com gcloud services enable containerregistry.googleapis.com gcloud services enable cloudbuild.googleapis.com
- Establece las variables de configuración de la herramienta de línea de comandos de
gcloud
:gcloud config set run/cluster events-cluster gcloud config set run/cluster_location us-central1 gcloud config set run/platform gke
- Opcional: Para comprobar los ajustes de configuración con la herramienta de línea de comandos de
gcloud
, escribe lo siguiente:gcloud config list
El resultado es similar al siguiente:
[run] cluster = events-cluster cluster_location = us-central1 platform = gke
Crea un clúster de GKE con Cloud Run for Anthos habilitado
Crea un clúster de Google Kubernetes Engine para Cloud Run for Anthos con los complementos
CloudRun
,HttpLoadBalancing
yHorizontalPodAutoscaling
habilitados:gcloud beta container clusters create events-cluster \ --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \ --machine-type=n1-standard-4 \ --enable-autoscaling --min-nodes=3 --max-nodes=10 \ --no-issue-client-certificate --num-nodes=3 --image-type=cos \ --enable-stackdriver-kubernetes \ --scopes=cloud-platform,logging-write,monitoring-write,pubsub \ --zone us-central1 \ --release-channel=rapid
Espera algunos minutos hasta que se complete la creación del clúster. Durante el proceso de creación, es posible que veas advertencias que puedes ignorar de forma segura. Cuando se completa la creación del clúster, el resultado es similar al siguiente:
Creating cluster events-cluster...done. Created [https://container.googleapis.com/v1beta1/ \ projects/my-project/zones/us-central1/clusters/events-cluster].
En el comando anterior,
my-project
es el ID del proyecto. Acabas de crear un clúster nuevo de Google Kubernetes Engine llamadoevents-cluster
en el proyectomy-project
.
Inicializa eventos para Cloud Run for Anthos
A fin de inicializar eventos para Cloud Run for Anthos, haz lo siguiente:
Inicializa los eventos de Cloud Run for Anthos mediante la herramienta de línea de comandos de
gcloud
:gcloud beta events init --platform gke
Cuando se te solicite, selecciona
events-cluster
como el clúster de GKE.Ingresa
Y
en todos los mensajes que solicitan crear cuentas de servicio, vincularlas a funciones específicas, generar claves nuevas y habilitar los servicios necesarios.
Esto crea Pods en dos espacios de nombres de Kubernetes llamados
cloud-run-events
yknative-eventing
.Opcional: Verifica la creación correcta de Pods:
kubectl get pods -n cloud-run-events
El resultado es similar al siguiente:
NAME READY STATUS RESTARTS AGE controller-9cc679b67-2952n 1/1 Running 0 22s webhook-8576c4cfcb-dhz82 1/1 Running 0 16m
Para verificar el espacio de nombres
knative-eventing
de Pods, escribe lo siguiente:kubectl get pods -n knative-eventing
El resultado es similar al siguiente:
NAME READY STATUS RESTARTS AGE eventing-controller-77f46f6cf8-kj9ck 1/1 Running 0 17m eventing-webhook-5bc787965f-hcmwg 1/1 Running 0 17m
Crea un agente de eventos
En los eventos para Cloud Run for Anthos, los agentes enrutan los eventos desde la fuente a un servicio de destino. En esta guía de inicio rápido, crearás un agente que enrute los eventos de Cloud Storage a un servicio de Cloud Run for Anthos.
Para crear un agente, haz lo siguiente:
Crea un espacio de nombres
events
:kubectl create namespace events
Inicializa el espacio de nombres con el secreto predeterminado:
gcloud beta events namespaces init events \ --copy-default-secret
Crea el agente de eventos:
gcloud beta events brokers create default \ --namespace events
Opcional: Después de unos minutos, puedes ejecutar el siguiente comando para verificar el estado del agente:
kubectl get brokers \ -n events
Implementa un servicio de Cloud Run for Anthos para recibir eventos
Implementar un servicio de Cloud Run for Anthos que reciba eventos del agente y los registre.
Para implementar el servicio Cloud Run for Anthos, haz lo siguiente:
Clona el repositorio:
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Compila el contenedor y súbelo a Cloud Build:
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
Implementa la imagen de contenedor en Cloud Run for Anthos:
gcloud run deploy events-quickstart-receiver \ --namespace=events \ --image gcr.io/$(gcloud config get-value project)/events-quickstart-container
Si ves la URL del servicio, se implementó de forma correcta.
Configura Cloud Storage
Cloud Storage genera eventos cuando hay cambios en el bucket de almacenamiento y los envía al agente de eventos. Para configurar Cloud Storage, sigue estos pasos:
Crea un bucket de Cloud Storage mediante la herramienta de línea de comandos de
gsutil
:gsutil mb \ -p $(gcloud config get-value project) \ -l us-central1 \ gs://"events-quickstart-$(gcloud config get-value project)"
En este ejemplo, el bucket de Cloud Storage se crea en la región us-central1.
Recupera la cuenta de servicio de Cloud Storage:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/$(gcloud config get-value project)/serviceAccount"
Otorga a la cuenta de servicio de Cloud Storage los derechos de publicación para Pub/Sub:
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \ --member=serviceAccount:CLOUD-STORAGE-SERVICE-ACCOUNT \ --role roles/pubsub.publisher
Crea un activador de Cloud Storage
Cuando creas un activador, debes especificar el servicio de Cloud Run for Anthos que recibe eventos de Cloud Storage.
Crea el activador de Cloud Storage:
gcloud beta events triggers create trigger-storage \ --namespace events \ --target-service events-quickstart-receiver \ --type=google.cloud.storage.object.v1.finalized \ --parameters bucket=events-quickstart-$(gcloud config get-value project)
Esto crea un activador para el bucket
events-quickstart-bucket
de Cloud Storage.Opcional: Para verificar el estado del activador, ejecuta lo siguiente:
gcloud beta events triggers list \ --namespace=events
Ten en cuenta que, si bien la creación del activador está completa y lista, puede llevar hasta 10 minutos en propagarse y filtrar los eventos de Cloud Storage.
Genera y visualiza un evento
Para generar un evento, crea un archivo de texto con el nombre de archivo
random.txt
que contenga el texto “Hello World” y súbelo a Cloud Storage mediante la herramienta de línea de comandos degsutil
.echo "Hello World" > random.txt gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
La carga genera un evento, y el servicio de Cloud Run for Anthos registra el mensaje del evento.
Para ver el mensaje en Cloud Logging, ve a la página Visor de registros:
Felicitaciones. Implementaste eventos para Cloud Run for Anthos, activaste un evento y registraste su contenido de forma correcta.
Realiza una limpieza
Para detener la facturación de todos los recursos usados en el proyecto de Cloud de prueba, borra el proyecto:
- En Cloud Console, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.