Azure ARM - имя ресурса на основе переменной - PullRequest
0 голосов
/ 17 апреля 2020

Моя цель состоит в том, чтобы иметь шаблон ARM для всех сред, в которые я развертываю.

Я хотел бы иметь возможность определить переменную как часть конвейера выпуска, такую ​​как 'dev' или ' prod ', а затем используйте шаблон ARM, который используется как часть имени развернутого ресурса.

Например:

myapi-dev-appserviceplan myapi-prod-appserviceplan

1 Ответ

0 голосов
/ 17 апреля 2020

Просто создайте параметр и используйте их в файле JSON. Будьте осторожны, есть «параметры» и «переменные». В моем случае я использую параметр для создания переменной, но иногда я использую непосредственно параметр для имени среды (то есть: в моем случае среда - «dev», «uat», «prd» и вставляется в имя ресурса)

Вот полный пример, который показывает, что вы хотите сделать

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": { 
        "environment": {
            "type": "String" 
        },
        "sku": {
            "type": "string",
            "defaultValue": "S1"
        }
    },
    "variables": {
        "webappPrefix": "lovelyfront",
      "location": "westeurope",
        "aiName": "[concat('ai-',variables('webappPrefix'), '-', parameters('environment'))]",
        "webappName": "[concat('wa-',variables('webappPrefix'), '-', parameters('environment'))]",
        "webappNameStagingSlot": "[concat(variables('webappName'), '/', 'staging')]",
        "appServicePlanName": "[concat('asp-',variables('webappPrefix'), '-', parameters('environment'))]",
        "storageAccountName": "[concat('stolovefront', toLower(parameters('environment')))]",
        "cognitiveEndpointName": "[concat('cog-',variables('webappPrefix'), '-', parameters('environment'))]",
        "signalRName": "[concat('sig-',variables('webappPrefix'), '-', parameters('environment'))]"
    },
  "resources": [
    {
      "apiVersion": "2014-04-01",
      "name": "[variables('aiName')]",
      "type": "Microsoft.Insights/components",
      "location": "[variables('location')]",
      "properties": {
        "ApplicationId": "[variables('aiName')]"
      }
    },
    {
      "apiVersion": "2017-08-01",
      "type": "Microsoft.Web/serverfarms",
      "kind": "app",
      "name": "[variables('appServicePlanName')]",
      "location": "[variables('location')]",
      "properties": {},
      "dependsOn": [],
      "sku": {
        "name": "[parameters('sku')]"
      }
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...