速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

评论

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

运维审计堡垒机哪款好?报价贵吗?

行云管家

网络安全 堡垒机 IT运维 运维审计

[数据分析]-音频分析-BirdCLE-1

浩波的笔记

人工智能 AI 数据分析

毕业总结

凌波微步

架构训练营

作为Java程序员连Redis都不会?阿里架构师带你深入“解剖”Redis

Java浪潮

redis JAVA开发 java程序员

【OpenCV】配置OpenCV教程,OpenCV入门

恒山其若陋兮

5月月更

服务器CPU和普通CPU有什么区别?常用的服务器有六大区别

Finovy Cloud

深度学习 gpu GPU算力

重复造轮子?TCP天然支持可靠传输为什么还需要基于UDP实现可靠传输?

Java全栈架构师

程序员 字节跳动 面试 TCP 网络

阿联酋航空与华为进一步深化合作伙伴关系

最新动态

黄吉:如何适配OpenHarmony自有音频框架ADM?

OpenHarmony开发者

OpenHarmony

手把手推导Back Propagation

OneFlow

人工智能 神经网络 深度学习 Back Propagation 推导过程

洞见科技纪凯:基于隐私计算的「客户增长」生态

洞见科技

金融科技 隐私计算

借鉴这份Java进阶架构师之路的核心知识,我成功收获蚂蚁金服、阿里、美团等Offer

Java浪潮

Java 架构 java架构

SpringCloud 中 Gateway 是如何关联对应的 GatewayFilterFactory 和 参数解析的

gin

Gateway SpringCould

Hacker 资讯 | 5 月上旬区块链黑客松活动汇总

One Block Community

区块链

AI简报:Blind超分KernelGAN

AIWeker

人工智能 深度学习 机器视觉 5月月更 超分

网络协议之:memcached binary protocol详解

程序那些事

Java 网络协议 程序那些事 5月月更

如何制作优秀的产品说明手册?

小炮

产品说明手册

DPDK背景和优势,赶紧学起来运用吧

C++后台开发

虚拟化 Linux服务器开发 DPDK C++后台开发 高性能网络

这么好用的低延时直播,网易云信竟然将它开源了?!

网易云信

开源 WebRTC 音视频技术

深入浅出Redis丨阿里架构师的Redis实战心得,让你毫不费力的学习

Java浪潮

redis java程序员 java架构

云原生基础治理平台SchedulX V1.2.0正式发布,助力企业降本增效

星汉未来

运维 云原生 星汉未来

原来,嵌入式BI方案的核心差异全在这,教你如何评估!

葡萄城技术团队

数据分析 BI 嵌入式软件 核心差异

导师男团来袭 | 开源之夏2022,与Alluxio一起探索数据编排的奇妙世界

Alluxio

开源 大学生 #开源项目 开源之夏 数据编排

报告解读下载 | 5月《中国数据库行业分析报告》重磅发布!精彩抢先看!

墨天轮

数据库 oracle opengauss TiDB 国产数据库

阿里Java面试必问:JVM与性能优化+Redis+设计模式+分布式

Java浪潮

编程 架构

堡垒机是服务器吗?两者有区别吗?

行云管家

运维 网络安全 服务器 堡垒机

CRM系统的18个关键功能

低代码小观

CRM 客户关系管理 企业管理系统 CRM系统 客户关系管理系统

什么是流动性池?(上)|流动性池的出现及名词解析

区块链前沿News

流动性 Hoo

进阶中的程序员:深入解析 Spring boot(含PDF文档分享)

Java浪潮

spring 编程 JAVA开发 springboot

GAIA数据集V1.10更新

云智慧AIOps社区

运维 AIOPS 数据集

华为手机用户找歌不用愁,HarmonyOS 2版本更新上线“听歌识曲”

科技汇

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