Guía de inicio rápido: Recibe eventos de Cloud Storage

En esta página, se muestra cómo recibir eventos de Cloud Storage en un servicio de Cloud Run (completamente administrado) mediante Eventarc.

En esta guía de inicio rápido, podrás hacer lo siguiente:

  1. Crear un bucket de Cloud Storage para que sea la fuente del evento

  2. Implementar un servicio de receptor de eventos en Cloud Run (completamente administrado)

  3. Crear un activador de eventos

  4. Generar un evento mediante la carga de un archivo al bucket de Cloud Storage y visualizarlo en los registros de Cloud Run (completamente administrado)

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. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita las API de Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Habilita las API

  5. Actualiza los componentes de gcloud:
    gcloud components update
  6. Instala los componentes beta de la herramienta de línea de comandos de gcloud:

    gcloud components install beta
    

  7. Accede con tu cuenta:

    gcloud auth login
    

  8. Establece las variables de configuración que se usan en esta guía de inicio rápido:

    gcloud config set project PROJECT_ID
    gcloud config set run/region us-central1
    gcloud config set run/platform managed
    gcloud config set eventarc/location us-central1
    

  9. Habilita los tipos de registros de lectura de administrador, lectura de datos y escritura de datos de los registros de auditoría de Cloud en Cloud Storage:

    Ir a la consola de registros de auditoría de Cloud

  10. Otorga la función iam.serviceAccountTokenCreator a la cuenta de servicio de Pub/Sub:

    export PROJECT_NUMBER="$(gcloud projects list --filter=$(gcloud config get-value project) --format='value(PROJECT_NUMBER)')"
    
    gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
        --member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com"\
        --role='roles/iam.serviceAccountTokenCreator'
    

  11. Otorga la función eventarc.admin a la cuenta de servicio de Compute Engine:

    gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
        --member=serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \
        --role='roles/eventarc.admin'
    

  12. Descarga e instala la herramienta de administración de código fuente de Git.

Crea un bucket de Cloud Storage

En esta guía de inicio rápido, se usa Cloud Storage como la fuente del evento. Para crear un bucket de almacenamiento, ejecuta el siguiente comando:

gsutil mb -l us-central1 gs://events-quickstart-$(gcloud config get-value project)/

Una vez que se crea la fuente del evento, puedes implementar el servicio del receptor de eventos en Cloud Run (completamente administrado).

Implementa el servicio del receptor de eventos en Cloud Run (completamente administrado)

Implementa un servicio de Cloud Run (completamente administrado) que reciba y registre eventos. Para implementar el servicio del receptor de eventos de muestra, 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)/helloworld-events
    
  3. Implementa la imagen de contenedor en Cloud Run (completamente administrado):

    gcloud run deploy helloworld-events \
        --image gcr.io/$(gcloud config get-value project)/helloworld-events \
        --allow-unauthenticated
    

    La URL del servicio se mostrará en la línea de comandos cuando se implemente de forma correcta.

Ubicaciones de Cloud Run

Cloud Run es regional, lo que significa que la infraestructura que ejecuta los servicios se ubica en una región específica, y Google la administra para que esté disponible de manera redundante en todas las zonas de esa región.

El cumplimiento de los requisitos de latencia, disponibilidad o durabilidad es el factor principal para seleccionar la región en la que se ejecutan los servicios de Cloud Run. Por lo general, puedes seleccionar la región más cercana a los usuarios, pero debes considerar la ubicación de los otros productos de Google Cloud que usa el servicio de Cloud Run. Si usas productos de Google Cloud en varias ubicaciones, la latencia y el costo del servicio pueden verse afectados.

Cloud Run está disponible en las siguientes regiones:

Sujetas a los Precios del nivel 1

  • asia-east1 (Taiwán)
  • asia-northeast1 (Tokio)
  • asia-northeast2 (Osaka)
  • europe-north1 (Finlandia)
  • europe-west1 (Bélgica)
  • europe-west4 (Países Bajos)
  • us-central1 (Iowa)
  • us-east1 (Carolina del Sur)
  • us-east4 (Virginia del Norte)
  • us-west1 (Oregón)

Sujetas a los Precios del nivel 2

  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seúl, Corea del Sur)
  • asia-southeast1 (Singapur)
  • asia-southeast2 (Yakarta)
  • asia-south1 (Bombay, India)
  • australia-southeast1 (Sídney)
  • europe-west2 (Londres, Reino Unido)
  • europe-west3 (Fráncfort, Alemania)
  • europe-west6 (Zúrich, Suiza)
  • northamerica-northeast1 (Montreal)
  • southamerica-east1 (São Paulo, Brasil)

Si ya creaste un servicio de Cloud Run, puedes ver la región en el panel de Cloud Run en Cloud Console.

Ahora que implementaste el servicio del receptor de eventos llamado helloworld-events en Cloud Run (completamente administrado), puedes configurar el activador.

Crea un activador de Eventarc

El activador de Eventarc enviará eventos desde el bucket de Cloud Storage al servicio helloworld-events de Cloud Run (completamente administrado).

  1. Crea un activador que filtre los eventos de Cloud Storage que usa la cuenta de servicio predeterminada de Compute Engine del proyecto de Google Cloud:

    gcloud beta eventarc triggers create events-quickstart-trigger \
        --destination-run-service=helloworld-events \
        --destination-run-region=us-central1 \
        --matching-criteria="type=google.cloud.audit.log.v1.written" \
        --matching-criteria="serviceName=storage.googleapis.com" \
        --matching-criteria="methodName=storage.objects.create" \
        --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com
    

    Esto crea un activador llamado events-quickstart-trigger.

  2. Para confirmar que events-quickstart-trigger se creó de forma correcta, ejecuta el siguiente comando:

    gcloud beta eventarc triggers list --location=us-central1
    

    Deberías ver events-quickstart-trigger enumerado con un destino de helloworld-events.

Genera y visualiza un evento

Para generar un evento, haz lo siguiente:

  1. Sube un archivo de texto a Cloud Storage:

    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 (completamente administrado) registra el mensaje del evento.

  2. Visualiza la entrada de registro:

    gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=helloworld-events"
    
  3. Busca una entrada de registro similar a lo siguiente:

    Detected change in GCS bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
    

    En el ejemplo anterior, BUCKET_NAME es el nombre del bucket de Cloud Storage.

Realiza una limpieza

Quita el proyecto de prueba

Si bien Cloud Run no cobra cuando el servicio no se usa, es posible que se te cobre por almacenar la imagen del contenedor en Container Registry, por los recursos de Eventarch, y por almacenar archivos en el bucket de Cloud Storage.

Puedes borrar tu imagen y borrar tu bucket de almacenamiento. Para borrar el activador de Eventarc, ejecuta el siguiente comando:

gcloud beta eventarc triggers delete events-quickstart-trigger

Como alternativa, puedes borrar el proyecto de Cloud para evitar que se generen cargos. Si borras tu proyecto de Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.

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

    Ir a la página Administrar recursos

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

Próximos pasos