Enruta eventos a un extremo HTTP interno en una red de VPC

Un activador de Eventarc declara tu interés en un evento o conjunto de eventos determinado. Si deseas configurar el enrutamiento de eventos, especifica filtros para el activador, incluidos la fuente y el destino de los eventos.

Eventarc entrega eventos al receptor de eventos en formato de CloudEvents a través de una solicitud HTTP.

En estas instrucciones, se muestra cómo configurar el enrutamiento de eventos para todos los tipos de eventos a un extremo HTTP interno en una red de nube privada virtual (VPC). Para configurar el activador, también debes proporcionar un ID de adjunto de red.

  • Los tipos de eventos compatibles son los siguientes:

    • Eventos directos: se activan mediante un evento no mediado, como una actualización de un objeto en un bucket de Cloud Storage o un mensaje publicado en un tema de Pub/Sub.

    • Eventos de registros de auditoría de Cloud: Se activan cuando se produce un registro a través de los registros de auditoría de Cloud.

    • Eventos de terceros: Se activan mediante eventos de un proveedor que no es de Google y ofrece una fuente de Eventarc.

  • El extremo HTTP interno puede ser una dirección IP interna o un nombre de DNS completamente calificado (FQDN) para cualquier extremo HTTP en la red de nube privada virtual. Los siguientes son dos ejemplos de posibles destinos de eventos:

    • Una instancia de máquina virtual (VM) de Compute Engine: las instancias de Compute Engine pueden ejecutar las imágenes públicas para Linux y Windows Server que proporciona Google, así como las imágenes personalizadas privadas que puedes crear o importar desde tus instancias existentes. Para obtener más información, consulta Instancias de máquina virtual.
    • Un balanceador de cargas interno: un balanceador de cargas de aplicaciones interno de Google Cloud es un balanceador de cargas regional de capa 7 basado en proxy que te permite ejecutar y escalar tus servicios detrás de una dirección IP interna. El balanceador de cargas de aplicaciones interno distribuye el tráfico HTTP y HTTPS a los backends alojados en Compute Engine, Google Kubernetes Engine (GKE) y Cloud Run. Para obtener más información, consulta Descripción general del balanceador de cargas de aplicaciones interno.
  • Una red de VPC es una versión virtual de una red física, implementada en la red de producción de Google Una red de VPC compartida es una red de VPC definida en un proyecto host y disponible como una red compartida de manera central para recursos aptos en proyectos de servicio.

  • Un adjunto de red es un recurso regional que te permite autorizar de forma explícita a un productor para que se conecte a una red de VPC del consumidor. Para publicar eventos, Eventarc usa el adjunto de red a fin de establecer una conexión con el extremo HTTP interno alojado en una red de VPC.

Antes de comenzar

Antes de crear un activador de Eventarc para enrutar eventos a un extremo HTTP interno en una red de VPC, debes crear un adjunto de red que acepte conexiones en la misma red y región que contiene el servicio de destino HTTP.

En estas instrucciones, se supone que ya creaste una red y una subred de VPC, y que implementaste tu servicio de destino HTTP.

Para obtener más información, consulta Recibe eventos de Pub/Sub en un extremo HTTP interno en una red de VPC que muestra cómo implementar un extremo HTTP interno en una red de VPC y enrutar eventos de Pub/Sub al extremo.

Limitaciones conocidas

Las siguientes son limitaciones conocidas cuando se enrutan eventos a un extremo HTTP interno en una red de VPC:

  • No puedes crear más de un activador de Eventarc para el mismo nombre de DNS.

  • Existe un límite de 100 activadores de Eventarc para extremos HTTP internos por proyecto.

  • Solo se admiten las siguientes ubicaciones de activadores de Eventarc:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

Prepárate para crear un activador

Antes de crear un activador, completa estos requisitos previos:

Consola

  1. En la página del selector de proyectos de la consola de Google Cloud, elige o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Habilitar las API de Cloud Logging y Eventarc.

    Habilita las APIs

  3. Si corresponde, habilita la API relacionada con los eventos directos. Por ejemplo, para los eventos de Cloud Functions, habilita cloudfunctions.googleapis.com.

  4. Si aún no tienes una, crea una cuenta de servicio administrada por el usuario y, luego, otórgale los roles y los permisos necesarios para que Eventarc pueda administrar los eventos para el servicio de destino.

    1. En la consola de Google Cloud, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio

    2. Elige tu proyecto.

    3. Escribe un nombre en el campo Nombre de cuenta de servicio. La consola de Google Cloud completa el campo ID de la cuenta de servicio en función de este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo, Service account for event trigger.

    4. Haz clic en Crear y continuar.

    5. Para proporcionar el acceso adecuado, en la lista Seleccionar un rol, selecciona los roles de Identity and Access Management (IAM) necesarios para otorgar a tu cuenta de servicio. Si deseas obtener más información, consulta Roles y permisos para un extremo HTTP interno en una red de VPC.

      Para obtener roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

    6. Haz clic en Continuar.

    7. Para terminar de crear la cuenta, haz clic en Listo.

  5. Si creas un activador para eventos directos desde Cloud Storage, otorga el rol de publicador de Pub/Sub (roles/pubsub.publisher) al agente de servicio de Cloud Storage:

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

      Ir a IAM

    2. Selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.

    3. En la columna Principal, busca el agente de servicio de Cloud Storage con el formato service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com y, luego, haz clic en Editar principal en la fila correspondiente.

    4. Haz clic en Agregar rol o Agregar otro rol.

    5. En la lista Selecciona un rol, filtra por Publicador de Pub/Sub y, luego, selecciona el rol.

    6. Haz clic en Guardar.

  6. Si el URI del extremo HTTP interno en la red de VPC usa el nombre de DNS interno de un servicio que Cloud DNS puede resolver, otorga el rol de intercambio de tráfico de DNS (roles/dns.peer) en el proyecto host de VPC al agente de servicio de Eventarc.

    Ten en cuenta que, según cómo hayas configurado la red de VPC, el proyecto host de VPC también podría ser el proyecto activador de Eventarc.

    1. En la página del selector de proyectos de la consola de Google Cloud, selecciona el proyecto host de VPC.

      Ir al selector de proyectos

    2. En la consola de Google Cloud, ve a la página IAM.

      Ir a IAM

    3. Selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.

    4. Modifica o agrega el agente de servicio de Eventarc como principal:

      • Si el agente de servicio de Eventarc ya tiene otros roles en el proyecto, busca la fila que contiene el principal en el formato service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com, haz clic en Editar principal en esa fila y, luego, en Agregar otro rol.

      • Si el agente de servicio de Eventarc no tiene funciones existentes en el proyecto, haz clic en Otorgar acceso, luego, ingresa la dirección de correo electrónico en el formulario service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com.

      Reemplaza PROJECT_NUMBER por el número de proyecto de Google Cloud para tu proyecto activador de Eventarc. Para encontrar el número del proyecto, ve a la página de bienvenida de la consola de Google Cloud o ejecuta el siguiente comando:

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'
    5. En la lista Seleccionar un rol, filtra por intercambio de tráfico de DNS y, luego, selecciona la función.

    6. Haz clic en Guardar.

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Habilita las APIs de Cloud Logging, Eventarc y Eventarc Publishing.

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com
    
  3. Si corresponde, habilita la API relacionada con los eventos. Por ejemplo, para los eventos de Cloud Functions, habilita cloudfunctions.googleapis.com.

  4. Si aún no tienes una, crea una cuenta de servicio administrada por el usuario y, luego, otórgale los roles y los permisos necesarios para que Eventarc pueda administrar los eventos para el servicio de destino.

    1. Cree la cuenta de servicio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Reemplaza SERVICE_ACCOUNT_NAME por el nombre de la cuenta de servicio. Debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.

    2. Otorga los roles o los permisos de Identity and Access Management (IAM) necesarios. Para obtener más información, consulta Roles y permisos para un extremo HTTP interno en una red de VPC.

  5. Si el URI del extremo HTTP interno en la red de VPC usa el nombre de DNS interno de un servicio que Cloud DNS puede resolver, otorga el rol de intercambio de tráfico de DNS (roles/dns.peer) en el proyecto host de VPC al agente de servicio de Eventarc.

    Ten en cuenta que, según cómo hayas configurado la red de VPC, el proyecto host de VPC también podría ser el proyecto activador de Eventarc.

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \
        --role=roles/dns.peer

    Reemplaza lo siguiente:

    • VPC_HOST_PROJECT_ID: es el ID del proyecto de Google Cloud para el proyecto host de VPC.
    • PROJECT_NUMBER: es el número de proyecto de Google Cloud para tu proyecto activador de Eventarc. Para encontrar el número del proyecto, ve a la página de bienvenida de la consola de Google Cloud o ejecuta el siguiente comando:
    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  6. Si creas un activador para eventos directos desde Cloud Storage, otorga el rol Publicador de Pub/Sub (roles/pubsub.publisher) en el proyecto al agente de servicio de Cloud Storage:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \
        --role=roles/pubsub.publisher

Crear un activador

Puedes crear un activador de Eventarc con Google Cloud CLI o a través de la consola de Google Cloud.

Consola

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

    Ir a Activadores

  2. Haz clic en Crear activador.
  3. Escribe un nombre de activador.

    Este es el ID del activador y debe comenzar con una letra. Puede contener hasta 63 letras en minúscula, números o guiones.

  4. En Tipo de activador, selecciona Fuentes de Google o De terceros.
  5. Selecciona un Proveedor de eventos.

    Este es el servicio que es la fuente de los eventos. En el caso de una fuente de Google, puedes hacerlo directamente o a través de sus registros de auditoría.

  6. Según el tipo de evento que enrutes, realiza una de las siguientes acciones:
    1. Eventos directos: En la lista Tipo de evento, en los eventos Directos, selecciona un tipo de evento.
      1. Para los eventos de Cloud Pub/Sub directos, en la lista Seleccionar un tema de Cloud Pub/Sub, selecciona un tema o acepta el valor predeterminado de Ninguno para que se cree un tema nuevo para ti.
      2. Para los eventos directos de Cloud Storage, especifica o busca el identificador único global del bucket de Cloud Storage.
    2. Eventos de registro de auditoría: En la lista Tipo de evento, en los eventos a través de los Registros de auditoría de Cloud, selecciona un tipo de evento y, luego, elije una de las siguientes opciones:
      • Cualquier recurso: es el valor predeterminado y, además, incluye los recursos creados de forma dinámica que tienen identificadores generados en el momento de la creación.
      • Recurso específico: debes proporcionar el nombre completo del recurso.
      • Patrón de ruta de acceso: puedes filtrar los recursos con un patrón de ruta de acceso. Por ejemplo, escribe projects/_/buckets/eventarc-bucket/objects/random.txt o projects/_/buckets/**/r*.txt.
    3. Eventos de terceros: En la lista Canal, selecciona un canal y, luego, en la lista Tipo de evento, selecciona un evento.

      Para obtener más información, consulta Crea un canal y recupera sus detalles.

  7. Si corresponde al tipo de evento, en la lista Tipo de contenido de datos del evento, selecciona application/json o application/protobuf para especificar la codificación de la carga útil del evento.

    Ten en cuenta que una carga útil de evento con formato JSON es mayor que una con formato en Protobuf. Esto puede afectar la confiabilidad según el destino del evento y los límites de tamaño del evento. Para obtener más información, consulta Problemas conocidos.

  8. Si corresponde al proveedor de eventos, haz clic en Agregar filtro y especifica lo siguiente:
    1. En el campo Atributo 1, según el evento directo que elijas, elige un ID de recurso que pueda funcionar como un filtro de evento.
    2. Elige un operador:
    3. En el campo Valor del atributo 1, según el operador que elegiste, escribe el valor exacto o aplica un patrón de ruta de acceso.
    4. Si un campo Atributo 2 es aplicable, especifica los valores adecuados.
  9. En la lista Región, elige una ubicación.

    Para evitar problemas de rendimiento y residencia de datos, la ubicación debe coincidir con la ubicación del servicio de Google Cloud que genera eventos.

    Ten en cuenta que, para este destino del evento, solo se admiten las siguientes ubicaciones:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-east1

    Para obtener más información, consulta Ubicaciones de Eventarc.

  10. Selecciona la cuenta de servicio que invocará el servicio.

    O bien, puedes crear una cuenta de servicio nueva.

    Esto especifica el correo electrónico de la cuenta de servicio de IAM asociado con el activador y al que antes otorgaste roles específicos que requiere Eventarc.

  11. En la lista Destino del evento, selecciona Extremo HTTP (interno).
    1. Especifica el URI de destino. Este es el URI del extremo HTTP interno en la red de VPC que recibe los eventos para el activador. El URI puede ser una dirección IP interna estática en la red de VPC que aborda el adjunto de red o el nombre de DNS interno de un servicio que Cloud DNS pueda resolver.

      Si el extremo HTTP usa un nombre de DNS interno, Eventarc crea automáticamente zonas de intercambio de tráfico de DNS y reenvía solicitudes DNS a las zonas DNS en la red de VPC de destino. Con el intercambio de tráfico de DNS, puedes enviar consultas de los registros que provienen del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de intercambio de tráfico y Crea una zona de intercambio de tráfico.

      Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.

    2. En la lista Adjuntos de red, selecciona un identificador para el recurso de adjunto de red. Este identificador se genera después de que creas un adjunto de red. Para obtener más información, consulta Crea adjuntos de red.

      Los adjuntos de red permiten que las redes de VPC del productor de servicios inicien conexiones a redes de VPC del consumidor. Eventarc usa el adjunto de red para establecer una conexión con el extremo HTTP interno alojado en la red de VPC del consumidor y publicar eventos.

      Cuando creas un adjunto de red, puedes autorizar de forma explícita una conexión a través de las listas de aceptación y rechazo del productor; independientemente, Eventarc puede actualizar la lista de aceptación de un adjunto de red con el ID de proyecto adecuado y sin ninguna intervención de tu parte.

  12. Haz clic en Crear.
  13. Después de que se crea un activador, los filtros de fuente del evento no se pueden modificar. En su lugar, crea un activador nuevo y borra el anterior. Para obtener más información, consulta Administra activadores.

gcloud

Para crear un activador, ejecuta un comando gcloud eventarc triggers create junto con las marcas obligatorias y opcionales.

Eventos directos

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="COLLECTION_ID=RESOURCE_ID" \
    --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Reemplaza lo siguiente:

  • TRIGGER: el ID del activador o un identificador completamente calificado.
  • LOCATION: ubicación del activador de Eventarc. De forma alternativa, puedes establecer la propiedad eventarc/location; por ejemplo, gcloud config set eventarc/location us-central1.

    Para evitar problemas de rendimiento y residencia de datos, la ubicación debe coincidir con la ubicación del servicio de Google Cloud que genera eventos.

    Ten en cuenta que, para este destino del evento, solo se admiten las siguientes ubicaciones:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Para obtener más información, consulta Ubicaciones de Eventarc.

  • ENDPOINT_URI: Es el URI del extremo HTTP interno en la red de VPC que recibe los eventos para el activador. El URI puede ser una dirección IP interna estática en la red de VPC que aborda el adjunto de red o el nombre de DNS interno de un servicio que Cloud DNS pueda resolver.

    Si el extremo HTTP usa un nombre de DNS interno, Eventarc crea de forma automática zonas de intercambio de tráfico de DNS y reenvía las solicitudes de DNS a las zonas DNS en la red de VPC de destino. Con el intercambio de tráfico de DNS, puedes enviar consultas de los registros que provienen del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de intercambio de tráfico y Crea una zona de intercambio de tráfico.

    Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.

  • NETWORK_ATTACHMENT_ID: Identificador único para el recurso de adjunto de red. El identificador se genera después de que creas un adjunto de red. Para obtener más información, consulta Crea adjuntos de red.

    Los adjuntos de red permiten que las redes de VPC del productor de servicios inicien conexiones a redes de VPC del consumidor. Eventarc usa el adjunto de red para establecer una conexión con el extremo interno de HTTP alojado en la red de VPC del consumidor y publicar eventos.

    Cuando creas un adjunto de red, puedes autorizar de forma explícita una conexión a través de las listas de aceptación y rechazo del productor; independientemente, Eventarc puede actualizar la lista de aceptación de un adjunto de red con el ID de proyecto adecuado y sin ninguna intervención de tu parte.

  • EVENT_FILTER_TYPE: el identificador del evento. Se genera un evento cuando una llamada a la API para el método se realiza de forma correcta. Para las operaciones de larga duración, el evento solo se genera al final de la operación y solo si la acción se hace correctamente. Consulta la lista de tipos de eventos directos compatibles.

  • COLLECTION_ID (opcional): Es el componente de recurso que puede actuar como filtro de eventos. Por ejemplo, para Cloud Functions, es function.

  • RESOURCE_ID: el identificador del recurso que se usa como el valor de filtro de la colección asociada. Para obtener más información, consulta ID de recurso.

  • PATH_PATTERN: el patrón de ruta de acceso que se aplicará cuando se filtre el recurso.

  • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio administrada por el usuario.

  • PROJECT_ID: El ID de tu proyecto de Google Cloud

Notas:

  • La marca --event-filters="type=EVENT_FILTER_TYPE" es obligatoria. Si no se establece ningún otro filtro de eventos, se hace coincidir los eventos de todos los recursos.
  • No se puede cambiar EVENT_FILTER_TYPE después de crearse. Para cambiar EVENT_FILTER_TYPE, crea un activador nuevo y borra el anterior.
  • Cada activador tiene varios filtros de eventos, delimitados por comas en una marca --event-filters=[ATTRIBUTE=VALUE,…], o puedes repetir la marca para agregar más filtros. Solo los eventos que coinciden con todos los filtros se envían al destino. No se admiten comodines ni expresiones regulares. Sin embargo, cuando usas la marca --event-filters-path-pattern, puedes definir un patrón de ruta de acceso de recurso.
  • La marca --service-account se usa para especificar el correo electrónico de la cuenta de servicio de IAM asociada con el activador.

Ejemplo:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Eventos de registro de auditoría

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Reemplaza lo siguiente:

  • TRIGGER: el ID del activador o un identificador completamente calificado.
  • LOCATION: la ubicación del activador de Eventarc. De forma alternativa, puedes establecer la propiedad eventarc/location; por ejemplo, gcloud config set eventarc/location us-central1.

    Para evitar problemas de rendimiento y residencia de datos, la ubicación debe coincidir con la ubicación del servicio de Google Cloud que genera eventos. Se admiten las siguientes ubicaciones:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Para obtener más información, consulta Ubicaciones de Eventarc.

  • ENDPOINT_URI: Es el URI del extremo HTTP interno en la red de VPC que recibe los eventos para el activador. El URI puede ser una dirección IP interna estática en la red de VPC que aborda el adjunto de red o el nombre de DNS interno de un servicio que Cloud DNS pueda resolver.

    Si el extremo HTTP usa un nombre de DNS interno, Eventarc crea de forma automática zonas de intercambio de tráfico de DNS y reenvía las solicitudes de DNS a las zonas DNS en la red de VPC de destino. Con el intercambio de tráfico de DNS, puedes enviar consultas de los registros que provienen del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de intercambio de tráfico y Crea una zona de intercambio de tráfico.

    Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.

  • NETWORK_ATTACHMENT_ID: Identificador único para el recurso de adjunto de red. El identificador se genera después de que creas un adjunto de red. Para obtener más información, consulta Crea adjuntos de red.

    Los adjuntos de red permiten que las redes de VPC del productor de servicios inicien conexiones a redes de VPC del consumidor. Eventarc usa el adjunto de red para establecer una conexión con el extremo interno de HTTP alojado en la red de VPC del consumidor y publicar eventos.

    Cuando creas un adjunto de red, puedes autorizar de forma explícita una conexión a través de las listas de aceptación y rechazo del productor; independientemente, Eventarc puede actualizar la lista de aceptación de un adjunto de red con el ID de proyecto adecuado y sin ninguna intervención de tu parte.

  • SERVICE_NAME: es el identificador del servicio de Google Cloud. Consulta la lista de tipos de eventos de registro de auditoría compatibles.

  • METHOD_NAME: es el identificador de la operación. Consulta la lista de tipos de eventos de registro de auditoría compatibles.

  • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio administrada por el usuario.

  • PROJECT_ID: El ID de tu proyecto de Google Cloud

Notas:

  • Estas marcas son obligatorias:
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • De manera opcional, filtra eventos para un recurso específico mediante la marca --event-filters="resourceName=VALUE" y la especificación de la ruta completa al recurso. Omite la marca para los recursos creados de forma dinámica que tienen identificadores generados en el momento de la creación. O bien, filtra eventos para un conjunto de recursos mediante la marca --event-filters-path-pattern="resourceName=VALUE" y la especificación del patrón de ruta de recurso.
  • Cada activador tiene varios filtros de eventos, delimitados por comas en una marca --event-filters=[ATTRIBUTE=VALUE,…], o puedes repetir la marca para agregar más filtros. Solo los eventos que coinciden con todos los filtros se envían al destino. No se admiten comodines ni expresiones regulares. Sin embargo, cuando usas la marca --event-filters-path-pattern, puedes definir un patrón de ruta de acceso de recurso.
  • Después de crear un activador, no se puede cambiar el tipo de filtro de eventos. Para un tipo de evento diferente, debes crear un activador nuevo.
  • La marca --service-account se usa para especificar el correo electrónico de la cuenta de servicio de IAM asociada con el activador.

Ejemplo:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://10.10.10.2 \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=eventarc.googleapis.com" \
    --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \
    --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Eventos de terceros

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --channel=CHANNEL_NAME \
    --project=PROJECT_ID \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Reemplaza lo siguiente:

  • TRIGGER: el ID del activador o un identificador completamente calificado.
  • LOCATION: ubicación del activador de Eventarc. De forma alternativa, puedes establecer la propiedad eventarc/location; por ejemplo, gcloud config set eventarc/location us-central1.

    Para evitar problemas de rendimiento y residencia de datos, la ubicación debe coincidir con la ubicación del servicio de Google Cloud que genera eventos.

    Ten en cuenta que, para este destino del evento, solo se admiten las siguientes ubicaciones:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    Para obtener más información, consulta Ubicaciones de Eventarc.

  • ENDPOINT_URI: Es el URI del extremo HTTP interno en la red de VPC que recibe los eventos para el activador. El URI puede ser una dirección IP interna estática en la red de VPC que aborda el adjunto de red o el nombre de DNS interno de un servicio que Cloud DNS pueda resolver.

    Si el extremo HTTP usa un nombre de DNS interno, Eventarc crea de forma automática zonas de intercambio de tráfico de DNS y reenvía las solicitudes de DNS a las zonas DNS en la red de VPC de destino. Con el intercambio de tráfico de DNS, puedes enviar consultas de los registros que provienen del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de intercambio de tráfico y Crea una zona de intercambio de tráfico.

    Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.

  • NETWORK_ATTACHMENT_ID: Identificador único para el recurso de adjunto de red. El identificador se genera después de que creas un adjunto de red. Para obtener más información, consulta Crea adjuntos de red.

    Los adjuntos de red permiten que las redes de VPC del productor de servicios inicien conexiones a redes de VPC del consumidor. Eventarc usa el adjunto de red para establecer una conexión con el extremo interno de HTTP alojado en la red de VPC del consumidor y publicar eventos.

    Cuando creas un adjunto de red, puedes autorizar de forma explícita una conexión a través de las listas de aceptación y rechazo del productor; independientemente, Eventarc puede actualizar la lista de aceptación de un adjunto de red con el ID de proyecto adecuado y sin ninguna intervención de tu parte.

  • EVENT_FILTER_TYPE: Es el tipo de evento compatible con el proveedor. Consulta la lista de tipos de eventos de terceros compatibles.

  • CHANNEL_NAME: Un nombre para el canal Para obtener más información, consulta Crea un canal y recupera sus detalles.

  • PROJECT_ID: El ID de tu proyecto de Google Cloud

  • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio administrada por el usuario.

Notas:

  • La marca --event-filters="type=EVENT_FILTER_TYPE" es obligatoria. Si no se establece ningún otro filtro de eventos, se hace coincidir los eventos de todos los recursos.
  • No se puede cambiar EVENT_FILTER_TYPE después de crearse. Para cambiar EVENT_FILTER_TYPE, crea un activador nuevo y borra el anterior.
  • Cada activador tiene varios filtros de eventos, delimitados por comas en una marca --event-filters=[ATTRIBUTE=VALUE,…], o puedes repetir la marca para agregar más filtros. Solo los eventos que coinciden con todos los filtros se envían al destino. No se admiten comodines ni expresiones regulares.
  • La marca --service-account se usa para especificar el correo electrónico de la cuenta de servicio de IAM asociada con el activador.

Ejemplo:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=third-party-event-type" \
    --channel=my-channel \
    --project=my-project-ID \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

Enumera un activador

Para confirmar la creación de un activador, enumera los activadores de Eventarc con Google Cloud CLI o a través de la consola de Google Cloud.

Consola

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

    Ir a Activadores

    En esta página, se enumeran tus activadores en todas las ubicaciones y se incluyen detalles, como nombres, regiones, proveedores de eventos, destinos y mucho más.

  2. Para filtrar tus activadores, haz lo siguiente:

    1. Haz clic en Filtrar o en el campo Filtrar activadores.
    2. En la lista Propiedades, elige una opción para filtrar los activadores.

    Puedes elegir una sola propiedad o usar el operador lógico OR para agregar más propiedades.

  3. Para ordenar los activadores, junto con el encabezado de la columna compatible, haz clic en Ordenar.

gcloud

Ejecuta el siguiente comando para enumerar los activadores:

gcloud eventarc triggers list --location=-

Este comando enumera tus activadores en todas las ubicaciones y, además, incluye detalles como nombres, tipos, destinos y estados.

¿Qué sigue?