要在Airflow用户界面中隐藏Airflow连接的密码,并且在保存连接时无法连接到Slack,可以采取以下解决方法:
from airflow.models import Variable
Variable.set("slack_password", "your_slack_password")
然后,在Airflow连接中引用该变量,而不是直接引用密码。例如,对于Slack连接,可以使用以下代码:
from airflow.models import Connection
slack_connection = Connection(
conn_id="slack_connection",
conn_type="http",
host="slack.com",
password="{{ var.value.slack_password }}"
)
session = settings.Session()
session.add(slack_connection)
session.commit()
这样,密码将以变量的方式存储,而不会在Airflow用户界面中可见。
extra
参数中的do_xcom_push
为False
来实现。例如:from airflow.models import Connection
slack_connection = Connection(
conn_id="slack_connection",
conn_type="http",
host="slack.com",
password="{{ var.value.slack_password }}",
extra='{"do_xcom_push": false}'
)
session = settings.Session()
session.add(slack_connection)
session.commit()
这样,当任务尝试连接到Slack时,将不会尝试将结果推送到XCom。
通过以上方法,可以在Airflow中隐藏连接密码并禁用Slack连接的尝试。
上一篇:Airflow连接密码解密