Recibir eventos directos de Cloud Storage (Google Cloud consola)

En esta guía de inicio rápido se muestra cómo recibir eventos directos de Cloud Storage en un servicio de Cloud Run sin autenticar.

Puedes configurar el envío de notificaciones en respuesta a varios eventos dentro de un cubo de Cloud Storage: creación, eliminación y archivado de objetos, así como actualizaciones de metadatos. Para obtener más información, consulta Crear un activador para enrutar eventos de Cloud Storage a Cloud Run.

Puedes completar esta guía de inicio rápido con la Google Cloud consola. Para obtener instrucciones sobre cómo usar Google Cloud CLI, consulta Recibir eventos directos de Cloud Storage (CLI de gcloud).

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

  1. Crea un segmento de Cloud Storage que actúe como fuente de eventos.

  2. Despliega un servicio de ejemplo en Cloud Run para recibir eventos.

  3. Crea un activador de Eventarc para filtrar y enrutar eventos.

  4. Genera un evento subiendo un archivo al segmento de Cloud Storage y consulta el evento en los registros de Cloud Run.


Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:

Guíame


Antes de empezar

Es posible que las restricciones de seguridad definidas por tu organización te impidan completar los siguientes pasos. Para obtener información sobre cómo solucionar problemas, consulta el artículo Desarrollar aplicaciones en un entorno limitado Google Cloud .

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Eventarc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Build and Eventarc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Crea un segmento de Cloud Storage

    En esta guía de inicio rápido se usa Cloud Storage como origen de eventos.

    1. En la Google Cloud consola, ve a la página Cloud Storage > Información general.

      Ir a Vista general

    2. Haz clic en Crear segmento.

    3. Introduce un nombre único para el contenedor.

      Por ejemplo, hello-bucket.

    4. Haz clic en Continuar.

    5. En Tipo de ubicación, selecciona Región y, a continuación, us-central1 (Iowa).

    6. Acepta los demás valores predeterminados.

    7. Haz clic en Crear.

    Una vez creado el origen del evento, puedes desplegar el servicio receptor de eventos en Cloud Run.

    Desplegar el servicio de receptor de eventos en Cloud Run

    Despliega un servicio de Cloud Run de ejemplo que recibe y registra eventos.

    1. En la Google Cloud consola, ve a la página Servicios de Cloud Run.

      Ir a Servicios

    2. Haz clic en Desplegar contenedor > Servicio.

    3. En el formulario Crear servicio:

      1. Selecciona Desplegar una revisión desde una imagen de contenedor que ya existe.

      2. Haz clic en Probar con un contenedor de ejemplo.

      3. En la lista Región, selecciona la ubicación de tu servicio: us-central1 (Iowa).

      4. En Autenticación, selecciona Permitir las invocaciones sin autenticar.

      5. Acepta los demás valores predeterminados.

      6. Para implementar la imagen de contenedor de muestra, haz clic en Crear.

    El despliegue del servicio hello puede tardar hasta dos minutos en completarse.

    Crear un activador de Eventarc

    El activador de Eventarc enviará eventos del segmento de Cloud Storage al servicio de Cloud Run de ejemplo.

    1. En la Google Cloud consola, ve a la página Eventarc > Triggers (Activadores).

      Ir a Activadores

    2. Haz clic en Crear activador.

    3. Escribe un Nombre del activador.

      Por ejemplo, hello-trigger.

    4. En la lista Tipo de activador, selecciona Fuentes de Google.

      Filtra los eventos enviados por Google Cloud proveedores (directamente o a través de entradas de registros de auditoría de Cloud) o por proveedores que usan mensajes de Pub/Sub.

    5. En la lista Proveedor de eventos, selecciona Cloud Storage.

    6. En la lista Tipo de evento, selecciona Direct > google.cloud.storage.object.v1.finalized.

    7. En Segmento, selecciona el segmento de Cloud Storage hello-bucket que has creado anteriormente.

    8. Si se te pide, concede lo siguiente:

      • iam.serviceAccountTokenCreator a la cuenta de servicio de Pub/Sub
      • Rol pubsub.publisher en la cuenta de servicio de Cloud Storage
    9. Usa la cuenta de servicio predeterminada de Compute como cuenta de servicio que invoca tu servicio.

    10. En la lista Destino del evento, selecciona Cloud Run.

    11. En Servicio de Cloud Run, selecciona el servicio de ejemplo hello que has creado anteriormente.

    12. Acepta los demás valores predeterminados.

    13. Haz clic en Crear.

    Puede que tarden unos minutos en propagarse todos los permisos necesarios al agente de servicio de Eventarc. Si recibes un error Permission denied while using the Eventarc Service Agent, espera unos minutos y vuelve a intentarlo. Una vez creado un activador, puede tardar hasta dos minutos en estar totalmente operativo.

    Generar y ver un evento

    Genera un evento y confirma que el activador de Eventarc funciona correctamente.

    1. Para generar un evento, sigue estos pasos:

      1. Crea un archivo de texto con el nombre random.txt y el texto "Hello World".

      2. En la Google Cloud consola, ve a la página Cloud Storage > Segmentos.

        Ir a Contenedores

      3. Haz clic en el nombre del contenedor de almacenamiento que has creado.

      4. En la pestaña Objetos, haga clic en Subir archivos y suba el archivo random.txt.

      La subida genera un evento y el servicio de Cloud Run registra el mensaje del evento.

    2. Para ver la entrada del registro, sigue estos pasos:

      1. En la Google Cloud consola, ve a la página Servicios de Cloud Run.

        Ir a Servicios

      2. Haz clic en el nombre del servicio que has creado.

      3. Para obtener las entradas de registro de todas las revisiones de este servicio, en la página Detalles del servicio, haga clic en la pestaña Registros. Puedes filtrar por nivel de gravedad del registro.

      4. Busca una entrada de registro similar a la siguiente:

        Received event of type google.cloud.storage.object.v1.finalized. Event data: [...]

    ¡Enhorabuena! Has desplegado correctamente un servicio de receptor de eventos en Cloud Run, has creado un activador de Eventarc, has generado un evento desde Cloud Storage y lo has visto en los registros de Cloud Run.

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

    Aunque Cloud Run no aplica cargos cuando el servicio no se está usando, es posible que se te cobren cargos por almacenar la imagen de contenedor en Container Registry, recursos de Cloud Run y por almacenar archivos en tu segmento de Cloud Storage.

    Puedes eliminar tu imagen, eliminar tu segmento de almacenamiento y eliminar tu servicio de Cloud Run.

    Para eliminar el activador de Eventarc, sigue estos pasos:

    1. En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.

      Ir a Activadores

    2. Haz clic en el nombre del activador que has creado.

    3. En la página Detalles de los activadores, haz clic en Eliminar.

    También puedes eliminar tu Google Cloud proyecto para evitar que se te apliquen cargos. Al eliminar tu Google Cloud proyecto, se detendrá la facturación de todos los recursos utilizados en él.

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Siguientes pasos