如何为Deploy to Azure按钮添加自定义模板参数?
在Deploy to Azure按钮中传递自定义参数的实现方法
一、传递外部JSON参数文件的URL
要复用同一个ARM模板,同时指定不同的参数配置,你可以通过在按钮链接里添加parameters参数来指向外部的JSON参数文件,不用额外创建新模板。
具体步骤:
- 先获取你的ARM模板的公开URL(比如GitHub的raw文件链接),对这个URL做URL编码。
- 准备好包含自定义参数的JSON文件,同样获取它的公开URL并做URL编码。
- 把编码后的两个URL按下面的格式拼接成完整的按钮链接:
https://portal.azure.com/#create/Microsoft.Template/uri/<编码后的模板URL>/parameters/<编码后的参数JSONURL>
示例代码(Markdown格式):
[](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fyour-repo%2Fmain%2Ftemplate.json/parameters/https%3A%2F%2Fraw.githubusercontent.com%2Fyour-repo%2Fmain%2Fdev-params.json)
二、传递Base64编码的参数JSON
如果不想把参数文件暴露在公开URL里,你可以直接把参数JSON内容转换成Base64编码,嵌入到按钮链接中。
具体步骤:
- 将你的参数JSON内容(比如
{"vmSize": "Standard_D2s_v3", "location": "eastus"})转换成UTF-8编码的Base64字符串。 - 按下面的格式构造按钮链接,把Base64字符串放到
parameters参数位置:https://portal.azure.com/#create/Microsoft.Template/uri/<编码后的模板URL>/parameters/<Base64编码的参数JSON>
示例代码(Markdown格式):
[](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fyour-repo%2Fmain%2Ftemplate.json/parameters/eyJ2bVNpemUiOiAiU3RhbmRhcmRfRDJzX3YzIiwgImxvY2F0aW9uIjogImVhc3R1cyJ9)
重要注意事项
- 模板URL必须做URL编码,否则链接会解析失败。你可以用在线URL编码工具,或者用Python的
urllib.parse.quote()、JavaScript的encodeURIComponent()这类方法完成编码。 - Base64编码时要确保是基于UTF-8的,避免出现乱码导致参数解析错误。
- 这两种方式都能让同一个ARM模板适配不同的部署场景,不用在Azure上创建大量重复模板。
内容的提问来源于stack exchange,提问作者Samuel Marks
相关产品推荐
相关产品推荐

