尝试通过将 aws 凭据作为变量传递给气流宏来使用 boto3 连接到 aws s3

Trying to connect to aws s3 with boto3 by passing aws credentials as variables to airflow macros

我有一个气流连接,如下所示:

我尝试通过以下代码使用 boto3 连接到我的 s3,但没有成功

s3client = boto3.client(
        service_name='s3',
        region_name='us-east-1',
        aws_access_key_id="{{ conn.conn_id.host }}",
        aws_secret_access_key="{{ conn.conn_id.host }}"
    )

如有任何帮助,我们将不胜感激

您的连接配置错误。输入您的 aws_access_key_id 作为登录名,输入 aws_secret_key_id 作为密码。当您生成 AWS 密钥时,您同时获得了访问密钥和秘密密钥——您将同时需要它们。如果您没有密钥,请在 AWS 中重新生成密钥。在此处查看连接详细信息 - Airflow AWS connection

在 Airflow 中,如果需要,您应该使用 S3Hook 生成 boto3 S3 客户端,但请先检查 S3Hook 的功能,看看您是否可以使用它来完成您的任务。在此处查看函数 - S3Hook source code

from airflow.providers.amazon.aws.hooks.s3 import S3Hook
s3client = S3Hook(aws_conn_id=my_conn_id).get_conn()