以编程方式读取 Apache Airflow 活动连接

Rho*_*ald 5 python 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
Run Code Online (Sandbox Code Playgroud)

上面的方法显然不起作用,而且我找不到任何有关如何从连接中读取内容的信息(有很多关于如何以编程方式创建连接的文章)。我的目标是以编程方式读取 API 连接和身份验证信息并调用该调用,而不是对它们进行硬编码。

  • 罗纳德

Ela*_*lad 5

你可以做:

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
Run Code Online (Sandbox Code Playgroud)

  • 检查 /sf/answers/4611111641/ 它可能对你也有用 (2认同)