2 回答

TA贡献1796条经验 获得超10个赞
您的文件表明您使用的是 SDK 版本 1.17.2,其中 id
确实记录为保留属性名称。go.mod
但是,它似乎不再出现在最新的 SDK 版本 2.6.1 中。此策略似乎因问题 #607 而发生了变化,并且该更改首次在 SDK 版本 v2.1.0 中发布。
虽然我无法解释为什么您共享的代码会引起该错误,但您可以通过升级到最新的SDK版本来避免此问题。由于它是一个新的主要版本,因此可能需要在API中的其他地方考虑一些重大更改。有一个Terraform SDK v2升级指南,其中描述了这些更改,还包括一个指向tf-sdk-migrator
工具的链接,该工具具有一些自动化功能来帮助升级。

TA贡献1811条经验 获得超5个赞
此问题有一个解决方法,无需升级到 SDK v2,您可以尝试在架构上指定其他名称,例如“id1”而不是“id”
"id1": {
Type: schema.TypeInt,
Optional: true,
Description: "",
},
并将此属性的值解析到您的结构上
c.ID = d.Get("id1").(int)
并尝试构建。
现在唯一的缺点是您需要在hcl文件中提及“id1”而不是“id”。
这对我有用,但仍然升级到SDKv2是更好的解决方案
- 2 回答
- 0 关注
- 117 浏览
添加回答
举报