การอ่านการเชื่อมต่อที่ใช้งาน Apache Airflow โดยทางโปรแกรม

ฉันได้ตั้งค่าด้านล่างใน Apache Airflow Admin --> การเชื่อมต่อ

ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะอ่านค่าเหล่านี้โดยทางโปรแกรมภายใน 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