MWAA中通过requirements.txt安装的Airflow Providers未在Web UI显示求助
问题分析与解决方案
MWAA的「管理>Providers」界面仅会展示实例默认预装的Airflow Providers,通过requirements.txt手动安装的第三方/额外Providers不会在此界面显示,这是MWAA的产品特性,并非安装失败(你已通过测试DAG验证安装成功)。
以下是几种便捷查看所有已安装Providers的方法:
方法1:通过DAG任务输出列表
无需额外配置,直接创建一个一次性DAG,通过任务日志查看所有Providers:
BashOperator方式
from airflow.operators.bash import BashOperator from airflow.models import DAG from datetime import datetime with DAG( 'list_all_installed_providers', start_date=datetime(2024, 1, 1), schedule_interval=None, catchup=False ) as dag: list_providers_task = BashOperator( task_id='print_providers_list', bash_command='airflow providers list' )
运行该DAG后,查看任务日志即可获取完整的Providers列表,包括你手动安装的apache-airflow-providers-databricks。
PythonOperator方式
如果你需要更结构化的输出,可以用Airflow内置的ProvidersManager查询:
from airflow.operators.python import PythonOperator from airflow.models import DAG from datetime import datetime from airflow.providers_manager import ProvidersManager def fetch_providers_info(): provider_manager = ProvidersManager() for provider_id, provider_details in provider_manager.providers.items(): print(f"Provider ID: {provider_id} | 版本: {provider_details.version}") with DAG( 'get_detailed_providers_info', start_date=datetime(2024, 1, 1), schedule_interval=None, catchup=False ) as dag: fetch_providers_task = PythonOperator( task_id='get_providers_details', python_callable=fetch_providers_info )
方法2:通过MWAA CLI查询
如果已开启MWAA的CLI访问权限,可以通过AWS命令行工具执行查询:
- 生成CLI令牌:
aws mwaa create-cli-token --name YOUR_MWAA_ENV_NAME
- 使用返回的令牌和WebServerHostname执行命令:
curl -X POST https://<WebServerHostname>/aws_mwaa/cli -H "Authorization: Bearer <CliToken>" -d "airflow providers list"
方法3:查看CloudWatch安装日志
MWAA在实例重启时会生成requirements.txt的安装日志,可在CloudWatch日志组/aws/mwaa/env/YOUR_MWAA_ENV_NAME中搜索requirements_install关键词,日志中会列出所有成功安装的包,包括目标Providers。
内容的提问来源于stack exchange,提问作者theNewfelll
相关产品推荐
相关产品推荐

