Программное чтение активных подключений Apache Airflow

Я настроил ниже в Apache Airflow Admin --› Connections.

введите здесь описание изображения

Как мне программно прочитать эти значения в моей DAG?

def check_email_requests():
    conn = Connection(conn_id="artnpics_api_calls")
    
    print(conn)
    
    hostname = conn.host
    login_name = conn.login
    login_password = conn.password
    port_number = conn.port
    
    print("hostname = " + hostname + "; Login name: " + login_name + "; password = " + login_password + " ; port number = " + port_number)
    
    request_api = hostname + ":" + port_number
    print("request api " + request_api)
    
    result = requests.get(request_api, auth=(login_name, login_password)).json()
    print(result)
    print("done with check_email_requests")
    
    return False

Вышеупомянутое явно не сработало, и я не смог найти никакой информации о том, как читать из соединений (существует множество статей о том, как создать их программно). Моя цель состоит в том, чтобы программно прочитать информацию о подключении и аутентификации API и вызвать вызов, а не жестко кодировать их.

  • Рональд

person Rhonald    schedule 11.05.2021    source источник


Ответы (1)


Ты можешь сделать:

from airflow.hooks.base import BaseHook
conn = BaseHook.get_connection("artnpics_api_calls")
hostname = conn.host
login_name = conn.login
login_password = conn.password
port_number = conn.port
person Elad    schedule 11.05.2021
comment
Потрясающе, работает как шарм. Спасибо - person Rhonald; 12.05.2021
comment
проверьте stackoverflow.com/a/65873023/14624409, это также может быть полезно для вас - person Elad; 12.05.2021