写点什么

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

评论

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

招商管理系统(源码+文档+部署+讲解)

深圳亥时科技

湖北移动,以5G-A规模商用“换”出内需新活力

脑极体

通信

好产品无国界,极兔外国员工也当上飞书效率先锋了!

ToB行业头条

QCN9074|QCN9024 Tri-Band Capability Meets Versatile Development: ROCK 5B + DR9074-Triband!

wallyslilly

QCN9024

持续监控云端数据:利用 EMQX ECP 集中管理 EMQX 集群

EMQ映云科技

emqx EMQX ECP

如何开发一个网站:全面解析与实战指南

科普小能手

网络运维 网站开发

报表工具对比:积木报表JimuReport VS 帆软报表FineReport

JEECG低代码

数据可视化 数据大屏 BI数据分析 报表工具 仪表盘设计器

网站下载工具SiteSucker专业版SiteSucker Pro for Mac激活版

iMac小白

5分钟上手!用 #Workspace 为 screenshot-to-code 项目增加新功能

豆包MarsCode

程序员 AI 开发

Cisdem DVD Burner for Mac(dvd光盘刻录软件)v6.11.0激活版

iMac小白

AI眼镜,等一个“千元机时刻”

脑极体

AI

人工智能代理与区块链的融合:下一场技术革命的引爆点

区块链软件开发推广运营

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

AI时代的软件工程:迎接LLM-DevOps的新纪元

鸿鹄

项目管理 软件工程 工具集 大模型 构架

TikTok运营使用SD-WAN有什么优势?

Ogcloud

SD-WAN TikTok 海外网络加速 tiktok运营 TikTok养号

数字揭秘丨机器学习能否让你的健身计划事半功倍?

Altair RapidMiner

机器学习 数据分析 #人工智能 altair

如何选择购买合适的体育直播源码?开发高质量赛事平台!

软件开发-梦幻运营部

Shiro权限控制入门

天翼云开发者社区

Java shiro

边缘计算与MEC浅谈

天翼云开发者社区

云计算 边缘计算

Redis 可观测最佳实践

观测云

redis

选择2024年10款OKR在线系统(含免费版)提升团队执行力

易成研发中心

2024年最热门的区块链生态系统:Solana依旧领跑,新秀崛起

区块链软件开发推广运营

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

非标自动化项目管理如何做

爱吃小舅的鱼

项目管理

第49届ICPC亚洲区域赛,非凸科技再次支持上海赛站

非凸科技

活动邀请|华为云开源开发者论坛即将正式开幕

OpenTiny社区

前端 低代码 OpenTiny 华为云开源

多功能代码编辑器CodeRunner for Mac 激活版

iMac小白

妙笔写作软件WonderPen for Mac激活版

iMac小白

Qemu-KVM基本工作原理介绍

天翼云开发者社区

qemu

Rhinoceros 8 for Mac(犀牛8 mac版)v8.13中文激活版

iMac小白

如何解决TikTok直播网络不稳定的难题?

Ogcloud

TikTok tiktok运营 tiktok直播 tiktok直播专线 tiktok直播网络

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