https://github.com/hupe1980/cdk-mwaa
This project provides an AWS CDK construct library for creating and managing Amazon Managed Workflows for Apache Airflow (MWAA) environments.
https://github.com/hupe1980/cdk-mwaa
airflow aws-cdk mwaa
Last synced: about 2 months ago
JSON representation
This project provides an AWS CDK construct library for creating and managing Amazon Managed Workflows for Apache Airflow (MWAA) environments.
- Host: GitHub
- URL: https://github.com/hupe1980/cdk-mwaa
- Owner: hupe1980
- License: mit
- Created: 2025-03-09T09:58:54.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-04-17T00:26:48.000Z (6 months ago)
- Last Synced: 2025-04-17T11:48:36.159Z (6 months ago)
- Topics: airflow, aws-cdk, mwaa
- Language: TypeScript
- Homepage:
- Size: 122 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cdk-mwaa
This project provides an AWS CDK construct library for creating and managing Amazon Managed Workflows for Apache Airflow (MWAA) environments.
## Features
- Create and manage MWAA environments
- Configure environment properties such as webserver access mode, Airflow version, environment class, and more
- Validate and set default values for environment properties
- Automatically create and configure necessary AWS resources such as S3 buckets and VPCs## Installation
To use this construct library in your AWS CDK project, add it as a dependency:
```sh
npm install cdk-mwaa
# or
yarn add cdk-mwaa
```## Usage
Here is an example of how to use the `cdk-mwaa` construct library in your AWS CDK project:
```typescript
import * as path from 'node:path';
import * as cdk from 'aws-cdk-lib';
import * as mwaa from 'cdk-mwaa';const app = new cdk.App();
const stack = new cdk.Stack(app, 'MwaaStack');const dagStorage = new mwaa.DagStorage(stack, 'MyMwaaDagStorage', {
bucketName: 'my-mwaa-dag-storage',
dagsOptions: {
localPath: path.join(__dirname, 'dags'),
s3Path: 'dags/',
},
// additional configuration options...
});new mwaa.Environment(stack, 'MyMwaaEnvironment', {
name: 'my-mwaa-environment',
dagStorage,
airflowVersion: '2.10.3',
sizing: mwaa.Sizing.mw1Micro(),
// additional configuration options...
});app.synth();
```## Enabling Secrets Backend
To enable the secrets backend for your MWAA environment, you can use the `enableSecretsBackend` method. This allows you to securely manage secrets and environment variables.
Here is an example of how to enable the secrets backend in your MWAA environment:
```typescript
import * as cdk from 'aws-cdk-lib';
import * as mwaa from 'cdk-mwaa';const app = new cdk.App();
const stack = new cdk.Stack(app, 'MwaaStack');const dagStorage = new mwaa.DagStorage(stack, 'MyMwaaDagStorage', {
bucketName: 'my-mwaa-dag-storage',
// additional configuration options...
});const environment = new mwaa.Environment(stack, 'MyMwaaEnvironment', {
name: 'my-mwaa-environment',
dagStorage,
airflowVersion: '2.10.3',
sizing: mwaa.Sizing.mw1Micro(),
// additional configuration options...
});// Enabling Secrets Backend
environment.enableSecretsBackend();app.synth();
```## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.