我想在初始化脚本中使用一个databricks secret。我可以用ENVVAR={{/secrets/myscope/mysecret}}
手动设置一个环境变量,然后在初始化脚本中使用ENVVAR。但是,这样做的话,我必须在每个集群和任何新集群上手动设置该环境变量,这在我的场景中不起作用。
理想情况下,我想用集群策略来管理它,但我没有看到那里可用。我也试图有一个单独的初始化脚本与export ENVVAR="{{secrets/myscope/mysecret}}"
但是当我尝试回显ENVVAR时,它没有返回任何东西,所以我认为它失败了。
有谁知道我怎么才能做到这一点吗?
谢谢垫
你是在正确的轨道上使用一个初始化脚本,但你不能使用正常的export
,因为那时变量将只适用于初始化脚本子进程。
相反,在初始化脚本中使用以下行来全局设置环境变量:
sudo echo AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_HERE >> /etc/environment
这将写入集群的environment
文件,该文件可从集群上的任何子进程读取。
更好的办法:比在init脚本中设置secret更好的方法是直接在代码中使用Databricks secrets API,例如:
dbutils.secrets.get(scope="myscope", key="mysecret")
阅读更多:https://docs.databricks.com/dev-tools/databricks-utils.html#dbutils-secrets