HashiCorp发布CDK for Terraform (CDKTF)新改进
HashiCorp最近发布了CDK for Terraform (CDKTF)的一系列新改进,主要集中在类型强制、迭代器支持和函数支持等方面。此外,这些改进还包括在Terraform Cloud或Terraform Enterprise中使用CDKTF的体验优化,如计划和应用的改进以及自动创建Terraform工作空间。
CDKTF概述
CDKTF允许使用多种编程语言(如C#、Python、TypeScript、Go和Java)编写Terraform配置,并支持所有现有的Terraform提供者和模块。CDKTF应用程序代码会合成为JSON输出,可以直接通过Terraform部署。
0.16版本的主要改进
- 类型强制改进:更新了
convert命令,使其能够匹配属性赋值时的值类型。该命令用于将现有的Terraform HCL代码转换为CDKTF兼容的语言。现在,convert命令会生成HCL类型并与提供者模式进行匹配,如果类型不匹配,传入的值将被强制转换为正确的类型,从而防止了早期版本中可能出现的错误。 - 元参数转换改进:改进了
count和for_each等元参数的转换。现在,count元属性可以通过“逃生舱口”表示为迭代器,并且convert命令能够在不使用“逃生舱口”的情况下为for_each、count和动态块使用迭代器。 - Terraform函数转换:现在可以将Terraform函数转换为适当的CDKTF函数,提高了代码的可读性,并使自动补全功能正常工作。
示例代码
以下TypeScript示例使用新的TerraformCount函数创建指定数量的实例:
const servers = new TerraformVariable(this, "servers", {
type: "number",
});
const count = TerraformCount.of(servers.numberValue);
new Instance(this, "server", {
count: count,
ami: "ami-a1b2c3d4",
instanceType: "t2.micro",
tags: {
Name: "Server ${" + count.index + "}",
},
});0.15版本的主要改进
- 与Terraform Cloud和Terraform Enterprise的集成改进:替换了基于Terraform Cloud API的实现,改为直接调用Terraform CLI,从而可以显示完整的计划细节。此外,CDKTF现在支持在Terraform Cloud中运行时使用成本估算和Sentinel策略。
- 自动创建工作空间:在运行计划和差异或应用和部署时,CDKTF现在会自动创建工作空间,改进了之前需要手动通过Terraform Cloud或Enterprise UI创建的行为。
更多信息
有关发布的更多信息,可以查看HashiCorp的博客文章和升级指南。对于新用户,建议参考CDK for Terraform教程。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。