Guía de inicio rápido: Eventos para Cloud Run for Anthos

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:

  1. Crear un clúster de GKE y habilitar Cloud Run for Anthos en Google Cloud
  2. Inicializar eventos para Cloud Run for Anthos
  3. Crear un agente de eventos para enrutar los eventos desde el origen hasta el receptor
  4. Implementar un servicio de Cloud Run for Anthos que reciba eventos
  5. Configurar Cloud Storage para generar eventos
  6. Generar y visualizar un evento

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir a la página del selector de proyectos

  3. 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.

  4. Instala e inicializa el SDK de Cloud.
  5. Asegúrate de usar la versión más reciente de la herramienta de línea de comandos de gcloud.
  6. Configura la herramienta de línea de comandos de gcloud para usar el proyecto de GCP:

    gcloud config set project PROJECT-ID
    

  7. Instala los componentes beta de la herramienta de línea de comandos de gcloud:

    gcloud components install beta
    

  8. 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
    
  9. 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
    

  10. 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

  1. Crea un clúster de Google Kubernetes Engine para Cloud Run for Anthos con los complementos CloudRun, HttpLoadBalancing y HorizontalPodAutoscaling 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
    
  2. 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 llamado events-cluster en el proyecto my-project.

Inicializa eventos para Cloud Run for Anthos

A fin de inicializar eventos para Cloud Run for Anthos, haz lo siguiente:

  1. Inicializa los eventos de Cloud Run for Anthos mediante la herramienta de línea de comandos de gcloud:

    gcloud beta events init --platform gke
    
    1. Cuando se te solicite, selecciona events-cluster como el clúster de GKE.

    2. 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 y knative-eventing.

  2. 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:

  1. Crea un espacio de nombres events:

    kubectl create namespace events
    
  2. Inicializa el espacio de nombres con el secreto predeterminado:

    gcloud beta events namespaces init events \
      --copy-default-secret
    
  3. Crea el agente de eventos:

    gcloud beta events brokers create default \
      --namespace events
    
  4. 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:

  1. 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
    
  2. Compila el contenedor y súbelo a Cloud Build:

    gcloud builds submit \
     --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
    
  3. 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:

  1. 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.

  2. 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"
    
  3. 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.

  1. 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.

  2. Opcional: Para verificar el estado del activador, ejecuta lo siguiente:

    gcloud beta events triggers list \
      --namespace=events
    
  3. 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

  1. 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 de gsutil.

    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.

  2. Para ver el mensaje en Cloud Logging, ve a la página Visor de registros:

    Ir 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:

  1. En Cloud Console, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Próximos pasos