Terraform关联Fabric容量与工作区时Provider报错求助
使用Terraform将Fabric容量分配至Power BI.com的Fabric工作区时,已成功创建容量和工作区,但关联两者时触发Provider相关错误。已通过az login完成登录,操作账号拥有容量和工作区的访问权限。
错误信息:
Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider hashicorp/microsoftfabric: provider registry registry.terraform.io does not have a provider named
│ registry.terraform.io/hashicorp/microsoftfabric
│
│ All modules should specify their required_providers so that external consumers will get the correct providers when using a module. To see which modules are currently depending on
│ hashicorp/microsoftfabric, run the following command:
│ terraform providers
相关配置文件
main.tf
# Assign workspace to capacity resource "microsoftfabric_workspace_capacity_assignment" "workspace_assignment" { workspace_id = var.workspace_id capacity_id = var.capacity_id }
variables.tf
variable "workspace_id" { description = "The ID of the Fabric workspace" type = string default = "" } variable "capacity_id" { description = "The ID of the Fabric capacity" type = string default = "" }
providers.tf
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } azapi = { source = "Azure/azapi" version = "1.15.0" } fabric = { source = "microsoft/fabric" version = "0.1.0-beta.4" } } } provider "azurerm" { features {} } provider "azapi" { # Configuration options subscription_id = var.subscription_id } provider "fabric" {}
outputs.tf
output "workspace_capacity_assignment_id" { value = microsoftfabric_workspace_capacity_assignment.workspace_assignment.id }
错误核心是资源命名前缀与Provider配置不匹配:Terraform会默认根据microsoftfabric_前缀,去hashicorp/microsoftfabric查找Provider,但你实际声明的是microsoft/fabric Provider,需要明确绑定资源到指定Provider。
具体修复步骤:
为资源指定Provider
修改main.tf,在资源块中添加provider = fabric,明确指定使用你配置的microsoft/fabricProvider:# Assign workspace to capacity resource "microsoftfabric_workspace_capacity_assignment" "workspace_assignment" { provider = fabric workspace_id = var.workspace_id capacity_id = var.capacity_id }验证Provider配置
确认providers.tf中fabricProvider的source和version配置正确,0.1.0-beta.4是该Provider的有效测试版本。重新初始化Terraform
执行以下命令,强制升级并重新下载Provider:terraform init -upgrade检查依赖(可选排查)
如果问题仍存在,执行命令查看当前依赖的Provider列表:terraform providers确保输出中显示
microsoft/fabric,而非hashicorp/microsoftfabric。
内容的提问来源于stack exchange,提问作者JoelG

