Membaca koneksi aktif Apache Airflow secara terprogram

Saya telah menyiapkan yang di bawah ini di Apache Airflow Admin --› Connections.

masukkan deskripsi gambar di sini

Bagaimana cara membaca nilai-nilai ini secara terprogram di dalam DAG saya?

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

Cara di atas jelas tidak berhasil, dan saya tidak dapat menemukan informasi apa pun tentang cara membaca dari koneksi (ada banyak artikel tentang cara membuatnya secara terprogram). Tujuan saya adalah membaca koneksi API dan informasi autentikasi secara terprogram dan menjalankan panggilan, daripada mengkodekannya secara keras.

  • Rhonald

person Rhonald    schedule 11.05.2021    source sumber


Jawaban (1)


Anda dapat melakukan:

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
Luar biasa, bekerja dengan sangat baik. Terima kasih - person Rhonald; 12.05.2021
comment
periksa stackoverflow.com/a/65873023/14624409 mungkin juga berguna untuk Anda - person Elad; 12.05.2021