![enter image description here](https://istack.dev59.com/KHZI7.webp)
我在使用Airflow 2.5.0时也遇到了这个错误。
我已经找到了一个解决方法,使用内置的boto3库。
首先,我使用以下参数创建了连接:
连接ID:任何标签(我的情况下是Minio)
连接类型:通用
主机:minio服务器IP和端口
登录:Minio访问密钥
密码:Minio秘密密钥
以下是我的代码:
import boto3
from airflow.hooks.base import BaseHook
conn = BaseHook.get_connection('Minio')
s3 = boto3.resource('s3',
endpoint_url=conn.host,
aws_access_key_id=conn.login,
aws_secret_access_key=conn.password
)
s3client = s3.meta.client
#and then you can use boto3 methods for manipulating buckets and files
#for example:
bucket = s3.Bucket('test-bucket')
# Iterates through all the objects, doing the pagination for you. Each obj
# is an ObjectSummary, so it doesn't contain the body. You'll need to call
# get to get the whole body.
for obj in bucket.objects.all():
key = obj.key
boto
,它可以用于收集存储桶通知,但我正在寻找一种在数据感知的情况下以一般方式触发Airflow管道的解决方案,而不需要在Airflow上编写任何实际访问代码。根据文档,理论上应该是可能的。 - Roland Deschain我也遇到了同样的问题,在网页上输入连接详细信息后无法测试连接。似乎连接在DAG运行期间有效,但在Web UI中测试连接失败,Airflow Amazon提供商的Wiki页面中也发现了同样的问题。
重大变更警告
在此版本的Amazon S3连接提供程序(conn_type="s3")中已删除,因为它始终是AWS连接的别名conn_type="aws"。实际上,唯一的影响是您将无法在Web UI / API中测试连接。为了恢复测试连接的功能,您需要手动将连接类型从Amazon S3(conn_type="s3")更改为Amazon Web Services(conn_type="aws")。