如何在MWAA的DAG中获取区域名称?能否无需配置文件实现?
在MWAA DAG中无需配置文件获取AWS区域名称的方法
可以实现,无需依赖自定义配置文件,有两种直接的方式获取当前MWAA环境所在的区域名称(如ap-northeast-1):
- 方法一:通过boto3默认会话获取
MWAA的执行环境已经预先配置了对应区域的AWS权限上下文,boto3会自动读取当前环境的默认区域信息,无需额外配置:
import boto3 from airflow.operators.python import PythonOperator from datetime import datetime def fetch_region(): session = boto3.session.Session() region = session.region_name print(f"当前区域:{region}") return region # 在DAG中定义任务 with DAG( dag_id='get_region_dag', schedule_interval=None, start_date=datetime(2023, 1, 1) ) as dag: get_region_task = PythonOperator( task_id='fetch_current_region', python_callable=fetch_region )
- 方法二:读取环境变量
AWS_DEFAULT_REGION
MWAA运行容器中会自动设置AWS_DEFAULT_REGION环境变量,直接读取即可:
import os from airflow.operators.python import PythonOperator from datetime import datetime def fetch_region(): region = os.environ.get('AWS_DEFAULT_REGION') print(f"当前区域:{region}") return region # 在DAG中定义任务 with DAG( dag_id='get_region_dag', schedule_interval=None, start_date=datetime(2023, 1, 1) ) as dag: get_region_task = PythonOperator( task_id='fetch_current_region', python_callable=fetch_region )
两种方法都不需要依赖自定义配置文件,直接利用MWAA环境自带的上下文信息即可获取区域名称。
内容的提问来源于stack exchange,提问作者YOYO
相关产品推荐
相关产品推荐

