Я вижу, что у вас есть идентификатор соединения M_1
, а тип соединения - S3
, поэтому вы можете загрузить его внутри PythonOperator
(или сценария python с именем BashOperator
) с помощью:
from airflow.hooks.s3_hook import S3Hook
def py_op_callable:
hook = S3Hook('M_1')
botocore_credentials = hook.get_credentials()
botocore_credentials.access_key
botocore_credentials.secret_key
botocore_credentials.token
На v1.9.0 кажется, что get_credentials
еще нет.На AwsHook есть только приватный _get_credentials()
, который наследует S3Hook.Если вы уверены, что вставили их в дополнительные параметры, прямой подход:
from airflow.hooks.base_hook import BaseHook
def py_op_callable:
hook = BaseHook('M_1')
extra = hook.get_connection().extra_dejson
key_id = extra.get('aws_access_key_id')
secret_key = extra.get('aws_secret_access_key')
default_region = extra.get('region_name')
return key_id,secret_key,default_region