写点什么

Terraform Plugin Framework 现已正式发布

  • 2023-01-25
    北京
  • 本文字数:1356 字

    阅读完需:约 4 分钟

Terraform Plugin Framework现已正式发布

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


Terraform 插件通过 RPC(远程过程调用)与 Terraform Core 一起工作。插件可用于公开特定服务(如云资源、SaaS 平台或 API)的实现。根据Brian FladDave ParfittVishnu Ravindra 的说法,新框架是对之前的 Terraform Plugin SDKv2 的改进包括:


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


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


可以使用框架定义的泛型类型对属性进行验证。Validators 字段应该提供一个验证列表,如下例所示:


schema.StringAttribute{    //……其他属性配置……    Validators: []validator.String{        // 这些是来自terraform-plugin-framework-validators的示例验证器        stringvalidator.LengthBetween(10, 256),        stringvalidator.RegexMatches(            regexp.MustCompile(`^[a-z0-9]+$`),            "must contain only lowercase alphanumeric characters",        ),    },}
复制代码


路径表达式允许将属性之间的关系指定为相对路径。这些可以表示模式或基于模式的数据内的一个或多个实际路径。相对路径表达式是使用path.MatchRelative()函数启动的


资源私有状态管理允许数据与状态一起存储,但会在 Terraform 计划中删除。HashiCorp 建议,这可以用于存储和检索不需要向用户显示的值,例如 API 调用的 ETag。提供者程序能够在创建、导入、规划、读取和更新操作期间保存这些数据。可以在执行删除、计划、读取和更新等操作期间读取数据。私有状态数据可以使用 GetKey 函数读取:


func (r *resourceExample) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {        value, diags := req.Private.GetKey(ctx, "key")        resp.Diagnostics.Append(diags...)        if value != nil {        //值为[]byte.        ...     }}
复制代码


虽然还会继续支持 Terraform Plugin SDKv2,但 HashiCorp 已经表示,新的 Terraform Plugin Framework 将会获得新功能和工具的优先权。可以使用迁移指南将插件从 Terraform Plugin SDKv2 迁移到新的 Terraform Plugin Framework。


基于插件框架的提供者程序可以向后兼容 Terraform 0.12 及更高版本。也可以选择使用新的Terraform Plugin Protocol版本 6。这将允许访问 Terraform 1.x 版本中的最新功能。有关该版本的更多详细信息,可以在博客文章快速上手页面上找到。


作者介绍:

Matt 领导 InfoQ 的 DevOps 编辑团队。他是教育技术公司 D2L 的云平台副总裁,负责其基础设施和云平台团队。他关注的领域是 DevOps 和 SRE,并在企业规模上实施这些。


原文链接:

HashiCorp Terraform Plugin Framework Now Generally Available


相关阅读:

Terraform 1.3,简化重构体验

Cloud Development Kit:使用TypeScript和Python生成Terraform配置

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

2023-01-25 08:009924

评论

发布
暂无评论
发现更多内容

Java线程池详解

快乐非自愿限量之名

Java

破解企业上云难题,828优选华为云Flexus X实例加速云上管理

轶天下事

开箱即用,AISBench测试展示英特尔至强处理器的卓越推理性能

E科讯

跨越山海,台湾媒体点赞《黑神话:悟空》云游戏服务

轶天下事

海外网络加速方案:解决海外访问难题

Ogcloud

网络加速 海外网络加速 企业网络加速 网络加速服务

StarRocks Lakehouse 快速入门——Apache Iceberg

StarRocks

Apache 数据湖 iceberg

答应我,在vue中不要滥用watch好吗?好的

不在线第一只蜗牛

前端 Vue 3

MacTalk 测评通义灵码,如何实现“微信表情”小功能?

阿里巴巴云原生

阿里云 云原生 通义灵码

MacTalk 测评通义灵码,如何实现“微信表情”小功能?

阿里云云效

阿里云 云原生 通义灵码

通义灵码怎么样?分为哪些版本,看看基础能力多少分?

阿里巴巴云原生

阿里云 云原生 通义灵码

加速企业上云管理黑科技,华为云Flexus X实例首次亮相828企业节

轶天下事

新一代柔性云服务!华为云Flexus X实例亮相828企业节

轶天下事

万界星空科技MES系统生产过程控制功能详解

万界星空科技

工业互联网 制造业 mes 万界星空科技 生产管理MES系统

服务稳定性保障的五大误解

巴辉特

运维 SRE 服务稳定性建设 服务稳定性保障

地信领域最高奖!YashanDB首获2024地理信息科技进步奖一等奖

Geek_2d6073

助力828,华为云Flexus X实例加速企业云上管理

轶天下事

ping命令使用及其常用参数

天翼云开发者社区

ping

华为云Flexus X实例云上管理痛点,828首选上云产品之一

轶天下事

中小企业上云好管家!828企业节亮相的华为云Flexus X实例让上云更便捷

轶天下事

从CSM到A-CSM:不断提升的探索之路

ShineScrum

台媒报道:华为云携手赞奇科技 推出《黑神话:悟空》专属云游戏服务

轶天下事

东郊到家平台系统模式开发功能部署设计未来展望

V\TG【ch3nguang】

【YashanDB知识库】主备延迟故障分析方法

YashanDB

yashandb 崖山数据库

基于 RocketMQ 的云原生 MQTT 消息引擎设计

阿里巴巴云原生

阿里云 RocketMQ 云原生

DAPP合约NFT卡牌盲盒商城系统功能开发设计

V\TG【ch3nguang】

云行| 云端释放“黔”力,天翼云赋能贵州“智”变!

天翼云开发者社区

人工智能 云计算 大数据

IPv6的优势分析

天翼云开发者社区

ipv6

​共筑国产数据库新生态!YashanDB与华瑞指数云ExponTech达成战略合作

Geek_2d6073

第八届未来网络发展大会在宁召开,天翼云“息壤”助力算力互联互通一体化调度!

天翼云开发者社区

云计算 网络安全 网络发展大会

美联储降息在即:加密市场风云再起,机遇与挑战并存

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

以太坊基金会AMA总结:面对ETH价格疲软,团队的应对策略与展望

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

Terraform Plugin Framework现已正式发布_语言 & 开发_Matt Campbell_InfoQ精选文章