首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Terraform创建Azure数据库笔记本?

如何通过Terraform创建Azure数据库笔记本?
EN

Stack Overflow用户
提问于 2021-12-13 10:58:55
回答 1查看 479关注 0票数 1

所以我对terraform完全陌生,我发现通过在terraform main.tf中使用它,我可以创建Azure基础设施:

代码语言:javascript
复制
resource "azurerm_databricks_workspace" "bdcc" {
  depends_on = [
    azurerm_resource_group.bdcc
  ]

  name = "dbw-${var.ENV}-${var.LOCATION}"
  resource_group_name = azurerm_resource_group.bdcc.name
  location = azurerm_resource_group.bdcc.location
  sku = "standard"

  tags = {
    region = var.BDCC_REGION
    env = var.ENV
  }
}

我还找到了这里

通过使用它,我甚至可以在这个Azure DataBricks基础结构中创建特定的笔记本:

代码语言:javascript
复制
resource "databricks_notebook" "notebook" {
  content_base64 = base64encode(<<-EOT
    # created from ${abspath(path.module)}
    display(spark.range(10))
    EOT
  )
  path = "/Shared/Demo"
  language = "PYTHON"
}

但是,由于我是新手,所以我不确定应该按照什么顺序将这些代码放在一起。

如果有人能告诉我如何在上通过terraform创建笔记本的完整例子,那就太好了。

事先谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-13 13:16:28

通常,您可以将这些对象按任何顺序放置-- Terraform的一项任务是检测对象之间的依赖关系,并以正确的顺序创建/更新它们。例如,您不需要在depends_on资源中使用azurerm_databricks_workspace,因为Terraform会在创建工作区之前发现它需要资源组,因此工作区创建将遵循资源组的创建。如果可能的话,Terraform正在尝试在并行中进行修改。

但正因为如此,当您将工作区资源与工作区对象(例如,笔记本、集群等)一起使用时,它会变得更加复杂。由于没有明确的依赖关系,Terraform将尝试在创建工作区的同时创建笔记本,但由于工作区不存在,它将失败--通常您会收到有关身份验证错误的消息。

解决方案是在笔记本和工作区之间有显式的依赖关系,另外还需要配置Databricks提供程序的身份验证以指向新创建的工作区(用户和服务主体身份验证之间存在差异--您可以在docs中找到更多信息)。最后,您的代码将如下所示:

代码语言:javascript
复制
resource "azurerm_databricks_workspace" "bdcc" {
  name = "dbw-${var.ENV}-${var.LOCATION}"
  resource_group_name = azurerm_resource_group.bdcc.name
  location = azurerm_resource_group.bdcc.location
  sku = "standard"

  tags = {
    region = var.BDCC_REGION
    env = var.ENV
  }
}

provider "databricks" {
  host = azurerm_databricks_workspace.bdcc.workspace_url
}

resource "databricks_notebook" "notebook" {
  depends_on = [azurerm_databricks_workspace.bdcc]
  ...
}

不幸的是,没有办法将depends_on放在提供者级别,因此您需要将其放入与工作区一起创建的每个Databricks资源中。通常,最佳实践是为工作区创建一个单独的模块&为Databricks工作区中的对象设置单独的模块。

我建议阅读一些关于地形的书或文件。例如,Terraform: Up & Running是非常好的介绍

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70333546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档