问题标签 [terraform-provider-databricks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
433 浏览

azure - Terraform Azure Databricks 提供程序错误

我需要一些帮助来了解登录 Databricks 的各种形式。我正在使用 Terraform 预配 Azure Databricks 我想知道下面两个代码的区别当我使用选项 1 时,我收到如下所示的错误

选项1:

Databricks 集群创建

Databricks 工作区 RBAC 权限

将成员添加到 Databricks 管理员组

我在应用 TF 时得到的错误如下:

错误是因为下面的这个块吗?

当我点击门户中的 URL 时,我只需要自动登录。那我该怎么做呢?为什么我们需要提供两次 databricks 提供程序,一次在 required_providers 下,一次在提供程序“databricks”下?我已经看到如果我不提供第二个提供商,我会收到错误消息:

0 投票
1 回答
135 浏览

terraform - How to create Azure Databricks Notebook via Terraform?

So I am completely new to the terraform and I found that by using this in terraform main.tf I can create Azure Databricks infrastructure:

And I also found here

That by using this I can even create particular notebook in this Azure DataBricks infrastructure:

But since I am new to this, I am not sure in what order I should put those pieces of code together.

It would be nice if someone could point me to the full example of how to create notebook via terraform on Azure Databricks.

Thank you beforehand!

0 投票
1 回答
75 浏览

amazon-web-services - 如何使用 Terraform 导入 Databricks 挂载?

我想将现有的 Databricks 基础设施导入 Terraform,但我无法导入现有的挂载。我在 AWS 上安装了 S3 存储桶,如下所示:dbfs:/mnt/copyprod. 根据 databricks 提供者的官方文档,这个命令应该可以工作:

$ terraform import databricks_mount.this <mount_name>

我已经创建了适当的资源块

但是当我尝试运行terraform import databricks_mount.copyprod copyprod适用于其他资源的 command 时,我总是遇到同样的错误:

这是什么“名字的价值”?我应该在哪里指定它?据我了解,无需在资源块中定义参数即可导入,因为它只更新.tfstate文件,但即使我这样做(例如定义namebucket_name),错误总是相同的。我也尝试过<mount_name>以不同的风格通过,但没有运气。我怎样才能使这项工作?

与 Databricks 的连接相当正确,因为我可以导入其他资源,例如集群或笔记本。我正在使用 Terraform v1.0.9 和 Databricks 提供程序 v0.4.2。

0 投票
1 回答
113 浏览

amazon-web-services - Terraform Databricks AWS 实例配置文件-“未为提供商配置身份验证”

我正在尝试使用文档中的示例代码创建一个 databricks 实例配置文件

Terraform 可以成功生成计划,但是当我尝试应用它时,它给了我这个错误:

我在我的 terraform tfvars 文件中为数据块设置了用户名/密码身份验证,这很有效 - 它能够实际提供工作区,但在创建实例配置文件时失败。

感谢任何关于我做错了什么的意见。

0 投票
1 回答
62 浏览

amazon-web-services - 错误:Databricks API 要求您设置“主机”属性

相关问题:Terraform Databricks AWS 实例配置文件-“未为提供者配置身份验证”

在解决了该问题中的错误并继续之后,我开始在多个不同的操作(创建 databricks 实例配置文件、查询 terraform databricks 数据源等)中遇到以下databricks_current_user错误databricks_spark_version

Error: cannot create instance profile: Databricks API (/api/2.0/instance-profiles/add) requires you to set `host` property (or DATABRICKS_HOST env variable) to result of `databricks_mws_workspaces.this.workspace_url`. This error may happen if you're using provider in both normal and multiworkspace mode. Please refactor your code into different modules. Runnable example that we use for integration testing can be found in this repository at https://registry.terraform.io/providers/databrickslabs/databricks/latest/docs/guides/aws-workspace

我能够在 Databricks 工作区管理控制台中手动创建实例配置文件,并且能够在其中创建集群并运行笔记本。

相关代码:

0 投票
0 回答
37 浏览

terraform - 每次作业名称相同时,terraform databricks_job 都不会启动

terraform 未运行 databricks_job。

如果我删除作业并运行 terraform,它正在创建作业/开始。是因为相同的职位名称吗?我们想从 Airflow 触发这个工作,所以我们希望保持工作名称不变。

此外,terraform apply不显示创建作业的日志。

更新:使用现有集群的原因是,我们希望将同一个集群依次用于多个 Spark 作业。

示例代码:

0 投票
0 回答
38 浏览

amazon-web-services - Databricks 实例配置文件创建失败 - “AWS 错误:您无权执行此操作”

我正在尝试创建一个 databricks 实例配置文件以与先前配置的工作区一起使用,并在运行时收到以下错误terraform apply

这是我解码编码授权失败消息时看到的内容:

我正在尝试遵循databricks 文档

这是相关的 terraform 代码片段:

任何输入将不胜感激。

0 投票
0 回答
29 浏览

terraform - Databricks Terraform Provider - 基于名称的匹配?

我一直在尝试将我团队的一些工作流程从利用Databricks Labs DBX进行作业部署转换为利用 Terraform 提供程序。我注意到的一个区别是两者之间的提供者行为不匹配。DBX 将尝试根据其名称匹配作业,而 Terraform 将仅根据其 ID 匹配它们。这意味着要迁移我的作业,我必须根据 ID 手动刷新每个作业定义。

DBX 是一个无状态部署工具,它专门使用作业名称来匹配部署和配置更新,并且对其他一些属性具有相当强大的基于名称的支持,这对我们的部署环境可能很有用。可以在此处找到该列表:https ://dbx.readthedocs.io/en/latest/named_properties.html

在我们的环境中,我希望使用纯 terraform 而不是 terraform 和 DBX 来促进这个 repo 结构:

  • base_repo
    • scripts/tf(通过 Terraform 配置工作区)
    • src/*/scala/*(代码文件)
  • project_repo
    • scripts/tf(仅限作业部署,替换 scripts/dbx)
    • src/*/scala/* (单个作业的代码)

然而,缺乏基于名称的匹配似乎迫使我要么使用 databricks cli 获取作业、配置文件等的列表,并通过包装脚本将它们作为变量传递给project_repo terraform 脚本,要么继续使用 dbx对于那些项目。

有没有一种好方法可以单独使用 terraform 提供程序来促进我正在寻找的东西?

0 投票
1 回答
43 浏览

terraform - 无法使用 Terraform 从系统组中销毁 Azure Databricks 组成员身份

我正在尝试使用databrickslabs/databricks提供程序使用 Terraform 管理我的 Azure Databricks 用户和组。像这样的东西:

这一切都是通过我的 Azure 服务主体部署的,作为更大的代码库的一部分,该代码库还提供了 Databricks 工作区……而且效果很好。

但是,如果我将用户添加到 Databricks 内置组之一(adminsusers),而部署工作,terraform destroy- 再次,作为我的服务主体运行 - 尝试销毁databricks_group_member.membership资源时出现以下错误:

错误:无法删除组成员:PERMISSION_DENIED:请求用户“0a19c919-7b10-499d-acd4-057944582a41”没有编辑系统组的权限。

为什么我的服务主体可以定义组成员身份,但不能删除它?是否有一些特殊的 Databricks 权限我可以授予我的服务主体——当我创建工作区时——这将解决这个问题?否则,我必须手动terraform state rm对资源进行操作才能destroy通过。

0 投票
1 回答
91 浏览

azure-active-directory - 在带有 Terraform 的 Azure Databricks 中使用 AAD 直通挂载 ADLS gen2

我正在尝试使用 Databricks Terraform 提供程序通过 Azure Active Directory 直通将我的 ADLS gen2 存储容器挂载到 DBFS 中。我正在按照此处此处的说明进行操作,但是当 Terraform 尝试部署挂载资源时出现以下错误:

错误:找不到 ADLS Gen2 令牌

我的 Terraform 代码如下所示(与提供程序文档中的示例非常相似),我正在使用 Azure 服务主体进行部署,该主体在同一模块中创建 Databricks 工作区:

(为了清楚起见,azurerm_storage_container.data是一组名称为 from 的存储容器var.storage_containers,它们是在azurerm_storage_accountwith name中创建的var.sa_name;因此是 URI。)

我觉得这个错误是由于我的基本误解,而不是简单的遗漏。我的基本假设是,我可以通过 AAD 直通为工作区安装存储容器,以便在我部署整个基础架构时方便。也就是说,每当用户使用工作空间时,任何新的直通集群都将能够使用这些挂载而无需设置。

我可以按照 AAD 直通说明手动安装存储容器:启动启用直通的高并发集群,然后使用dbutils.fs.mount. 这是在使用我的用户身份(而不是服务主体)登录到 Databricks 工作区时。这是问题的根源吗?服务主体是否不适合此任务?

(有趣的是,如果我尝试使用未启用直通的集群访问手动创建的挂载上的文件,Databricks 运行时会给我完全相同的错误。)