如何配置Airflow RedshiftDataOperator的AWS连接?
RedshiftDataOperator 所需的 Airflow 连接配置说明
你遇到的UnrecognizedClientException错误,核心原因是原有的redshift_default是Postgres类型连接,而RedshiftDataOperator依赖AWS类型连接,两者凭证格式不兼容导致请求无效。
以下是RedshiftDataOperator要求的连接配置步骤:
1. 创建/配置AWS类型连接
在Airflow UI的「Admin > Connections」页面,创建或修改连接:
- Conn Type:必须选择「Amazon Web Services」(不要选Postgres)
- Conn Id:可自定义(比如
aws_redshift_data,也可覆盖原redshift_default但建议分开管理) - Login:填写AWS Access Key ID(如果使用IAM用户凭证)
- Password:填写AWS Secret Access Key(对应上面的Access Key ID)
- Extra:以JSON格式补充额外配置,必填项为AWS区域(如果Operator参数没指定
region):
若使用IAM角色(如Airflow所在服务器的实例角色、K8s Pod角色),可留空Login和Password,Airflow会自动从环境中获取角色凭证,Extra仍需指定区域。{"region_name": "ap-southeast-1"}
2. 权限要求
使用的AWS凭证(IAM用户/角色)必须具备Redshift Data API相关权限,至少包含:
redshift-data:ExecuteStatementredshift-data:GetStatementResult- 对应Redshift集群的访问权限(如
redshift:DescribeClusters)
3. 调整任务代码
将aws_conn_id改为你配置的AWS类型连接ID,示例:
redshift_data_task = RedshiftDataOperator( task_id='redshift_data_task', database='rds', region='ap-southeast-1', aws_conn_id='aws_redshift_data', # 替换为你的AWS连接ID sql=""" call some_procedure(); """ )
内容的提问来源于stack exchange,提问作者Azhar Izzannada E
相关产品推荐
相关产品推荐

