Cada fuente de eventos, destino de eventos y activador de Eventarc tiene su propia ubicación. A veces, estas ubicaciones deben coincidir, mientras que otras veces pueden ser diferentes. Para obtener más información, consulta Ubicaciones de Eventarc.
Ubicación de origen
La ubicación de la fuente del evento suele determinar la ubicación del activador. En el ejemplo siguiente, como el segmento de Cloud Storage está en la región europe-west1
, el activador también debe estar en europe-west1
.
gcloud eventarc triggers create trigger-storage \
--destination-run-service=hello \
--destination-run-region=us-central1 \
--location=europe-west1 \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=my-bucket-in-europe-west1-region" \
--service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ubicación de destino
Cuando despliegues tu destino de eventos (por ejemplo, un servicio de Cloud Run), elige una región admitida como ubicación. Normalmente, por motivos de latencia y localidad de los datos, le conviene que esté en la misma región que su fuente de eventos.
Sin embargo, no es obligatorio. En el ejemplo anterior, la fuente del evento está en europe-west1
, mientras que la marca --destination-run-region
indica que el destino del evento está en us-central1
.
Ubicación de activación
Además, el tipo de activador de Eventarc que crees influye en la ubicación del activador, que se especifica mediante la marca --location
:
Registros de auditoría de Cloud
Con los activadores de Cloud Audit Logs, puedes conectar cualquier fuente de eventos que emita registros de auditoría a un destino de eventos. Los activadores de Cloud Audit Logs están disponibles en ubicaciones de una sola región. También puedes crear un activador de Eventarc global. Sin embargo, los activadores no se admiten en ubicaciones birregionales ni multirregionales.
La ubicación de la fuente del evento determina la ubicación del activador. Normalmente, se trata de una ubicación de una sola región. Por ejemplo, para capturar eventos de Cloud Storage
de un segmento de la región europe-west1
con un activador de registros de auditoría,
crea un activador en la misma ubicación:
gcloud eventarc triggers create trigger-auditlog \
--destination-run-service=hello \
--destination-run-region=us-central1 \
--location=europe-west1 \
--event-filters="type=google.cloud.audit.log.v1.written" \
--event-filters="serviceName=storage.googleapis.com" \
--event-filters="methodName=storage.objects.create" \
--service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com
Como no se puede filtrar por segmento al usar un activador de registros de auditoría de Cloud, se incluirán todos los segmentos de la región europe-west1
. (Para filtrar por segmento, puedes usar un activador directo de Cloud Storage).
También puede crear un activador con una ubicación global
para que coincida con un segmento birregional o multirregional, como eu
. De esta forma, se incluirán todos los segmentos de todas las regiones en las que coincidan los filtros de eventos:
gcloud eventarc triggers create trigger-storage \
--destination-run-service=hello \
--destination-run-region=us-central1 \
--location=global \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=my-bucket-in-europe-west1-region" \
--service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com
Cloud Storage
Los activadores de Cloud Storage responden a eventos que se producen en un cubo de Cloud Storage, como la creación, la eliminación o el archivado de objetos, así como las actualizaciones de metadatos. Los activadores de Cloud Storage están disponibles en ubicaciones de una sola región, birregionales y multirregionales. No puedes crear un activador global de Eventarc.
La ubicación del segmento de Cloud Storage determina la ubicación del activador de Eventarc, y deben coincidir. En el siguiente ejemplo, la ubicación del activador coincide con la del segmento de Cloud Storage (la ubicación multirregional eu
):
gcloud eventarc triggers create trigger-storage \
--destination-run-service=hello \
--destination-run-region=us-central1 \
--location=eu \
--event-filters="type=google.cloud.storage.object.v1.finalized" \
--event-filters="bucket=my-bucket-in-eu-multi-region" \
--service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com
Si las regiones del bucket y del activador no coinciden, verás un error similar al siguiente:
ERROR: (gcloud.eventarc.triggers.create) INVALID_ARGUMENT: The request was
invalid: Bucket "my-bucket-in-eu-multi-region" location "eu" does not match
trigger location "europe-west1". Try again by creating the trigger in "eu".
Pub/Sub
Un activador de Pub/Sub conecta un tema de Pub/Sub con un destino de eventos. Los activadores de Pub/Sub solo están disponibles en ubicaciones de una sola región y no puedes crear un activador de Eventarc global.
Aunque los temas de Pub/Sub son globales y no están vinculados a una sola región, cuando creas un activador de Pub/Sub, debes especificar una región para él mediante la marca --location
:
gcloud eventarc triggers create trigger-pubsub \
--destination-run-service=hello \
--destination-run-region=us-central1 \
--location=us-central1 \
--event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
--transport-topic=projects/your-projectid/topics/your-topic
Eventarc configura el geovallado para que los eventos de Pub/Sub solo se conserven en la ubicación especificada. También puede usar endpoints de servicio de Pub/Sub regionales para publicar en el tema de forma que todos los datos permanezcan en una sola región.
Siguientes pasos
- Para saber cómo enrutar eventos entre proyectos, consulta el tutorial. Google Cloud