如何从 Google Cloud Composer 获取 Airflow 数据库凭据

How to get Airflow db credentials from Google Cloud Composer

我当前需要在 Cloud Composer 中为我的 Airflow 实例提供 Airflow 数据库连接凭据。
我在 Airflow 连接 UI 上看到的是 airflow_db mysql airflow-sqlproxy-service.

我想通过 DataGrip 连接到它。
另一件事是,如果我想更改 [core] sql_alchemy_conn 覆盖环境变量,当我将它添加到 Cloud Composer 环境中的 env 变量时,我该怎么做,因为它是受限的。

Cloud Composer 并非旨在提供对数据库的外部访问。但是,您可以连接到 GKE 集群,然后从集群内部访问它。 This doc 展示了如何使用 SQLAlchemy 执行此操作,但您也可以通过 运行 mysql -h $AIRFLOW_SQLPROXY_SERVICE_SERVICE_HOST -u root airflow-db 直接访问 MySQL CLI,而不是在第 6 步中使用 sqlalchemy。

添加到 David 的回答中:

按照 directions 连接到 GKE 集群工作器后,$AIRFLOW_SQLPROXY_SERVICE_SERVICE_HOST 环境变量对我来说不存在。相反,我从安装 SQLAlchemy 时 Composer 创建的 SQLAlchemy 连接字符串环境变量中解析了连接详细信息。

echo $AIRFLOW__CORE__SQL_ALCHEMY_CONN

应该 return 形式的连接字符串:mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>.

从中解析主机、用户和数据库名我可以连接:

mysql -h <host> -u <user> <dbname>