【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

评论

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

秒验丨使用简介与应用创建

MobTech袤博科技

android iOS SDK 秒验

使用 HTML、CSS 和 JavaScript 的简单模拟时钟

海拥(haiyong.site)

开源 8月月更

惊呆了!有了这份MySQL笔记手册,胜过看10本书

冉然学Java

MySQL 编程 程序员 分布式 构架

买家手册:企业在选择 SBOM 供应商时需要注意什么?

SEAL安全

DevSecOps 开源软件供应链 软件物料清单 SBOM 软件供应链安全

跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算

华为云开发者联盟

人工智能 图像处理 图像 三维

技术分享| 应急指挥调度平台需要这些技术支撑

anyRTC开发者

音视频 快对讲 语音对讲 调度系统 视频对讲

湖南省株洲市有等保测评机构吗?咨询电话多少?

行云管家

网络安全 等保测评 等级测评 株洲

干净代码(Clean Code)实践如何帮助您留住开发人才

龙智—DevSecOps解决方案

代码质量 代码安全

汉诺塔(递归+ 非递归版)

Five

算法题 8月月更

Louvain算法在反作弊上的应用

百度Geek说

大数据 算法

会场及展位变更通知 | GOPS全球运维大会地址更改,龙智展位更换至#106

龙智—DevSecOps解决方案

gops GOPS全球运维大会

ITIL4实用指南 | ITSM的未来属于敏捷

龙智—DevSecOps解决方案

ITSM ITSM解决方案

传媒数字化转型思考:小程序是音视频内容的更优载体技术

Speedoooo

小程序 数字化转型 小程序生态 传媒

数据构造那些事儿

转转技术团队

测试左移 测试数据构造 测试提效

转转风控「违禁物品识别」 背后的那些事儿

转转技术团队

人工智能’

面试官问:如何优化高并发相关的业务,你能回答的上来吗?

CRMEB

用小程序打造超级App,助力社交电商扩大“留量池”

Speedoooo

小程序 社交电商 超级app 用户留存

这份由腾讯技术大牛耗费几个月总结的1518页的Netty学习笔记GitHub获赞96.5K

了不起的程序猿

Java 后端 Netty JAVA开发 java程序员

浏览器、负载均衡 、进程内部层...那些你需要掌握的多级缓存

华为云开发者联盟

缓存 前端 浏览器

Seata-php 半年规划

SOFAStack

php 开源 分布式 框架 seata

Android进阶(十七)Android 布局

No Silver Bullet

android android布局 8月月更

SpringBoot进阶(叁):Spring Boot启动过程分析

No Silver Bullet

spring-boot 8月月更

小企业自动化运维管理用什么软件好?有便宜的吗?

行云管家

IT运维 行云管家 自动化运维 小企业

程序员常用的IDE工具,你了解哪些?

Speedoooo

小程序 ide 开发者工具 前端开发工具

数字人民币如何影响传统支付?支付厂商数字人民币应用案例征集

易观分析

金融 数字人民币 传统支付

教你如何轻松实现多队伍排队管理【必看】

天天预约

微信小程序 排队 排队工具 #SaaS应用

ARMS助力羽如贸易打造全链路可观测最佳实践

阿里巴巴中间件

阿里云 云原生 可观测 Arms 客户案例

云原生(十九) | Kubernetes篇之Kubernetes(k8s)网络

Lansonli

云原生 k8s 8月月更

龟兔赛跑:如何使用TortoiseSVN客户端和P4EXP

龙智—DevSecOps解决方案

git svn Subversion

今天4点,开发者关心的SysOM 操作系统运维系列直播又来了!| 第 42 期

OpenAnolis小助手

操作系统 系统运维 sig 龙蜥大讲堂 SysOM

张宏江谈AI创业:人工智能亟需工程化,创业者大有可为

硬科技星球

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