在 terraform 中导入现有的数据块用户

import existing databricks user in terraform

尝试使用 Terraform import 导入现有用户,但出现导入错误。详细日志如下

terraform import databricks_user.user user@company.com
2022-01-23T12:28:18.894-0800 [INFO]  Terraform version: 1.1.4
2022-01-23T12:28:18.894-0800 [INFO]  Go runtime version: go1.17.6
2022-01-23T12:28:18.894-0800 [INFO]  CLI args: []string{"terraform", "import", "databricks_user.user", "user@company.com"}
2022-01-23T12:28:18.895-0800 [INFO]  CLI command args: []string{"import", "databricks_user.user", "user@company.com"}
2022-01-23T12:28:18.906-0800 [INFO]  Attempting to use session-derived credentials
2022-01-23T12:28:19.590-0800 [INFO]  Successfully derived credentials from session
2022-01-23T12:28:19.590-0800 [INFO]  AWS Auth provider used: "SSOProvider"
2022-01-23T12:28:21.940-0800 [INFO]  provider: configuring client automatic mTLS
2022-01-23T12:28:21.982-0800 [INFO]  provider.terraform-provider-databricks_v0.4.5: configuring server automatic mTLS: timestamp=2022-01-23T12:28:21.982-0800
2022-01-23T12:28:22.075-0800 [ERROR] AttachSchemaTransformer: No provider config schema available for provider["terraform.io/builtin/terraform"]
2022-01-23T12:28:22.075-0800 [INFO]  ReferenceTransformer: reference not found: "count.index"
2022-01-23T12:28:22.080-0800 [INFO]  provider: configuring client automatic mTLS
2022-01-23T12:28:22.117-0800 [INFO]  provider.terraform-provider-databricks_v0.4.5: configuring server automatic mTLS: timestamp=2022-01-23T12:28:22.117-0800
2022-01-23T12:28:22.209-0800 [WARN]  ValidateProviderConfig from "provider[\"registry.terraform.io/databrickslabs/databricks\"]" changed the config value, but that value is unused
2022-01-23T12:28:22.210-0800 [INFO]  provider.terraform-provider-databricks_v0.4.5: Explicit and implicit attributes: host, token: timestamp=2022-01-23T12:28:22.210-0800
databricks_user.user: Importing from ID "user@company.com"...
2022-01-23T12:28:22.212-0800 [INFO]  provider.terraform-provider-databricks_v0.4.5: Using directly configured PAT authentication: timestamp=2022-01-23T12:28:22.212-0800
2022-01-23T12:28:22.213-0800 [INFO]  provider.terraform-provider-databricks_v0.4.5: Configured pat auth: host=https://company.cloud.databricks.com, token=***REDACTED***: timestamp=2022-01-23T12:28:22.213-0800
2022-01-23T12:28:22.577-0800 [WARN]  provider.terraform-provider-databricks_v0.4.5: /api/2.0/preview/scim/v2/Users/user@company.com:405 - Endpoint not supported.: timestamp=2022-01-23T12:28:22.577-0800
2022-01-23T12:28:22.578-0800 [WARN]  provider.terraform-provider-databricks_v0.4.5: /api/2.0/preview/scim/v2/Users/user@company.com:405 - Endpoint not supported.: timestamp=2022-01-23T12:28:22.578-0800
databricks_user.user: Import prepared!
  Prepared databricks_user for import
databricks_user.user: Refreshing state... [id=user@company.com]
2022-01-23T12:28:22.832-0800 [WARN]  provider.terraform-provider-databricks_v0.4.5: /api/2.0/preview/scim/v2/Users/user@company.com:405 - Endpoint not supported.: timestamp=2022-01-23T12:28:22.832-0800
2022-01-23T12:28:22.833-0800 [WARN]  provider.terraform-provider-databricks_v0.4.5: /api/2.0/preview/scim/v2/Users/user@company.com:405 - Endpoint not supported.: timestamp=2022-01-23T12:28:22.832-0800
2022-01-23T12:28:22.837-0800 [ERROR] vertex "import databricks_user.user result" error: cannot read user: Endpoint not supported.
2022-01-23T12:28:22.837-0800 [ERROR] vertex "databricks_user.user (import id \"user@company.com\")" error: cannot read user: Endpoint not supported.
╷
│ Error: cannot read user: Endpoint not supported.
│ 
│ 
╵

对我做错了什么有什么建议吗?

编辑 - 这是相应的 terraform 资源和提供程序块

resource "databricks_user" "user" {}
provider "databricks" {
  host  = "https://company.cloud.databricks.com"
  token = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

根据 Databricks 提供程序文档,唯一需要的参数是 user_name [1]。所以你用来导入用户的代码块:

resource "databricks_user" "user" {}

无效。不幸的是,Terraform 在导入资源时仍然没有创建您需要的一切,因此您必须提供信息。在你的情况下是:

resource "databricks_user" "user" {
  user_name = "user@company.com"
}

在文档中,导入用户的命令是:

terraform import databricks_user.me <user-id>

确保了解 <user-id> 是否与用户名相同,或者您需要提供 ID。在他们的网站 [2] 上,我可以看到:

<user-id> with the Databricks workspace ID of the user, for example 2345678901234567. To get the user ID, call Get users.

[1] https://registry.terraform.io/providers/databrickslabs/databricks/latest/docs/resources/user

[2]https://docs.databricks.com/dev-tools/api/latest/scim/scim-users.html#get-users