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

Golang使用CDKTF导入azurerm provider报错‘undefined: azurerm’求助

问题:CDKTF Go代码中出现"undefined: azurerm"错误

我是Golang新手,正尝试使用CDKTF在Azure创建基础设施,编写了一段创建资源组的代码:

import (
    "github.com/aws/constructs-go/constructs/v10"
    jsii "github.com/aws/jsii-runtime-go"
    "github.com/hashicorp/terraform-cdk-go/cdktf"
)

func NewMyStack(scope constructs.Construct, id string) cdktf.TerraformStack {
    stack := cdktf.NewTerraformStack(scope, &id)

    //Initialise the provider
    azurerm.NewAzurermProvider(stack, jsii.String("azurerm"), &azurerm.AzurermProviderConfig{
        Features: &azurerm.AzurermProviderFeatures{},
        //Subscription:    jsii.String(""), //Just for an example, login credential is coming from ARM* environment variables
    })
    //Create a resource group
    rg := azurerm.NewResourceGroup(stack, jsii.String("test_rg"), &azurerm.ResourceGroupConfig{
        //Name:     n.ResourceGroupOutput(), //GOTO 26
        Name:     jsii.String("test-rg"),
        Location: jsii.String("westeurope"),
    })

    //Output stuff
    cdktf.NewTerraformOutput(stack, jsii.String("names"), &cdktf.TerraformOutputConfig{
        Value: &[]*string{rg.Name()},
    })

    return stack
}

func main() {
    app := cdktf.NewApp(nil)

    NewMyStack(app, "cdktf-azure-go")

    app.Synth()
}

运行时出现如下错误:

Command output on stderr:

    # command-line-arguments
    ./main.go:15:2: undefined: azurerm
    ./main.go:16:14: undefined: azurerm
    ./main.go:20:8: undefined: azurerm

使用Go版本:go version go1.19.13

解决方案

  • 安装AzureRM Provider依赖
    代码里用到的azurerm包是CDKTF的AzureRM provider模块,需要先下载安装。在项目根目录执行:

    go get github.com/hashicorp/terraform-cdk-provider-azurerm-go/azurerm/v10
    

    (版本号可根据需求调整,v10对应兼容的Terraform AzureRM Provider版本)

  • 在代码中导入azurerm包
    在import代码块中添加对应的导入语句:

    import (
        "github.com/aws/constructs-go/constructs/v10"
        jsii "github.com/aws/jsii-runtime-go"
        "github.com/hashicorp/terraform-cdk-go/cdktf"
        azurerm "github.com/hashicorp/terraform-cdk-provider-azurerm-go/azurerm/v10" // 新增导入
    )
    
  • 同步依赖
    执行命令整理并确认依赖:

    go mod tidy
    
  • 重新运行代码
    现在再执行你的代码,azurerm未定义的错误就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:34:57