*本文在衡子的博文"手把手教你创建Azure ARM Template"基础上完成(基本只是更新了旧版本的命令),在此特别感谢。
*本文下述内容均以AZURE CLI 2.x为例。操作环境是Windows10.
本文帮助刚入手写azure 部署模板的同学掌握利用Visual Studio Code 写模板的方法。以创建一个storage account ,部署到Azure China为例子。
第一步 下载Visual Studio Code (免费,支持Windows, MAC, Linux)
https://code.visualstudio.com/
第二步 安装ARM插件 "Azure Resource Manager Tools"
打开Visual Studio Code,在最左边点中"Extensions",在搜索框中输入azure resoure manager后搜索:
*如下图1,2,3号红框按顺序点击
安装完毕后点击Enable。
*可能需要重启Visual Studio Code(我没重启也成功了)。
第三步 配置Visual Studio Code
复制一个json file的内容到剪贴板 https://raw.githubusercontent.com/Azure/azure-xplat-arm-tooling/master/VSCode/armsnippets.json
在Visual Studio Code 中, File->Preferences->User Snippets:
输入json,点击JSON:
在{ }中复制刚刚拷贝的内容,这里可以看到json.json模板里加入的是ARM的一些空模板json文件
Ctrl-S保存后关闭Visual Studio Code。 Visual Studio Code配置完成。
第四步 准备创建资源的信息
1 StorageAccountName: xxxstorage03
2 StorageAccountType: Standard_LRS
3 Resource Group: 采用一个已经存在的xxxRG
第五步 编写deployment json模板
*第五,六步我们会分别建立deployment和parameter模板。deployment模板描述资源,parameter模板描述具体资源的名称,大小等。
开始编写deployment模板文件 01azureDeployment.json
打开Visual Studio Code,新建一个文件,点击右下角的Plain Text,输入json.
从而确定文件使用json语法上色。
在编辑区输入"arm",点击下图第一行的模板。即可得到初始的deployment json 文件的框架。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": { },
"variables": { },
"resources": [ ],
"outputs": { }
}
编辑文件,添加"storageAccountName" ,"storageAccountType","resources". 完成后内容如下。
*注意使用TAB键完成auto complete。并试着输入以下 ”{“ 和 ” “ “ 符号。体验一下Visual Studio Code的便利。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName":{"type":"string"},
"storageAccountType":{
"type":"string",
"defaultValue":"Standard_LRS",
"allowedValues":[
"Standard_LRS",
"Standard_GRS",
"Premium_LRS"
]}},
"variables": {},
"resources": [
{
"type":"Microsoft.Storage/storageAccounts",
"name":"[parameters('storageAccountName')]",
"apiVersion":"2015-06-15",
"location":"[resourceGroup().location]",
"properties":{
"accountType":"[parameters('storageAccountType')]"
}}],
"outputs": {}
}
第六步 编写parameter json模板
重复第五步的开始步骤,获得完全一样的初始json模板。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": { },
"variables": { },
"resources": [ ],
"outputs": { }
}
编辑文件,添加"parameters"部分. 完成后内容如下。
*我们可以看到deployment和parameter模板都出自同一个框架文件,但是deployment包含resources和parameters,parameter模板主要是parameters部分.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName":{
"value":"xxxstorage03"
},
"storageAccountType":{
"value":"Standard_LRS"
}
},
"variables": {},
"resources": [],
"outputs": {}
}
第七步 将模板发布到azure上,创建新的storage account
这里我是用的是azure cli 2.x的环境。
只需要输入一行命令就可以
az deployment group create --name="xxxdeploy" --resource-group="xxxRG" --template-file="01azureDeployment.json" --parameters="01parameter.json"
*注意执行命令时要在两个json文件所在的目录下,否则需要指定路径。
*此命令为azure cli 2.x最新的版本,类似的命令有"az group deployment create" (在azure cli 2.2同样可以完成任务,但已经是旧命令了. 如果输入会有"This command is implicitly deprecated"的错误提示).
另外还有"az deployment create"命令也可以完成类似功能,主要用在还未创建resource-group的情况下。
执行成功后输出如下:
C:\>az deployment group create --name="xxxdeploy" --resource-group="xxxRG" --template-file="01azureDeployment.json" --parameters="01parameter.json"
{
"id": "/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/xxxRG/providers/Microsoft.Resources/deployments/xxxdeploy",
"location": null,
"name": "xxxdeploy",
......[省略20+行]
"provisioningState": "Succeeded",
"template": null,
"templateHash": "15968168005743428310",
"templateLink": null,
"timestamp": "2020-04-06T13:21:19.309045+00:00"
},
"resourceGroup": "xxxRG",
"type": "Microsoft.Resources/deployments"
}
备注:
Visual Studio Code 修改默认黑色底色:
File->Preference->Color Theme
https://blog.csdn.net/DFF1993/article/details/90379079