Un activador de Eventarc declara tu interés en un evento o en un conjunto de eventos concretos. Puede configurar el enrutamiento de eventos especificando filtros para el activador, incluida la fuente del evento y el destino.
Eventarc envía eventos al receptor de eventos en formato CloudEvents a través de una solicitud HTTP.
En estas instrucciones se explica cómo configurar el enrutamiento de eventos para todos los tipos de eventos a un endpoint 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 admitidos son los siguientes:
Eventos directos: se activan mediante un evento sin mediación, 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 genera un registro a través de los registros de auditoría de Cloud.
Eventos de terceros: se activan mediante los eventos de un proveedor que no es de Google y que ofrece una fuente de Eventarc.
El endpoint HTTP interno puede ser una dirección IP interna o un nombre de DNS completo (FQDN) de cualquier endpoint HTTP de la red de Virtual Private Cloud. A continuación, se muestran 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 de Linux y Windows Server que proporciona Google, así como imágenes personalizadas privadas que puedes crear o importar desde tus sistemas. Para obtener más información, consulta Instancias de máquina virtual.
- Un balanceador de carga interno: un Google Cloud balanceador de carga de aplicaciones interno es un balanceador de carga regional de capa 7 basado en proxy que te permite ejecutar y escalar tus servicios mediante una dirección IP interna. Los balanceadores de carga de aplicaciones internos distribuyen 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 la descripción general del balanceador de carga de aplicación interno.
Una red de VPC es una versión virtual de una red física que se implementa en la red de producción de Google. Una red de VPC compartida es una red de VPC definida en un proyecto del host y disponible como red compartida centralmente para los recursos aptos de los proyectos de servicio vinculados.
Una vinculación de red es un recurso regional que te permite autorizar explícitamente a un productor para que se conecte a una red de VPC de consumidor. Para publicar eventos, Eventarc usa la vinculación de red para establecer una conexión con el endpoint HTTP interno alojado en una red de VPC.
Antes de empezar
Antes de crear un activador de Eventarc para enrutar eventos a un endpoint HTTP interno en una red VPC, debes crear un adjunto de red que acepte conexiones en la misma red y región que contenga el servicio de destino HTTP.
En estas instrucciones se da por sentado que ya ha creado una red y una subred de VPC, y que ha implementado su servicio de destino HTTP.
Para obtener más información, consulta el artículo Recibir eventos de Pub/Sub en un endpoint HTTP interno de una red de VPC, donde se explica cómo implementar un endpoint HTTP interno en una red de VPC y cómo enrutar eventos de Pub/Sub al endpoint.
Limitaciones conocidas
Estas son las limitaciones conocidas al enrutar eventos a un endpoint HTTP interno en una red de VPC:
No puedes crear más de un activador de Eventarc para el mismo nombre de DNS.
Hay un límite de 100 activadores de Eventarc para endpoints HTTP internos por proyecto.
Solo se admiten las siguientes ubicaciones de activadores de Eventarc:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Prepararse para crear un activador
Antes de crear un activador, completa estos requisitos previos:
Consola
En la Google Cloud consola, en la página del selector de proyectos, selecciona o crea un Google Cloud proyecto.
Habilita las APIs Cloud Logging y Eventarc.
Si procede, habilita la API relacionada con los eventos directos. Por ejemplo, para los eventos de Cloud Run Functions, habilita
cloudfunctions.googleapis.com
.Si aún no tienes una, crea una cuenta de servicio gestionada por el usuario y, a continuación, concédele los roles y permisos necesarios para que Eventarc pueda gestionar eventos de tu servicio de destino.
En la Google Cloud consola, ve a la página Crear cuenta de servicio.
Selecciona el proyecto.
En el campo Nombre de cuenta de servicio, escribe un nombre. La Google Cloud consola rellena el campo ID de cuenta de servicio con este nombre.
En el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo,
Service account for event trigger
.Haz clic en Crear y continuar.
Para proporcionar el acceso adecuado, en la lista Seleccionar un rol, elige los roles de gestión de identidades y accesos (IAM) que quieras conceder a tu cuenta de servicio. Para obtener más información, consulta Roles y permisos de un endpoint HTTP interno en una red de VPC.
Para añadir más roles, haz clic en
Añadir otro rol y añade cada rol adicional.Haz clic en Continuar.
Para terminar de crear la cuenta, haga clic en Hecho.
Si vas a crear un activador para recibir eventos directos de Cloud Storage, otorga el rol de editor de Pub/Sub (
roles/pubsub.publisher
) al agente de servicio de Cloud Storage:En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Selecciona la casilla Incluir concesiones de roles proporcionadas por Google.
En la columna Principal, busque el agente de servicio de Cloud Storage con el formato
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
, y, a continuación, haga clic en Editar principal en la fila correspondiente.Haz clic en
Añadir rol o en Añadir otro rol.En la lista Selecciona un rol, busca Pub/Sub Publisher y, a continuación, selecciona el rol.
Haz clic en Guardar.
Si el URI del endpoint HTTP interno de la red de VPC usa el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS, asigna el rol de peer de DNS (
roles/dns.peer
) en el proyecto host de la VPC al agente de servicio de Eventarc.Ten en cuenta que, en función de cómo hayas configurado la red de VPC, el proyecto host de la VPC también puede ser tu proyecto de activador de Eventarc.
En la Google Cloud consola, en la página del selector de proyectos, selecciona el proyecto host de VPC.
En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Selecciona la casilla Incluir concesiones de roles proporcionadas por Google.
Modifica o añade 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 la cuenta principal con el formato
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
, haz clic en Editar cuenta principal en esa fila y, a continuación, haz clic en Añadir otro rol.Si el agente de servicio de Eventarc no tiene ningún rol en el proyecto, haz clic en
Conceder acceso y, a continuación, introduce la dirección de correo en el formularioservice-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
.
Sustituye
PROJECT_NUMBER
por el Google Cloud número de proyecto de tu proyecto de activador de Eventarc. Puedes encontrar el número de tu proyecto en la página Bienvenido de la consola Google Cloud o ejecutando el siguiente comando:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
En la lista Selecciona un rol, filtra por Peer de DNS y, a continuación, selecciona el rol.
Haz clic en Guardar.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Habilita las APIs Cloud Logging, Eventarc y Eventarc Publishing.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Si procede, habilita la API relacionada con los eventos. Por ejemplo, para los eventos de Cloud Run Functions, habilita
cloudfunctions.googleapis.com
.Si aún no tienes una, crea una cuenta de servicio gestionada por el usuario y, a continuación, concédele los roles y permisos necesarios para que Eventarc pueda gestionar los eventos de tu servicio de destino.
Crea la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sustituye
SERVICE_ACCOUNT_NAME
por el nombre de la cuenta de servicio. Debe tener entre 6 y 30 caracteres, y puede contener caracteres alfanuméricos en minúscula y guiones. Una vez que hayas creado una cuenta de servicio, no podrás cambiar su nombre.Concede los roles o permisos de Gestión de Identidades y Accesos (IAM) necesarios. Para obtener más información, consulta Roles y permisos de un endpoint HTTP interno en una red de VPC.
Si el URI del endpoint HTTP interno de la red de VPC usa el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS, asigna el rol de peer de DNS (
roles/dns.peer
) en el proyecto host de VPC al agente de servicio de Eventarc.Ten en cuenta que, en función de cómo hayas configurado la red de VPC, el proyecto host de la VPC también puede ser tu proyecto de 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
Haz los cambios siguientes:
VPC_HOST_PROJECT_ID
: el Google Cloud ID de proyecto del proyecto host de la VPC.PROJECT_NUMBER
: el Google Cloud número de proyecto de tu proyecto de activador de Eventarc. Puedes encontrar el número de tu proyecto en la página Bienvenido de la consola Google Cloud o ejecutando el siguiente comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Si vas a crear un activador para eventos directos de 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 activador
Puedes crear un activador de Eventarc mediante la CLI de Google Cloud o a través de la Google Cloud consola.
Consola
- En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.
- Haz clic en Crear activador.
- Escribe un Nombre del activador.
Es el ID del activador y debe empezar por una letra. Puede contener hasta 63 letras minúsculas, números o guiones.
- En Tipo de activador, seleccione Fuentes de Google o Terceros.
- Selecciona un proveedor de eventos.
Es el servicio que es la fuente de los eventos. En el caso de una fuente de Google, se puede hacer directamente o a través de sus registros de auditoría.
- En función del tipo de evento que estés enrutando, haz una de las siguientes acciones:
- Eventos directos: en la lista Tipo de evento, en los eventos Directos, seleccione un tipo de evento.
- En el caso de los eventos directos de Cloud Pub/Sub, en la lista Seleccionar un tema de Cloud Pub/Sub, elija un tema o acepte el valor predeterminado Ninguno para que se cree un tema.
- En el caso de los eventos directos de Cloud Storage, especifica o busca el identificador único global del segmento de Cloud Storage.
- 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, seleccione un tipo de evento y, a continuación, una de las siguientes opciones:
- Cualquier recurso: es el valor predeterminado e incluye recursos creados dinámicamente 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: puedes filtrar recursos mediante un patrón de ruta.
Por ejemplo, escribe
projects/_/buckets/eventarc-bucket/objects/random.txt
oprojects/_/buckets/**/r*.txt
.
- Eventos de terceros: en la lista Canal, seleccione un canal y, a continuación, en la lista Tipo de evento, seleccione un evento.
Para obtener más información, consulta el artículo Crear un canal y obtener sus detalles.
- Eventos directos: en la lista Tipo de evento, en los eventos Directos, seleccione un tipo de evento.
- Si procede, en la lista Tipo de contenido de datos de evento, seleccione 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 más grande que una con formato Protobuf. Esto puede afectar a la fiabilidad en función del destino de los eventos y sus límites de tamaño. Para obtener más información, consulta Problemas conocidos.
- Si procede, haga clic en Añadir filtro
y especifique lo siguiente:
- En el campo Atributo 1, en función del evento directo que haya elegido, seleccione un ID de recurso que pueda actuar como filtro de eventos.
- Selecciona un operador:
- Igual
- Patrón de ruta
Para obtener más información, consulta Información sobre los patrones de ruta.
- En el campo Valor del atributo 1, en función del operador que haya elegido, escriba el valor exacto o aplique un patrón de ruta.
- Si se aplica el campo Atributo 2, especifica los valores correspondientes.
- En la lista Región, selecciona una ubicación.
Para evitar problemas de rendimiento y de residencia de datos, la ubicación debe coincidir con la del Google Cloud servicio que genera los eventos Google Cloud .
Ten en cuenta que, en este destino de 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.
- Selecciona la cuenta de servicio que invocará tu servicio.
También puedes crear una cuenta de servicio.
Especifica el correo electrónico de la cuenta de servicio de gestión de identidades y accesos asociada al activador y a la que has concedido roles específicos necesarios para Eventarc.
- En la lista Event destination (Destino de eventos), selecciona HTTP endpoint (internal) (Endpoint HTTP [interno]).
- Especifica el URI de destino. Es el URI del endpoint HTTP interno de la red VPC que recibe los eventos del activador. El URI puede ser una dirección IP interna estática en la red VPC a la que se dirige la vinculación de red o el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS.
Si el endpoint HTTP usa un nombre de DNS interno, Eventarc crea automáticamente zonas de peering de DNS y reenvía las solicitudes de DNS a las zonas de DNS de la red VPC de destino. El emparejamiento de DNS te permite enviar solicitudes de registros que proceden del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de peering y Crear una zona de peering.
Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.
- En la lista Network attachment (Adjunto de red), selecciona un identificador para el recurso de adjunto de red. Este identificador se genera después de crear un archivo adjunto de red. Para obtener más información, consulta el artículo Crear archivos adjuntos de red.
Las vinculaciones de red permiten que las redes de VPC de los productores de servicios inicien conexiones con las redes de VPC de los consumidores. Eventarc usa la vinculación de red para establecer una conexión con el endpoint HTTP interno alojado en la red de VPC del consumidor y publicar eventos.
Cuando creas un adjunto de red, puedes autorizar explícitamente una conexión mediante listas de aceptación y rechazo de productores. En cualquier caso, Eventarc puede actualizar la lista de aceptación de un adjunto de red con el ID de proyecto adecuado y sin que tengas que hacer nada.
- Especifica el URI de destino. Es el URI del endpoint HTTP interno de la red VPC que recibe los eventos del activador. El URI puede ser una dirección IP interna estática en la red VPC a la que se dirige la vinculación de red o el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS.
- Haz clic en Crear.
Una vez creado un activador, no se pueden modificar los filtros de origen de eventos. En su lugar, cree un activador nuevo y elimine el anterior. Para obtener más información, consulta Gestionar 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"
Haz los cambios siguientes:
TRIGGER
: el ID del activador o un identificador completo.LOCATION
: la ubicación del activador de Eventarc. También puedes definir la propiedadeventarc/location
; por ejemplo,gcloud config set eventarc/location us-central1
.Para evitar problemas de rendimiento y de residencia de datos, la ubicación debe coincidir con la ubicación del servicio que genera eventos. Google Cloud
Ten en cuenta que, en este destino de eventos, 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
: el URI del endpoint HTTP interno de la red de VPC que recibe los eventos del activador. El URI puede ser una dirección IP interna estática de la red VPC a la que se dirige la conexión de red o el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS.Si el endpoint HTTP usa un nombre de DNS interno, Eventarc crea automáticamente zonas de peering de DNS y reenvía las solicitudes de DNS a las zonas de DNS de la red VPC de destino. El emparejamiento de DNS te permite enviar solicitudes de registros que proceden del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de peering y Crear una zona de peering.
Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.
NETWORK_ATTACHMENT_ID
: identificador único del recurso de adjunto de red. El identificador se genera después de crear un archivo adjunto de red. Para obtener más información, consulta Crear archivos adjuntos de red.Las vinculaciones de red permiten que las redes de VPC de los productores de servicios inicien conexiones con las redes de VPC de los consumidores. Eventarc usa la vinculación de red para establecer una conexión con el endpoint HTTP interno alojado en la red de VPC del consumidor y publicar eventos.
Cuando creas una vinculación de red, puedes autorizar explícitamente una conexión mediante listas de aceptación y rechazo de productores. En cualquier caso, Eventarc puede actualizar la lista de aceptación de una vinculación de red con el ID de proyecto adecuado y sin que tengas que hacer nada.
EVENT_FILTER_TYPE
: identificador del evento. Se genera un evento cuando se realiza correctamente una llamada a la API del método. En el caso de las operaciones de larga duración, el evento solo se genera al final de la operación y solo si la acción se realiza correctamente. Consulta la lista de tipos de eventos directos admitidos.COLLECTION_ID
(opcional): el componente resource que puede actuar como filtro de eventos. Por ejemplo, en el caso de las funciones de Cloud Run, esfunction
.RESOURCE_ID
: identificador del recurso que se usa como 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 que se debe aplicar al filtrar el recurso.SERVICE_ACCOUNT_NAME
: el nombre de tu cuenta de servicio gestionada por el usuario.PROJECT_ID
: tu ID de proyecto Google Cloud .
Notas:
- Es obligatorio usar la marca
--event-filters="type=EVENT_FILTER_TYPE"
. Si no se define ningún otro filtro de eventos, se incluirán los eventos de todos los recursos. EVENT_FILTER_TYPE
no se puede cambiar después de crearse. Para cambiarEVENT_FILTER_TYPE
, crea un nuevo activador y elimina el anterior.- Cada activador puede tener varios filtros de eventos, separados por comas en una
--event-filters
=[ATTRIBUTE
=VALUE
,...] marca, o puede repetir la marca para añadir más filtros. Solo se envían al destino los eventos que coincidan con todos los filtros. No se admiten comodines ni expresiones regulares. Sin embargo, cuando se usa la marca--event-filters-path-pattern
, se puede definir un patrón de ruta de recurso. - La marca
--service-account
se usa para especificar la dirección de correo de la cuenta de servicio de IAM asociada al 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"
Haz los cambios siguientes:
TRIGGER
: el ID del activador o un identificador completo.LOCATION
: la ubicación del activador de Eventarc. También puedes definir la propiedadeventarc/location
; por ejemplo,gcloud config set eventarc/location us-central1
.Para evitar problemas de rendimiento y de residencia de datos, la ubicación debe coincidir con la ubicación del servicio que genera eventos. Google Cloud 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
: el URI del endpoint HTTP interno de la red de VPC que recibe los eventos del activador. El URI puede ser una dirección IP interna estática de la red VPC a la que se dirige la conexión de red o el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS.Si el endpoint HTTP usa un nombre de DNS interno, Eventarc crea automáticamente zonas de peering de DNS y reenvía las solicitudes de DNS a las zonas de DNS de la red VPC de destino. El emparejamiento de DNS te permite enviar solicitudes de registros que proceden del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de peering y Crear una zona de peering.
Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.
NETWORK_ATTACHMENT_ID
: identificador único del recurso de adjunto de red. El identificador se genera después de crear un archivo adjunto de red. Para obtener más información, consulta Crear archivos adjuntos de red.Las vinculaciones de red permiten que las redes de VPC de los productores de servicios inicien conexiones con las redes de VPC de los consumidores. Eventarc usa la vinculación de red para establecer una conexión con el endpoint HTTP interno alojado en la red de VPC del consumidor y publicar eventos.
Cuando creas una vinculación de red, puedes autorizar explícitamente una conexión mediante listas de aceptación y rechazo de productores. En cualquier caso, Eventarc puede actualizar la lista de aceptación de una vinculación de red con el ID de proyecto adecuado y sin que tengas que hacer nada.
SERVICE_NAME
: el identificador del Google Cloud servicio. Consulta la lista de tipos de eventos de registro de auditoría admitidos.METHOD_NAME
: el identificador de la operación. Consulta la lista de tipos de eventos de registro de auditoría admitidos.SERVICE_ACCOUNT_NAME
: el nombre de tu cuenta de servicio gestionada por el usuario.PROJECT_ID
: tu ID de proyecto Google Cloud .
Notas:
- Estas marcas son obligatorias:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
- También puede filtrar los eventos de un recurso específico mediante la marca
--event-filters="resourceName=VALUE"
y especificando la ruta completa del recurso. Omite la marca en el caso de los recursos creados dinámicamente que tengan identificadores generados en el momento de la creación. También puede filtrar los eventos de un conjunto de recursos mediante la marca--event-filters-path-pattern="resourceName=VALUE"
y especificar el patrón de ruta de recurso. - Cada activador puede tener varios filtros de eventos, separados por comas en una
--event-filters
=[ATTRIBUTE
=VALUE
,...] marca, o puede repetir la marca para añadir más filtros. Solo se envían al destino los eventos que coincidan con todos los filtros. No se admiten comodines ni expresiones regulares. Sin embargo, cuando se usa la marca--event-filters-path-pattern
, se puede definir un patrón de ruta de recurso. - Una vez creado un activador, no se puede cambiar el tipo de filtro de eventos. Si quieres usar otro tipo de evento, debes crear un nuevo activador.
- La marca
--service-account
se usa para especificar la dirección de correo de la cuenta de servicio de IAM asociada al 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"
Haz los cambios siguientes:
TRIGGER
: el ID del activador o un identificador completo.LOCATION
: la ubicación del activador de Eventarc. También puedes definir la propiedadeventarc/location
; por ejemplo,gcloud config set eventarc/location us-central1
.Para evitar problemas de rendimiento y de residencia de datos, la ubicación debe coincidir con la ubicación del servicio que genera eventos. Google Cloud
Ten en cuenta que, en este destino de eventos, 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
: el URI del endpoint HTTP interno de la red de VPC que recibe los eventos del activador. El URI puede ser una dirección IP interna estática de la red VPC a la que se dirige la conexión de red o el nombre de DNS interno de un servicio que se puede resolver mediante Cloud DNS.Si el endpoint HTTP usa un nombre de DNS interno, Eventarc crea automáticamente zonas de peering de DNS y reenvía las solicitudes de DNS a las zonas de DNS de la red VPC de destino. El emparejamiento de DNS te permite enviar solicitudes de registros que proceden del espacio de nombres de una zona a otra red de VPC. Para obtener más información, consulta Zonas de peering y Crear una zona de peering.
Ten en cuenta que no puedes crear más de un activador para el mismo nombre de DNS.
NETWORK_ATTACHMENT_ID
: identificador único del recurso de adjunto de red. El identificador se genera después de crear un archivo adjunto de red. Para obtener más información, consulta Crear archivos adjuntos de red.Las vinculaciones de red permiten que las redes de VPC de los productores de servicios inicien conexiones con las redes de VPC de los consumidores. Eventarc usa la vinculación de red para establecer una conexión con el endpoint HTTP interno alojado en la red de VPC del consumidor y publicar eventos.
Cuando creas una vinculación de red, puedes autorizar explícitamente una conexión mediante listas de aceptación y rechazo de productores. En cualquier caso, Eventarc puede actualizar la lista de aceptación de una vinculación de red con el ID de proyecto adecuado y sin que tengas que hacer nada.
EVENT_FILTER_TYPE
: el tipo de evento admitido por el proveedor.CHANNEL_NAME
: el nombre del canal. Para obtener más información, consulta el artículo Crear un canal y obtener sus detalles.PROJECT_ID
: tu ID de proyecto Google Cloud .SERVICE_ACCOUNT_NAME
: el nombre de tu cuenta de servicio gestionada por el usuario.
Notas:
- Es obligatorio usar la marca
--event-filters="type=EVENT_FILTER_TYPE"
. Si no se define ningún otro filtro de eventos, se incluirán los eventos de todos los recursos. EVENT_FILTER_TYPE
no se puede cambiar después de crearse. Para cambiarEVENT_FILTER_TYPE
, crea un nuevo activador y elimina el anterior.- Cada activador puede tener varios filtros de eventos, separados por comas en una
--event-filters
=[ATTRIBUTE
=VALUE
,...] marca, o puede repetir la marca para añadir más filtros. Solo se envían al destino los eventos que coinciden con todos los filtros. No se admiten comodines ni expresiones regulares. - La marca
--service-account
se usa para especificar la dirección de correo de la cuenta de servicio de IAM asociada al 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
Mostrar un activador
Para confirmar que se ha creado un activador, puedes enumerar los activadores de Eventarc con la CLI de Google Cloud o a través de la Google Cloud consola.
Consola
En la Google Cloud consola, ve a la página Triggers (Activadores) de Eventarc.
En esta página se muestran todos tus activadores de todas las ubicaciones, así como detalles como nombres, regiones, proveedores de eventos, destinos y más.
Para filtrar tus activadores, sigue estos pasos:
- Haz clic en Filtrar o en el campo Activar filtros.
- En la lista Propiedades, seleccione una opción para filtrar los activadores.
Puede seleccionar una sola propiedad o usar el operador lógico
OR
para añadir más propiedades.Para ordenar los activadores, junto al encabezado de cualquier columna admitida, haz clic en
Ordenar.
gcloud
Ejecuta el siguiente comando para ver una lista de tus activadores:
gcloud eventarc triggers list --location=-
Este comando muestra los activadores de todas las ubicaciones e incluye detalles como nombres, tipos, destinos y estados.
Siguientes pasos
- Información general sobre Eventarc
- Gestionar activadores
- Tutorial: Recibir eventos de Pub/Sub en un endpoint HTTP interno de una red de VPC
- Tutorial: Recibir eventos de Pub/Sub en un endpoint HTTP privado en un clúster de GKE privado