根據氣流連接管理頁面,我們可以使用環境變量來創建連接:
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
我錯過了什麼嗎?
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句