在 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
我正在尝试在 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