Bicep Formatter & Validator
格式化并验证 Azure Bicep 基础设施即代码模板 — 将 resource、module、param 和 output 声明重新缩进为一致的 2 或 4 个空格嵌套,并捕获不平衡的括号、未终止的字符串/注释和意外的顶级语句。
输入
输出
| 行 | 严重程度 | 消息 |
|---|---|---|
| No data yet | ||
使用指南
粘贴一个缩进不一致或缺失的 Bicep 资源模板,即可获得一个整洁嵌套且缩进一致的版本——直接在浏览器中进行,无需将任何内容上传到服务器。Bicep Formatter & Validator 将 param、var、resource、module、output 和 type 声明重新缩进为一致的 2 或 4 个空格嵌套,并标记基本结构问题:不平衡的括号、无法合法跨越行的字符串、未终止的注释或意外的顶级语句。
为以下场景而设计:您没有 Bicep CLI 或 VS Code 扩展可用时——从拉取请求中粘贴的模板、从文档或 AI 助手复制的代码片段(缩进不一致或混乱)、或在将内容粘贴回编辑器之前进行的快速检查。
如何使用
- 将 Bicep 模板粘贴到输入框中,或上传
.bicep文件。 - 可选地在 2 和 4 个空格之间切换缩进大小。
- 复制格式化的结果,或将其下载为
main.bicep。
格式化在您输入或更改选项时自动运行,因此您会立即看到结果。单独的验证问题表列出发现的任何问题——或确认没有问题。
它做什么
- 一致的缩进,根据实际的括号嵌套而不是源代码碰巧拥有的任何缩进计算——零缩进的模板格式与已整洁的模板完全相同。
- 装饰器和循环表达式正确地"贴靠"。
@allowed([...])和循环包含资源的= [for item in items: {...}]在一行上打开两个括号,但只在内容上缩进一个级别,与真实 Bicep 格式化程序的处理方式相匹配——而不是每个括号一个缩进的简单计数。 - 字符串和注释保持不变。 字符串内的括号——包括可能包含进一步嵌套的字符串和表达式的
${...}插值——永远不会影响缩进。多行'''...'''字符串或块注释/* ... */在开始后逐字节保留,而不是冒着破坏字面内容的风险。 - 没有任何内容被重新排序。 属性顺序、行内间距和每个值都保持原样——只有前导空格会改变。
- 基本验证:不平衡的
{ }/[ ]/( )、遇到原始换行符的普通'...'字符串(只有'''字符串可以跨越行)、未终止的块注释以及不以已识别的声明关键字(param、var、resource、module、output、type、func、targetScope、metadata、import、extension、using、provider)开头的顶级行。
隐私
一切都在浏览器的客户端进行。您的模板绝不会上传到服务器——粘贴包含实际订阅 ID 或资源名称的模板,它永远不会离开您的计算机。
这是否替代 Bicep CLI 的 bicep format?
对于修复缩进和捕获上述四五个基本错误,是的。它不会针对 Azure 资源架构对属性名进行类型检查、解析模块引用或计算表达式——那是 bicep build/bicep lint 的用途(需要基于 .NET 的 Bicep CLI)。
这会破坏我的模板吗?
格式化程序只更改前导空格——它永远不会改动属性顺序、值或内部间距。当遇到无法安全重新格式化的结构问题(不平衡的括号、未终止的字符串)时,它会保持输入不变,并在"验证问题"表中报告问题,而不是进行猜测。
相关工具
- Terraform Formatter — 对 HashiCorp 的竞争 IaC 语言进行相同的重新缩进。
- Kubernetes YAML Formatter — 用于 Bicep 模板经常一起部署的 YAML 清单。
- JSON Formatter — 用于
.bicep文件转译成的编译 ARM 模板。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/bicep-formatter-validator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"bicepInput": "@description('Name of the storage account')\npara…",
"indentSize": "2"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `bicep-formatter-validator` tool (Bicep Formatter & Validator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.