Mor*_*esh 9 bash azure databricks databricks-cli
我想使用 databricks cli:
databricks clusters list
Run Code Online (Sandbox Code Playgroud)
但这需要一个手动步骤,需要与用户进行交互工作:
databricks configure --token
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在无需手动干预的情况下使用 databricks cli,以便可以将其作为 ci/cd 管道的一部分运行?
正如@usingnamespace 上面和官方文档中提到的:
CLI 0.8.0及以上版本支持环境变量,环境变量设置优先于配置文件中的设置。
DATABRICKS_HOST
DATABRICKS_USERNAME
DATABRICKS_PASSWORD
DATABRICKS_TOKEN
Run Code Online (Sandbox Code Playgroud)
这样,您不仅不会在明文文件 ( ~/.databrickscfg ) 中暴露敏感数据,而且无需向脚本中添加任何更多代码。
以下 bash 脚本自动配置 databricks cli:
echo "configuring databrick-cli authentication"
declare DATABRICKS_URL="https://westeurope.azuredatabricks.net"
declare DATABRICKS_ACCESS_TOKEN="authentication_token_generated_from_databricks_ux"
declare dbconfig=$(<~/.databrickscfg)
if [[ $dbconfig = *"host = "* && $dbconfig = *"token = "* ]]; then
echo "file [~/.databrickscfg] is already configured"
else
if [[ -z "$DATABRICKS_URL" || -z "$DATABRICKS_ACCESS_TOKEN" ]]; then
echo "file [~/.databrickscfg] is not configured, but [DATABRICKS_URL],[DATABRICKS_ACCESS_TOKEN] env vars are not set"
else
echo "populating [~/.databrickscfg]"
> ~/.databrickscfg
echo "[DEFAULT]" >> ~/.databrickscfg
echo "host = $DATABRICKS_URL" >> ~/.databrickscfg
echo "token = $DATABRICKS_ACCESS_TOKEN" >> ~/.databrickscfg
echo "" >> ~/.databrickscfg
fi
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9068 次 |
| 最近记录: |