在 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
尝试使用 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