Each event source, event target, and Eventarc trigger has its own
location. Sometimes, these locations must match; at other times, they can be
different. For more information, see Eventarc locations.
Source location
The location of the event source often dictates the trigger location. In the
following example, since the Cloud Storage bucket is in the europe-west1
region, the trigger must also be located in europe-west1.
When deploying your event target (for example, a Cloud Run service),
you choose a supported region as its location. Typically, for latency and data
locality reasons, you want this to be in the same region as your event source.
However, it is not a requirement and in the preceding example, the event source
is in europe-west1 while the --destination-run-region flag indicates that
the event target is in us-central1.
Trigger location
Additionally, the type of Eventarc trigger you create impacts the
location of the trigger which is specified through the --location flag:
Cloud Audit Logs
Using Cloud Audit Logs triggers, you can connect any event source that
emits audit logs to an event target. Cloud Audit Logs triggers are
available in single-region locations and you can also create a global
Eventarc trigger; however, triggers are not supported in
dual-region and multi-region locations.
The location of the event source dictates the trigger location. Typically,
this is a single-region location. For example, to capture Cloud Storage
events from a bucket in the europe-west1 region with an audit logs trigger,
create a trigger in the same location:
As there's no filtering by bucket when you use a Cloud Audit Logs
trigger, this will match all buckets in the europe-west1 region. (To filter
by bucket, you can instead use a direct Cloud Storage trigger.)
Or, to match a dual-region or multi-region bucket such as eu, you can
create a trigger with a global location and this will match all buckets in
all regions for which the event filters match:
Cloud Storage triggers respond to events inside a Cloud Storage
bucket—object creation, deletion, archiving, and metadata updates.
Cloud Storage triggers are available in single-region, dual-region,
and multi-region locations; you cannot create a global Eventarc
trigger.
The location of the Cloud Storage bucket dictates the location of
the Eventarc trigger, and they must match. In the following
example, the trigger location matches that of the Cloud Storage
bucket (the eu multi-region location):
A Pub/Sub trigger connects a Pub/Sub topic to
an event target. Pub/Sub triggers are only available in
single-region locations and you cannot create a global Eventarc
trigger.
Although Pub/Sub topics are global and not tied to a
single region, when you create a Pub/Sub trigger, you
must specify a region for it using the --location flag:
Eventarc configures geofencing so that Pub/Sub
events persist only in the specified location. You can also use regional
Pub/Sub service endpoints
to publish to the topic so that all of the data stays in a single region.
What's next
To learn how to route events across Google Cloud projects, see the tutorial.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eEvent source and trigger locations often need to match, such as with Cloud Storage where the bucket's region dictates the trigger's location.\u003c/p\u003e\n"],["\u003cp\u003eWhile the event target's region is typically chosen for latency and data locality, it doesn't necessarily have to be the same as the event source's region.\u003c/p\u003e\n"],["\u003cp\u003eCloud Audit Logs triggers can be created in single-region locations or globally, allowing connections to various event sources that emit audit logs.\u003c/p\u003e\n"],["\u003cp\u003eCloud Storage triggers require the trigger location to precisely match the Cloud Storage bucket's location, and they support single, dual, and multi-region locations, but not globally.\u003c/p\u003e\n"],["\u003cp\u003ePub/Sub triggers, although linked to globally accessible topics, are only available in single-region locations, and data can be confined to a single region using geofencing.\u003c/p\u003e\n"]]],[],null,["# Understand Eventarc locations\n\n[Standard](/eventarc/standard/docs/overview)\n\nEach event source, event target, and Eventarc trigger has its own\nlocation. Sometimes, these locations must match; at other times, they can be\ndifferent. For more information, see [Eventarc locations](/eventarc/docs/locations).\n\n### Source location\n\nThe location of the event source often dictates the trigger location. In the\nfollowing example, since the Cloud Storage bucket is in the `europe-west1`\nregion, the trigger must also be located in `europe-west1`. \n\n gcloud eventarc triggers create trigger-storage \\\n --destination-run-service=hello \\\n --destination-run-region=us-central1 \\\n --location=europe-west1 \\\n --event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n --event-filters=\"bucket=my-bucket-in-europe-west1-region\" \\\n --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com\n\n### Target location\n\nWhen deploying your event target (for example, a Cloud Run service),\nyou choose a supported region as its location. Typically, for latency and data\nlocality reasons, you want this to be in the same region as your event source.\nHowever, it is not a requirement and in the preceding example, the event source\nis in `europe-west1` while the `--destination-run-region` flag indicates that\nthe event target is in `us-central1`.\n\n### Trigger location\n\nAdditionally, the type of Eventarc trigger you create impacts the\nlocation of the trigger which is specified through the `--location` flag: \n\n### Cloud Audit Logs\n\nUsing Cloud Audit Logs triggers, you can connect any event source that\nemits audit logs to an event target. Cloud Audit Logs triggers are\navailable in single-region locations and you can also create a global\nEventarc trigger; however, triggers are not supported in\ndual-region and multi-region locations.\n\nThe location of the event source dictates the trigger location. Typically,\nthis is a single-region location. For example, to capture Cloud Storage\nevents from a bucket in the `europe-west1` region with an audit logs trigger,\ncreate a trigger in the same location: \n\n gcloud eventarc triggers create trigger-auditlog \\\n --destination-run-service=hello \\\n --destination-run-region=us-central1 \\\n --location=europe-west1 \\\n --event-filters=\"type=google.cloud.audit.log.v1.written\" \\\n --event-filters=\"serviceName=storage.googleapis.com\" \\\n --event-filters=\"methodName=storage.objects.create\" \\\n --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com\n\nAs there's no filtering by bucket when you use a Cloud Audit Logs\ntrigger, this will match all buckets in the `europe-west1` region. (To filter\nby bucket, you can instead use a direct Cloud Storage trigger.)\n\nOr, to match a dual-region or multi-region bucket such as `eu`, you can\ncreate a trigger with a `global` location and this will match all buckets in\nall regions for which the event filters match: \n\n gcloud eventarc triggers create trigger-storage \\\n --destination-run-service=hello \\\n --destination-run-region=us-central1 \\\n --location=global \\\n --event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n --event-filters=\"bucket=my-bucket-in-europe-west1-region\" \\\n --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com\n\n| **Note:** There is a known issue with Cloud Audit Logs triggers for [Compute Engine](/eventarc/docs/reference/supported-events#compute-engine) that results in events originating from a single region: `us-central1`. This is regardless of where the virtual machine instance is actually located. When [creating your trigger for a specific provider and destination](/eventarc/standard/docs/event-providers-targets#triggers), set the trigger location to either `us-central1` or `global`.\n\n### Cloud Storage\n\nCloud Storage triggers respond to events inside a Cloud Storage\nbucket---object creation, deletion, archiving, and metadata updates.\nCloud Storage triggers are available in single-region, dual-region,\nand multi-region locations; you cannot create a global Eventarc\ntrigger.\n\nThe location of the Cloud Storage bucket dictates the location of\nthe Eventarc trigger, and they *must* match. In the following\nexample, the trigger location matches that of the Cloud Storage\nbucket (the `eu` multi-region location): \n\n gcloud eventarc triggers create trigger-storage \\\n --destination-run-service=hello \\\n --destination-run-region=us-central1 \\\n --location=eu \\\n --event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n --event-filters=\"bucket=my-bucket-in-eu-multi-region\" \\\n --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com\n\nIf the bucket and trigger regions don't match, you will see an error similar\nto the following: \n\n ERROR: (gcloud.eventarc.triggers.create) INVALID_ARGUMENT: The request was\n invalid: Bucket \"my-bucket-in-eu-multi-region\" location \"eu\" does not match\n trigger location \"europe-west1\". Try again by creating the trigger in \"eu\".\n\n### Pub/Sub\n\nA Pub/Sub trigger connects a Pub/Sub topic to\nan event target. Pub/Sub triggers are only available in\nsingle-region locations and you cannot create a global Eventarc\ntrigger.\n\nAlthough Pub/Sub topics are global and not tied to a\nsingle region, when you create a Pub/Sub trigger, you\nmust specify a region for it using the `--location` flag: \n\n gcloud eventarc triggers create trigger-pubsub \\\n --destination-run-service=hello \\\n --destination-run-region=us-central1 \\\n --location=us-central1 \\\n --event-filters=\"type=google.cloud.pubsub.topic.v1.messagePublished\" \\\n --transport-topic=projects/your-projectid/topics/your-topic\n\nEventarc configures geofencing so that Pub/Sub\nevents persist only in the specified location. You can also use regional\n[Pub/Sub service endpoints](/pubsub/docs/reference/service_apis_overview#service_endpoints)\nto publish to the topic so that all of the data stays in a single region.\n\nWhat's next\n-----------\n\n- To learn how to route events across Google Cloud projects, see the [tutorial](/eventarc/docs/cross-project-triggers)."]]