【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:009763

评论

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

数智赋能与低代码:是医药行业的创新引擎还是心魔歧途

加入高科技仿生人

低代码 数智化 数智化转型 数智赋能 医药行业

强强联合!中软国际携手用友,全面重构全球人力资源数字化系统

用友BIP

数智人力

如何优雅地使用Low Code提高开发效率

引迈信息

低代码 JNPF

遵循 CI/CD 最佳实践,让高效贯彻整个团队

极狐GitLab

DevOps 自动化 持续集成 CI/CD 持续交付

用友BIP全球司库十问之银行账户统一管理怎么做?

用友BIP

全球司库

热烈祝贺埃文科技北京、上海、深圳分公司成立

郑州埃文科技

分公司成立

只需 2 小时,变身 Flink 实战派:Flink-Learning实战营火热报名中

Apache Flink

大数据 flink 实时计算

对标世界一流,直面全面预算管理差距

用友BIP

全面预算 财务共享

北京国家会计学院千人共聚一堂,大型企业财务数智化盛会!

用友BIP

智能财务 财务共享

全面解析数据治理

郑州埃文科技

数据治理

中企出海台湾篇之人力需求

用友BIP

全球化 中企出海

全球化财务助力跨国业务的稳定增长和持续发展

用友BIP

华为新员工在学的课程长啥样? 扫码立即揭晓!

华为云PaaS服务小智

华为 培训 华为云

数智化时代,如何利用数智人力高效管理人才?

用友BIP

数智人力

当AI大模型遇见金融,这四大挑战不容忽视

索信达控股

奇妙敏捷之旅·青岛站,真的太酷啦!

禅道项目管理

新手必看:Postman Newman 详细使用指南

Liam

程序员 测试 开发 Postman API

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

鳄鱼视界

中企出海之宝岛台湾薪资结算

用友BIP

中企出海

香港虚拟主机:探索网站发展的新起点

一只扑棱蛾子

香港虚拟主机

数据分析提效5倍,国有集团企业数字化历程 | 数字化标杆

袋鼠云数栈

数字化转型 数据治理 企业号 6 月 PK 榜

软件测试/测试开发丨Python 控制流:循环、判断

测试人

Python 程序员 控制流 循环 判断

打工人集体患上AI焦虑症,真的会被AI取代?

牵着蜗牛去散步

人工智能 腾讯云 腾讯 AI集训营

信创和安全“齐头并进”,神州云科全国巡展在沪·穗成功举办

云科通明湖

中企出海之宝岛台湾假勤管理

用友BIP

中企出海

开战在即!与全球伙伴一起打造你的数据应用,TiDB Future App Hackathon 2023 来啦!

PingCAP

数据库 hackathon TiDB

【有奖调研】HarmonyOS新物种,鸿蒙流量新阵地——元服务邀你来答题!

HMS Core

HMS Core

迈向世界一流财务管理体系,全面预算管理体系不可或缺

用友BIP

财务共享

分享三个java低代码开发平台,每个都很能打,建议收藏

优秀

低代码 低代码开发平台 java低代码开发平台

Blender 十大重点功能带你一次了解!

Finovy Cloud

blender

人力场景全覆盖——中企出海之宝岛台湾

用友BIP

全球化 中企出海

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