Bird
Raised Fist0
Apache Airflowdevops~5 mins

Manual triggers and parameters in Apache Airflow - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a manual trigger in Airflow?
A manual trigger is when you start a workflow (DAG) by clicking a button in the Airflow UI instead of waiting for a scheduled time.
Click to reveal answer
beginner
How can you pass parameters when manually triggering a DAG in Airflow?
You can pass parameters by entering a JSON object in the 'Trigger DAG' dialog box in the Airflow UI before starting the DAG.
Click to reveal answer
beginner
What is the purpose of parameters in a manually triggered DAG?
Parameters let you customize the behavior of the DAG run, like choosing which data to process or setting options for tasks.
Click to reveal answer
intermediate
How do you access parameters inside a DAG's Python code?
You access parameters using the 'dag_run.conf' dictionary inside your task's Python function.
Click to reveal answer
beginner
Why is it useful to use manual triggers with parameters in Airflow?
It allows you to run workflows on demand with specific settings, making your workflows flexible and interactive.
Click to reveal answer
How do you start a DAG manually in Airflow?
ARestart the Airflow server
BWait for the scheduled time
CClick the 'Trigger DAG' button in the Airflow UI
DRun a shell script outside Airflow
What format should parameters be in when manually triggering a DAG?
AYAML
BXML
CPlain text
DJSON
Where do you find the parameters inside your DAG code?
Atask_instance.xcom_pull()
Bdag_run.conf
Cos.environ
Dairflow.cfg
What happens if you trigger a DAG manually without parameters?
AThe DAG runs with default settings
BThe DAG runs twice
CAirflow throws an error
DThe DAG will not run
Why use manual triggers with parameters?
ATo customize runs on demand
BTo automate workflows only
CTo schedule DAGs in the future
DTo stop running DAGs
Explain how to manually trigger a DAG with parameters in Airflow.
Think about the steps you take in the Airflow web interface.
You got /5 concepts.
    Describe how parameters passed during manual trigger affect the DAG run.
    Consider how parameters change what the DAG does.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of manually triggering a DAG in Airflow?
      easy
      A. To stop a running DAG
      B. To schedule a DAG to run automatically at a set time
      C. To delete a DAG from Airflow
      D. To start a workflow immediately with optional custom parameters

      Solution

      1. Step 1: Understand manual trigger concept

        Manual triggers allow users to start a workflow whenever they want, not waiting for a schedule.
      2. Step 2: Recognize parameter use

        Manual triggers can include parameters to customize the run, making the workflow flexible.
      3. Final Answer:

        To start a workflow immediately with optional custom parameters -> Option D
      4. Quick Check:

        Manual trigger = immediate start + parameters [OK]
      Hint: Manual trigger means start now, not later [OK]
      Common Mistakes:
      • Confusing manual trigger with scheduled runs
      • Thinking manual trigger stops a DAG
      • Assuming manual trigger deletes DAG
      2. Which of the following is the correct way to access a parameter named 'user_id' passed during a manual trigger inside a DAG task?
      easy
      A. user_id = dag_run.conf.get('user_id')
      B. user_id = dag_run.conf['user_id']
      C. user_id = dag_run.params['user_id']
      D. user_id = dag_run.get('user_id')

      Solution

      1. Step 1: Recall parameter access method

        Parameters passed during manual trigger are accessed via dag_run.conf dictionary.
      2. Step 2: Use safe access method

        Using dag_run.conf.get('user_id') safely returns the value or None if missing, avoiding errors.
      3. Final Answer:

        user_id = dag_run.conf.get('user_id') -> Option A
      4. Quick Check:

        Use dag_run.conf.get() to read parameters [OK]
      Hint: Use .conf.get() to safely get parameters [OK]
      Common Mistakes:
      • Using square brackets without .get() causing KeyError
      • Using non-existent dag_run.params
      • Calling dag_run.get() which is invalid
      3. Given this DAG task code snippet inside a PythonOperator:
      def greet(**context):
          name = context['dag_run'].conf.get('name', 'Guest')
          print(f"Hello, {name}!")
      What will be printed if the DAG is manually triggered with parameters {'name': 'Alice'}?
      medium
      A. Hello, Guest!
      B. Hello, Alice!
      C. Hello, None!
      D. Error: 'name' not found

      Solution

      1. Step 1: Understand parameter retrieval

        The code uses dag_run.conf.get('name', 'Guest') which returns 'Alice' if passed, else 'Guest'.
      2. Step 2: Apply given parameters

        Since 'name' is provided as 'Alice', the print statement outputs "Hello, Alice!".
      3. Final Answer:

        Hello, Alice! -> Option B
      4. Quick Check:

        Parameter 'name' passed = 'Alice' printed [OK]
      Hint: Default used only if parameter missing [OK]
      Common Mistakes:
      • Ignoring default value and expecting error
      • Assuming parameter is missing
      • Confusing print output with variable name
      4. You wrote this code inside a DAG task:
      def process(**kwargs):
          param = kwargs['dag_run'].conf['param']
          print(param)
      When manually triggering the DAG without passing 'param', what happens?
      medium
      A. Raises KeyError exception
      B. Prints empty string
      C. Prints None
      D. Prints 'param'

      Solution

      1. Step 1: Analyze parameter access method

        Accessing dag_run.conf['param'] without .get() causes KeyError if 'param' is missing.
      2. Step 2: Understand missing parameter effect

        Since 'param' is not passed, the code raises KeyError and does not print anything.
      3. Final Answer:

        Raises KeyError exception -> Option A
      4. Quick Check:

        Missing key with [] causes KeyError [OK]
      Hint: Use .get() to avoid KeyError on missing params [OK]
      Common Mistakes:
      • Expecting None or empty string instead of error
      • Assuming print outputs 'param' string
      • Not realizing [] access throws error
      5. You want to manually trigger a DAG that processes orders. The DAG expects a parameter 'order_id'. You want to ensure the DAG uses 'unknown' if 'order_id' is missing. Which code snippet inside the DAG task correctly implements this?
      hard
      A. order_id = dag_run.conf['order_id'] or 'unknown'
      B. order_id = dag_run.conf['order_id'] if dag_run.conf else 'unknown'
      C. order_id = dag_run.conf.get('order_id', 'unknown')
      D. order_id = dag_run.conf.get('order_id') or 'unknown'

      Solution

      1. Step 1: Understand default parameter handling

        Using dag_run.conf.get('order_id', 'unknown') returns 'order_id' if present, else 'unknown'.
      2. Step 2: Compare options for correctness

        A fails with KeyError if missing. B checks if conf exists (empty {} is falsy), but if other parameters present conf is truthy causing KeyError. C works for missing but overrides falsy values like empty string. D is clean, safe, and handles all cases correctly.
      3. Final Answer:

        order_id = dag_run.conf.get('order_id', 'unknown') -> Option C
      4. Quick Check:

        Use .get(key, default) for safe defaults [OK]
      Hint: Use .get(key, default) to set fallback values [OK]
      Common Mistakes:
      • Using [] without checking key existence
      • Using or without default in .get()
      • Overcomplicating with if-else instead of .get()
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard