在 MWAA 中设置 PYTHONPATH

Set PYTHONPATH in MWAA

我正在尝试在 MWAA 上的 dag 中使用本地模块。

文件夹结构如下:

.
├── __init__.py
├── dags
│   ├── __init__.py
│   └── my_dag
│      ├── __init__.py
│      └── dag.py
│   └── utils
│      ├── __init__.py
│      └── file.py
│      └── secrets.py
│      └── date.py

我尝试通过导入它们来使用 ./dags/utils/secrets 中的函数:

from dags.utils.secrets import get_secret

在本地,我已经能够通过将环境变量 PYTHONPATH 设置为 usr/local/airflow

来使其工作

这是最好的方法吗?如果不是,我怎样才能让它在 MWAA 上运行?

谢谢,

Locally, I've been able to make it works by setting environment variable PYTHONPATH to usr/local/airflow

Is it the best way ? If not how can I make it works on MWAA ?

将 Airflow 部署到 MWAA 环境时,您没有明确设置 PYTHONPATH 环境变量。

I try to use functions from ./dags/utils/secrets by importing them like :

from dags.utils.secrets import get_secret

调整 Python import 语句相对于 MWAA 环境的 DAGs 文件夹。例如,如果 DAGs 文件夹为 s3://<bucket>/dags,则导入语句将为:

from utils.secrets import get_secret

DAG 文件夹示例:

s3://<bucket>/dags/__init__.py
s3://<bucket>/dags/my_dag/__init__.py
s3://<bucket>/dags/my_dag/dag.py
s3://<bucket>/dags/utils/__init__.py
s3://<bucket>/dags/utils/file.py
s3://<bucket>/dags/utils/secrets.py
s3://<bucket>/dags/utils/date.py