用Visual Studio Code写azure template

*本文在衡子的博文"手把手教你创建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号红框按顺序点击
avatar1
安装完毕后点击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:
avatar1
输入json,点击JSON:
avatar1
在{ }中复制刚刚拷贝的内容,这里可以看到json.json模板里加入的是ARM的一些空模板json文件
avatar1
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.
avatar1
avatar1
从而确定文件使用json语法上色。

在编辑区输入"arm",点击下图第一行的模板。即可得到初始的deployment json 文件的框架。
avatar1

{
"$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

猜你喜欢

转载自www.cnblogs.com/acui2010/p/12650706.html
今日推荐