You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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。

具体修复步骤:

  1. 为资源指定Provider
    修改main.tf,在资源块中添加provider = fabric,明确指定使用你配置的microsoft/fabric Provider:

    # Assign workspace to capacity
    resource "microsoftfabric_workspace_capacity_assignment" "workspace_assignment" {
      provider     = fabric
      workspace_id = var.workspace_id
      capacity_id  = var.capacity_id
    }
    
  2. 验证Provider配置
    确认providers.tf中fabric Provider的source和version配置正确,0.1.0-beta.4是该Provider的有效测试版本。

  3. 重新初始化Terraform
    执行以下命令,强制升级并重新下载Provider:

    terraform init -upgrade
    
  4. 检查依赖(可选排查)
    如果问题仍存在,执行命令查看当前依赖的Provider列表:

    terraform providers
    

    确保输出中显示microsoft/fabric,而非hashicorp/microsoftfabric。

内容的提问来源于stack exchange,提问作者JoelG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:22:02