我们如何获取 DataBricks 工作区 URL 和访问令牌

问题描述 投票:0回答:2

我正在尝试在 CI/CD 集成中进行 Databricks 的端到端实施

例如:使用 Rest API

创建集群、安装库和其他内容

为此,我们需要工作空间的域(工作空间 URL)和令牌(访问令牌)

如何自动获取工作区 url 和访问令牌,以便我可以使用 python 在 REST API 代码中使用它们。

例如:

This the task for create cluster in release pipeline

def cluster_create():
    response = requests.post(
        'https://%s/api/2.0/clusters/create' % (DOMAIN),
        headers={'Authorization': 'Bearer %s' % TOKEN},
        json={
     "cluster_name": "cluster",
     "spark_version": "7.3.x-scala2.12",
    "node_type_id": "Standard_DS3_v2",
    "autotermination_minutes": 10,
    "autoscale" : {
      "min_workers": 1,
      "max_workers": 3
    }
  }
    )
    if response.status_code == 200:
        print(response.json()['cluster_id'])
        os.environ["DBRKS_CLUSTER_ID"] = response.json()["cluster_id"]
        return response.json()['cluster_id']

    else:
        print("Error launching cluster: %s: %s" %
              (response.json()["error_code"], response.json()["message"]))

步骤:

  1. 在构建管道中,我正在使用 ARM 模板创建数据块工作区。
  2. 这是我将在发布管道中用于创建集群的函数。

创建 Data Bricks 工作区后如何在发布管道中获取域或令牌以自动替换创建集群任务中的变量以进行持续集成和持续开发

python azure-devops azure-pipelines azure-databricks
2个回答
0
投票

如果工作区是在同一管道中创建的,并且是通过服务主体或托管标识创建的,那么您可以使用 Azure Active Directory 令牌对工作区进行身份验证。 有关代币生成的详细说明请参阅文档。 请注意,在您的情况下,服务主体或托管身份还不是工作区的一部分,因此您需要按照非工作区用户的服务主体的 API 访问部分中的说明进行操作,您需要在其中生成两个 AAD 令牌.

附注真的,我建议使用 Terraform Databricks 提供程序 - 它将使创建和更新对象变得更简单。我们有使用 terraform 的 CI/CD 的公共示例

原始答案(在问题完善之前):

标准方法是将这些数据放入 Azure DevOps 变量(或变量组)并从管道中使用。

附注我有一个用于笔记本的 CI/CD 管道的示例,您可以在 README 中找到一些说明。


0
投票

您可以将 Databricks URL 和访问令牌作为环境变量安全地存储在 Git 存储库的设置中。在 CI/CD 管道执行期间,您可以检索这些环境变量来配置 Databricks 客户端。

例如,您可以将 Databricks 实例 URL 存储为 DATABRICKS_HOST,将访问令牌存储为 DATABRICKS_TOKEN。在脚本中设置 Databricks 客户端实例时,您可以使用这些环境变量来配置客户端。方法如下:

使用环境变量配置 Databricks 客户端

databricks_client_instance = databricks_client.configured({ "host": {"env": "DATABRICKS_HOST"}, # 存储 Databricks URL 的环境变量 "token": {"env": "DATABRICKS_TOKEN"} # 存储 Databricks 访问令牌的环境变量 })

© www.soinside.com 2019 - 2024. All rights reserved.