区块链网站|NFTS Terra(LUNC) Terraform插件框架正式发布

Terraform插件框架正式发布

广告位

Terraform Plugin Framework 现已正式发布

作者|马特坎贝尔

译者|刘亚萌

策划|丁晓云

HashiCorp发布了Terraform插件框架1.0版本。这个框架改进并取代了Terraform插件SDKv2。它包括对验证器、路径表达式、嵌套属性、资源私有状态管理和自定义类型的支持。新框架中的provider程序是用Go编写的可执行二进制文件。

Terraform插件通过RPC(远程过程调用)与Terraform核心一起工作。插件可以用来展示特定服务的实现,比如云资源、SaaS平台或API。根据Brian Flad、Dave Parfitt和Vishnu Ravindra的说法,新框架是对以前的Terraform插件SDKv2的改进,包括:

插件框架的代码在未来更容易维护和验证,它将是未来Terraform插件的开发特性和工具的基础。

这个版本包括许多预构建的验证器,可以为用户提供关于语法、类型和可接受值的反馈。例如,用于检查字符串长度或确保数字在有效范围内的验证器。可以在Go模块terraform-plugin-framework-validators中找到预构建的验证器。

您可以使用框架定义的泛型类型来验证属性。“验证器”字段应提供一个验证列表,如下例所示:

模式。StringAttribute{ //……其他属性配置…验证器:[] validator.string {//这些是示例验证器字符串验证器。从Terraform-Plugin-Framework-Validators的长度在(10,256)之间。字符串验证器。regexmatches(正则表达式。must complete(`[a-z0-9]Terraform插件框架已正式发布-今日头条),'必须只包含小写字母字符'),},}路径表达式允许将属性之间的关系指定为相对路径。这些可能代表模式或基于模式的数据中的一个或多个实际路径。相对路径表达式使用路径开始。MatchRelative()函数。

资源私有状态管理允许数据以状态存储,但在Terraform计划中会被删除。HashiCorp建议这可以用来存储和检索不需要显示给用户的值,比如API调用的ETag。提供商程序可以在创建、导入、规划、读取和更新操作期间保存这些数据。在删除、调度、读取和更新期间可以读取数据。可以使用GetKey函数读取私有状态数据:

func (r *resourceExample)读取(ctx上下文。上下文,请求资源。ReadRequest,resp *资源。ReadResponse) { value,diags :=req。Private.GetKey(ctx,' key') resp。诊断。附加(诊断.)如果值!=nil {//值为[]字节.}}虽然Terraform插件SDKv2将继续得到支持,但HashiCorp已经表示新的Terraform插件框架将获得新功能和工具的优先权。您可以使用迁移指南将插件从Terraform插件SDKv2迁移到新的Terraform插件框架。

基于插件框架的提供程序可以向后兼容Terraform 0.12及更高版本。您也可以选择使用新的Terraform插件协议版本6。这将允许访问Terraform 1.x版本1.x中的最新功能。有关此版本的更多详细信息,请参见博客帖子或快速入门页面。

作者介绍:

Matt领导InfoQ的DevOps编辑团队。他是教育科技公司D2L云平台的副总裁,负责其基础设施和云平台团队。他主要关注DevOps和SRE,并在企业范围内实施它们。

原始链接:

HashiCorp Terraform插件框架现已正式推出

相关阅读:

Terraform 1.3简化了重构体验。

云开发工具包:使用TypeScript和Python生成Terraform配置

如何将基础设施自动导入Terraform?

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/lunc/46632.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部