写点什么

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

评论

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

Netty 如何自动探测内存泄露的发生

不在线第一只蜗牛

Java 内存泄露 Netty

干货来袭 | 博睿数据《2024IT运维最佳实践白皮书》请查收!

博睿数据

落子全球,亚马逊云科技让中国企业出海“触手可及”

亚马逊云科技 (Amazon Web Services)

央国企“严选”!天翼云夺得IaaS+PaaS市场桂冠!

天翼云开发者社区

云计算 云服务 天翼云

重磅发布 | 末等调整和不胜任退出数智化解决方案

用友BIP

MindNode for mac(思维导图软件)中文版

Mac相关知识分享

分析时序数据:如何从 InfluxQL 迁移到 SQL

Greptime 格睿科技

sql 时序数据库 InfluxQL

新业财税资档一体化:存量资产盘活就选用友BIP超级版

用友BIP

2025世亚软博会(北京展)正式开启预定

AIOTE智博会

软件展会 软博会 世亚软博会 北京软博会

Termius Beta for Mac强大的 SSH 工具

Mac相关知识分享

Java Pom两个模块需要互相引用怎么办

EquatorCoco

Java Python 前端

为何选择向日葵IT精英版?打造高效独立的个人远程IT支持方案

科技热闻

载誉而归!天翼云荣获第23届中国IT用户满意度大会多项殊荣

天翼云开发者社区

云计算 IT 云服务

极狐GitLab X 某清洁能源高科技企业,助力零碳技术开创更加美好的零碳世界

极狐GitLab

gitlab cicd geo

舞台已就位!坐等AI玩家集结!

天翼云开发者社区

云计算 AI 天翼云

数字先锋| 小平台如何展现大智慧?快来一睹“遵”容!

天翼云开发者社区

云计算 云服务

为什么说ERP系统在国内用不起来?

积木链小链

数字化转型 数字化 ERP

Neo4j×Milvus:手把手教你搭建GraphRAG Agent

Zilliz

neo4j 图数据库 Milvus 向量数据库 GraphRAG Agent

软件测试丨标准、高效的管理测试用例和活动

测试人

软件测试

SQL Server 索引如何优化?

高端章鱼哥

如何通过1688平台API接口搭建跨境电商独立站并实现商品采集与下单

代码忍者

API 接口 pinduoduo API

威睿第100万台电驱产品下线,全速迈上新能源驱动发展新台阶

科技热闻

企业应推动数据全生命周期运营,充分释放数据价值

用友BIP

史上最严数据新规落地,出海企业应如何应对这把悬在头上的“达摩克利斯之剑”?

亚马逊云科技 (Amazon Web Services)

【教程】第三章:任务数据管理 —— 运筹帷幄,轻松上手

NocoBase

开源 低代码 教程 无代码

事件管理革命:监控系统中统一日志和指标

Greptime 格睿科技

日志 时序数据库 指标

鸿蒙原生游戏再添力作!《蔚蓝档案》HarmonyOS NEXT版上架华为游戏中心

最新动态

90后斩获多家名企offer的小哥哥,做对了什么?

霍格沃兹测试开发学社

利用京东API接口实现商品详情数据获取与表格化展示

代码忍者

API 接口 pinduoduo API

出海正当时,亚马逊云科技深度赋能中国生物医药企业全球化战略

亚马逊云科技 (Amazon Web Services)

ColPali: 基于 PaliGemma-3B 和 ColBERT 策略的视觉检索器

吴脑的键客

人工智能 搜索算法

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