根據氣流連接管理頁面,我們可以使用環境變數來創建連接:
export AIRFLOW_CONN_MY_PROD_DATABASE='my-conn-type://login:password@host:port/schema?param1=val1¶m2=val2'
所以,我下載了官方的docker-compose.yml:
$ curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.2.0/docker-compose.yaml'
并添加了如下連接的環境變數:
...
47 image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.2.0}
48 # build: .
49 environment:
50 &airflow-common-env
51 AIRFLOW_CONN_MY_PROD_DB: my-conn-type://login:password@host:port/schema?param1=val1¶m2=val2
52 AIRFLOW__CORE__EXECUTOR: CeleryExecutor
...
然后,我使用加載所有容器docker-compose up并訪問airflow-worker服務:
$ docker-compose exec airflow-worker /bin/bash
并查看所有連接串列:
airflow@52d9c6ab9309:/opt/airflow$ airflow connections list
但它說:
No data found
我錯過了什么嗎?
uj5u.com熱心網友回復:
Airflow 只列出來自底層 Metastore 的連接。因此,來自環境變數或其他機密后端(例如 Vault)的連接將不會顯示在 Airflow UI 中/由 CLI 列出。
要檢查連接是否有效,您可以打開 Python 終端并運行:
from airflow.hooks.base import BaseHook
conn = BaseHook.get_connection("my_prod_db")
# now you can print e.g. print(conn.host)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/340968.html
