Skip to content

Workflow

Source: src/AWS/MWAAServerless/Workflow.ts

An Amazon Managed Workflows for Apache Airflow Serverless workflow — a serverless Airflow DAG defined by a YAML file in S3 and executed by AWS-managed, multi-tenant Airflow infrastructure without provisioning an environment.

Each update to the definition or configuration creates a new workflow version; MWAA Serverless keeps only the latest version actively scheduled.

Basic Workflow

import * as MWAAServerless from "alchemy/AWS/MWAAServerless";
import * as IAM from "alchemy/AWS/IAM";
const role = yield* IAM.Role("WorkflowRole", {
assumeRolePolicyDocument: {
Version: "2012-10-17",
Statement: [{
Effect: "Allow",
Principal: { Service: "airflow-serverless.amazonaws.com" },
Action: ["sts:AssumeRole"],
}],
},
});
const workflow = yield* MWAAServerless.Workflow("Etl", {
definitionS3Location: {
bucket: "my-dag-bucket",
objectKey: "workflows/etl.yaml",
},
roleArn: role.roleArn,
});

Workflow with Logging and Tags

const workflow = yield* MWAAServerless.Workflow("Etl", {
definitionS3Location: {
bucket: "my-dag-bucket",
objectKey: "workflows/etl.yaml",
},
roleArn: role.roleArn,
description: "nightly ETL",
loggingConfiguration: { logGroupName: "/mwaa-serverless/etl" },
tags: { team: "data" },
});