簡體   English   中英

嘗試通過將 aws 憑據作為變量傳遞給 airflow 宏來使用 boto3 連接到 aws s3

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

我有一個 airflow 連接,如下所示:

  • 連接 ID: my_conn_id
  • 連接類型: s3
  • 主機: my_host
  • 登錄: abcd

我嘗試使用以下代碼使用 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 連接

在 Airflow 中,如果需要,您應該使用 S3Hook 生成 boto3 S3 客戶端,但請先查看 S3Hook 的功能,看看是否可以使用它來完成任務。 在此處查看函數 - S3Hook 源代碼

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM