如何在Docker文件中配置Databricks令牌



我有一个docker文件,我想在其中

  1. 下载Databricks CLI
  2. 通过添加主机和令牌来配置CLI
  3. 然后运行一个命中Databricks令牌的python文件

我可以在docker映像中安装CLI,并且我有一个工作的python文件,可以将作业提交给Databricks API,但我不确定如何在docker中配置我的CLI。

这是我的

FROM python
MAINTAINER nope
# Creating Application Source Code Directory
RUN mkdir -p /src
# Setting Home Directory for containers
WORKDIR /src
# Installing python dependencies
RUN pip install databricks_cli
# Not sure how to do this part???
# databricks token kicks off the config via CLI
RUN databricks configure --token
# Copying src code to Container
COPY . /src
# Start Container
CMD echo $(databricks --version)
#Kicks off Pythern Job
CMD ["python", "get_run.py"]

如果我在CLI中执行databricks configure --token,它会提示如下配置:

databricks configure --token
Databricks Host (should begin with https://): 

最好不要这样做,原因有很多:

  1. 这是不安全的-如果以这种方式配置Databricks CLI,它将在容器内生成一个文件,任何有权访问该文件的人都可以读取该文件
  2. 代币有生存时间(默认为90天(-这意味着你需要定期重建你的容器

相反,最好将两个环境变量传递给容器,它们将由databricks命令拾取。如文档中所述,这些是DATABRICKS_HOSTDATABRICKS_TOKEN

databricks configure成功运行时,它会将信息写入文件~/.databrickscfg:

[DEFAULT]
host = https://your-databricks-host-url
token = your-api-token

可以在容器中设置的一种方法是使用启动命令(此处为docker-compose.yml的语法(:

/bin/bash -ic "echo '[DEFAULT]nhost = ${HOST_URL}ntoken = ${TOKEN}' > ~/.databrickscfg"

将您的令牌放在DockerFile中不是很安全。但是,如果你想采用这种方法,你可以使用下面的代码。

RUN export DATABRICKS_HOST=XXXXX && 
export DATABRICKS_API_TOKEN=XXXXX && 
export DATABRICKS_ORG_ID=XXXXX && 
export DATABRICKS_PORT=XXXXX && 
export DATABRICKS_CLUSTER_ID=XXXXX && 
echo "{"host": "${DATABRICKS_HOST}","token": "${DATABRICKS_API_TOKEN}","cluster_id":"${DATABRICKS_CLUSTER_ID}","org_id": "${DATABRICKS_ORG_ID}", "port": "${DATABRICKS_PORT}" }" >> /root/.databricks-connect

请确保使用一个RUN命令运行行中的所有命令否则,DATABRICKS_HOSTDATABRICKS_API_TOKEN等变量可能无法正确传播。

如果您想连接到docker容器中的Databricks集群,您需要更多的配置。您可以在本文中找到所需的详细信息:如何将本地或远程机器连接到Databricks集群

每个用户的个人访问令牌数量限制为600但是通过bash很容易回声;y$(工作区-地区-URL($(CSE-developm-PAT($(现有-CLUSTER-ID($(工作空间或ID(15001〃|数据块连接配置

如果您想使用主机名和访问令牌访问databricks models/download_artifacts,就像在databrickscli 上一样

databricks configure --token --profile profile_name

Databricks主机(应以https://开头(:your_hostname

Token : token

如果您已经创建了配置文件名称并推送了模型,并且只想使用此配置文件访问docker中的模型/工件

在docker文件中添加以下代码

RUN pip install databricks_cli 
ARG HOST_URL
ARG TOKEN
RUN echo "[<profile name>]nhost = ${HOST_URL}ntoken = ${TOKEN}" >> ~/.databrickscfg

#这将在构建后创建带有主机和令牌的.databricksfg文件,方法与使用databricksconfigure命令相同

在docker构建中添加参数HOST_URL和TOKEN

例如

您的主机名=https://adb-5443106279769864.19.azuredatabricks.net/

您的访问令牌=dapi********************53b1-2

sudo docker build -t test_tag --build-arg HOST_URL=<your host name> --build-arg TOKEN=<your access token> .

现在,您可以使用代码中的这个profilenameDatabricks:profile_name访问您的实验。

相关内容

  • 没有找到相关文章

最新更新