广告
返回顶部
首页 > 资讯 > 后端开发 > GO >设置 Go 环境以创建自定义 Terraform 提供程序
  • 794
分享到

设置 Go 环境以创建自定义 Terraform 提供程序

2024-04-05 00:04:50 794人浏览 薄情痞子
摘要

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《设置 Go 环境以创建自定义 TerrafORM 提供程序》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《设置 Go 环境以创建自定义 TerrafORM 提供程序》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我在尝试创建 Terraform 提供程序时遇到了困难。我一直遵循 https://www.terraform.io/docs/extend/writing-custom-providers.html 上给出的建议,但是当我通过 Go go build -o terraform-provider-example 构建二进制文件时,我得到了几个丢失包的错误。

然后,我按照丢失的软件包列表进行查找,并使用 go get ... 将这些软件包安装在我的 Go 库中。

我收到一条错误,表明无法找到 GitHub.com/hashicorp/hcl/v2。我导航到该位置,果然它不存在。

安装时软件包不可用屏幕截图

软件包不适用于 go get

所以我陷入困境并且无法构建这些提供程序。我已经寻找了一段时间,试图找到一些描述如何设置创建提供程序的环境的内容,但到目前为止尚未成功。谁能帮我继续前进吗?


解决方案


Terraform Core 和 Terraform 提供程序开发需要在新的“模块模式”下使用 Go 工具链,这在当前版本的 Go 中不是默认设置。

确保您在模块模式下工作的最简单方法是将您想要在 $GOPATH/src 目录之外工作的存储库克隆。仅在模块模式下支持 GOPATH 之外的开发,因此如果您以这种方式工作,Go 工具链会假设您打算使用模块模式。

Terraform 开发需要模块模式的一个原因(尽管不是唯一的)是它依赖于 github.com/hashicorp/hcl/v2,这是旧的 GOPATH 模式不支持的模块路径类型因为以前 Go 工具链只能从 Git 存储库中特定远程依赖项的 master 分支进行安装。模块路径 github.com/hashicorp/hcl/v2 是指定使用 HCL 的第二个主要版本的 Go Modules 方式,而 github.com/hashicorp/hcl 是第一个主要版本。

在模块模式下,只需运行 go build -o terraform-provider-example (或者,如果您愿意,go install)就足够了,它会自动将依赖项获取到本地模块缓存并从那里使用它们。在模块模式下,go get 用于更改 go.mod 中记录的依赖项,而不是用于安装现有依赖项。

理论要掌握,实操不能落!以上关于《设置 Go 环境以创建自定义 Terraform 提供程序》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!

您可能感兴趣的文档:

--结束END--

本文标题: 设置 Go 环境以创建自定义 Terraform 提供程序

本文链接: https://www.lsjlt.com/news/596566.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作