ARM模板:从其他文件获取参数

时间:2020-06-19 00:23:42

标签: azure powershell cloud arm-template

我正在使用Azure CLI(Linux主机)以代码形式部署Infra,我有不同的部署文件和参数文件,

我的目标是避免输入参数重复,

main_parameters.json:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
    "artifactLocation": {
        "value": "xxxx_xxxx_path"
    }
    }
}

main.deploy:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "artifactLocation": {
            "type": "string",
            "metadata": {
                "description": "artifactLocation path"
            }   
        }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2019-10-01",
      "name": "linkedTemplate",
      "properties": {
        "mode": "Incremental",
        "templateLink": {
          "uri":"[parameters('artifactLocation')]",
          "contentVersion":"1.0.0.0"
        }
      }
    }
  ],
  "outputs": {
  }
}

sub_parameters.json:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
    "artifactLocation": {
        "value": "xxxx_xxxx_path"
    },
    "customName": {
        "value": "Name"
    }
    }
}

sub_deploy.json:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "artifactLocation": {
              "type": "string",
              "metadata": {
                  "description": "artifactLocation path"
              }   
          },
          "customName": {
              "type": "string",
              "metadata": {
                  "description": "some name"
              }   
          }
    },
    "variables": {},
    "resources": [
      {
        "type": "Microsoft.Resources/deployments",
        "apiVersion": "2019-10-01",
        "name": "[parameters('customName')]",
        "properties": {
          "mode": "Incremental",
          "templateLink": {
            "uri":"[parameters('artifactLocation')]",
            "contentVersion":"1.0.0.0"
          }
        }
      }
    ],
    "outputs": {
    }
  }

main.parameters和sub.parameters都有输入参数“ artifactLocation”,有没有一种方法可以将参数从main_parameters导入到sub_deploy.json。这样我就可以避免在多个参数文件中添加相同的参数。

我可以一起创建资源main_deploy和sub_deploy,但是我想将main_deploy和sub_deploy文件分开保存,以便于阅读

0 个答案:

没有答案