Terraform 提供者指定要拉取的 SDK 版本/不能使用 validation.StringInSlice type schema.SchemaValidateFunc as type SchemaValidateDiagFunc
Terraform Provider-specify version of SDK to pull / Cannot use validation.StringInSlice type schema.SchemaValidateFunc as type SchemaValidateDiagFunc
由于 this problem it looks like for providers you have to get a current version of the SDK (2.4.4 at time of post). This post 有很多关于如何导入包的特定版本的信息,但肯定每个提供者编写者都没有手动拉取最新版本的 SDK(或者他们是) ?
我是 Go/Terraform 的新手,所以也许我遗漏了一些明显的东西,但我发现的提供者(包括官方示例)有类似的东西:
import(
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
)
当前版本不是 2 - 它是 2.4.4
。现在我知道那些是本地路径,但让我感到困惑的是,当我 运行 类似 go get
的东西时,它会为我把它们拉下来。我尝试这样做:
"github.com/hashicorp/terraform-plugin-sdk/v2.4.4/helper/schema"
但是 go get
非常不喜欢那样。 go get
如何找到那些软件包版本?是否有一种导入语法可以让我获得最新版本或允许我更细粒度?在 运行ning go get
之后,我还没有找到一个好方法来判断我拥有的 SDK 版本,但是基于此错误消息:
看起来我有 2.0,因为据我所知,该错误已在较新版本的 SDK 中修复。
我明白了。该行为由 go.mod 文件控制。
在那里你会发现:
require (
github.com/hashicorp/terraform-plugin-sdk v1.14.0 // indirect
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.1
如@JimB 所述,v2 是插件的 major version。 v2.0.1
是 GitHub 个标签。将其更改为 v2.4.4
可获得所需的行为。
由于 this problem it looks like for providers you have to get a current version of the SDK (2.4.4 at time of post). This post 有很多关于如何导入包的特定版本的信息,但肯定每个提供者编写者都没有手动拉取最新版本的 SDK(或者他们是) ?
我是 Go/Terraform 的新手,所以也许我遗漏了一些明显的东西,但我发现的提供者(包括官方示例)有类似的东西:
import(
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
)
当前版本不是 2 - 它是 2.4.4
。现在我知道那些是本地路径,但让我感到困惑的是,当我 运行 类似 go get
的东西时,它会为我把它们拉下来。我尝试这样做:
"github.com/hashicorp/terraform-plugin-sdk/v2.4.4/helper/schema"
但是 go get
非常不喜欢那样。 go get
如何找到那些软件包版本?是否有一种导入语法可以让我获得最新版本或允许我更细粒度?在 运行ning go get
之后,我还没有找到一个好方法来判断我拥有的 SDK 版本,但是基于此错误消息:
看起来我有 2.0,因为据我所知,该错误已在较新版本的 SDK 中修复。
我明白了。该行为由 go.mod 文件控制。
在那里你会发现:
require (
github.com/hashicorp/terraform-plugin-sdk v1.14.0 // indirect
github.com/hashicorp/terraform-plugin-sdk/v2 v2.0.1
如@JimB 所述,v2 是插件的 major version。 v2.0.1
是 GitHub 个标签。将其更改为 v2.4.4
可获得所需的行为。