Amazon MWAA Serverless (Managed Workflows)

Amazon MWAA Serverless provides a serverless execution environment for Apache Airflow workflows. Use the operators below to manage MWAA Serverless workflow runs.

Create a Workflow

To create an Amazon MWAA Serverless workflow, use MwaaServerlessCreateWorkflowOperator.

tests/system/amazon/aws/example_mwaa_serverless.py[source]

create_workflow = MwaaServerlessCreateWorkflowOperator(
    task_id="create_workflow",
    workflow_name=bucket_name,
    definition_s3_location={"Bucket": bucket_name, "ObjectKey": "workflow.yaml"},
    role_arn=role_arn,
)

Start a Workflow Run

To start a new execution of an MWAA Serverless workflow, use MwaaServerlessStartWorkflowRunOperator.

tests/system/amazon/aws/example_mwaa_serverless.py[source]

start_workflow = MwaaServerlessStartWorkflowRunOperator(
    task_id="start_workflow",
    workflow_arn=workflow_arn,
)

Reference

Wait for a Workflow Run

To wait for an Amazon MWAA Serverless workflow run to complete, use MwaaServerlessWorkflowRunSensor.

tests/system/amazon/aws/example_mwaa_serverless.py[source]

wait_for_run = MwaaServerlessWorkflowRunSensor(
    task_id="wait_for_run",
    workflow_arn=workflow_arn,
    run_id=start_workflow.output,
    poke_interval=30,
    timeout=600,
)

Update a Workflow

To update an existing Amazon MWAA Serverless workflow, use MwaaServerlessUpdateWorkflowOperator.

tests/system/amazon/aws/example_mwaa_serverless.py[source]

update_workflow = MwaaServerlessUpdateWorkflowOperator(
    task_id="update_workflow",
    workflow_arn=workflow_arn,
    definition_s3_location={"Bucket": bucket_name, "ObjectKey": "workflow.yaml"},
    role_arn=role_arn,
    description="Updated system test workflow",
)

Stop a Workflow Run

To stop a running Amazon MWAA Serverless workflow run, use MwaaServerlessStopWorkflowRunOperator.

tests/system/amazon/aws/example_mwaa_serverless.py[source]

stop_workflow_run = MwaaServerlessStopWorkflowRunOperator(
    task_id="stop_workflow_run",
    workflow_arn=workflow_arn,
    run_id=start_workflow_2.output,
)

Delete a Workflow

To delete an Amazon MWAA Serverless workflow, use MwaaServerlessDeleteWorkflowOperator.

tests/system/amazon/aws/example_mwaa_serverless.py[source]

delete_workflow = MwaaServerlessDeleteWorkflowOperator(
    task_id="delete_workflow",
    workflow_arn=workflow_arn,
    trigger_rule=TriggerRule.ALL_DONE,
)

Was this entry helpful?