
Cloud Composer questions on the Professional Data Engineer exam tend to cluster around two themes: which operator to pick, and how a DAG actually gets kicked off. The triggering question shows up in scenario form a lot, where a business describes some event (a file lands, an upstream job finishes, the clock hits midnight) and you have to map that to the right Airflow mechanism. If you have the three trigger paths memorized cold, those questions become easy points.
Here is how I think about it for the exam.
Every Composer DAG run starts in one of three ways:
That is the full menu. If an exam answer choice hints at something outside those three, like a Cloud Scheduler job pointing directly at a DAG file or a Pub/Sub subscription wired straight into Airflow, treat it with suspicion. The supported mechanisms are cron, UI button, and API call.
Scheduling is the default for most production DAGs. Airflow uses standard cron notation in the schedule_interval argument when you define the DAG. That gives you full flexibility: run daily at 2 AM, every Monday morning, every hour on the 5 minute mark, or any custom cadence you can express in cron syntax. Airflow also supports preset macros like @daily and @hourly for the common cases.
from airflow import DAG
from datetime import datetime
with DAG(
dag_id='daily_warehouse_load',
start_date=datetime(2026, 1, 1),
schedule_interval='0 2 * * *',
catchup=False,
) as dag:
...
For the Professional Data Engineer exam, if a scenario says something like "a batch ETL job that needs to run every night at 2 AM," the answer is almost always a scheduled Composer DAG with a cron expression. No Cloud Function, no manual trigger, no sensor. Just cron.
Every DAG in the Airflow UI hosted inside your Composer environment has a Trigger DAG button next to it. Clicking it starts a run immediately, ignoring the schedule. This is useful for backfills, ad hoc reprocessing, or testing a new DAG before letting it run on its schedule.
You can also trigger manually via the gcloud composer environments run command, which calls the Airflow CLI inside the environment:
gcloud composer environments run my-env \
--location us-central1 \
dags trigger -- my_dag_id
Manual triggers are not really an exam-favorite answer because they are not automation. If the scenario describes a one-off reprocessing task, manual is fine. If the scenario describes anything recurring or event-driven, manual is the wrong choice.
This is the path that shows up most often on scenario questions, because it is the only way to make a DAG react to an external event. Airflow exposes a REST API, and you can hit it from anywhere that can make an authenticated HTTPS call. In practice, the most common pattern on Google Cloud is to put a Cloud Function in front of the API.
The canonical exam architecture looks like this:
That five-step chain is worth committing to memory. The Professional Data Engineer exam loves to test it because it ties together Cloud Storage notifications, Cloud Functions, and Composer in a single question. If you see a scenario about "automatically processing files as they arrive in a bucket," the answer is some variation of that pipeline.
The reason a Cloud Function sits in the middle is that Cloud Storage cannot call the Airflow API directly. The Function is the glue. It also gives you a place to do any preprocessing, filtering, or auth handling before the DAG kicks off.
There is a second pattern for reacting to files that is worth knowing. Instead of an external system triggering the DAG, the DAG itself waits for the file using a sensor operator like GCSObjectExistenceSensor. The DAG runs on a schedule, and the first task is a sensor that blocks until the expected file appears in the bucket.
Sensors are useful when the file arrives on a predictable cadence ("upstream system drops the daily file sometime between 1 AM and 3 AM") and you want the DAG to wait rather than fail. But they consume a worker slot while they wait, so they are not the answer when files arrive at unpredictable times or at high volume. For high-volume, unpredictable arrivals, the Cloud Function plus REST API pattern is cleaner.
Three triggers, in order of how often they appear on the Professional Data Engineer exam:
If you can match a scenario to one of those three in a few seconds, you will move through the Composer questions quickly and have more time for the harder data modeling ones.
My Professional Data Engineer course covers Composer triggering patterns, sensor operators, and the full Cloud Function-to-Airflow integration in the orchestration module, alongside the rest of the Professional Data Engineer exam blueprint.