我在 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 连接和身份验证信息并调用该调用,而不是对它们进行硬编码。
你可以做:
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)