Развертывание Azure ARM Что такое среда размещения? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь выполнить развертывание в новой группе ресурсов, содержащей существующий план обслуживания приложения в Azure, с использованием сценария ARM. Если я запустил развертывание через пользовательский интерфейс портала Azure, оно прошло успешно. Проблема возникает, когда я пытаюсь загрузить шаблонный сценарий ARM для развертывания и использовать его.

Я пытаюсь создать веб-приложение и связанный экземпляр приложения.

Вот мой template.json

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "subscriptionId": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "hostingEnvironment": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "alwaysOn": {
            "type": "bool"
        },
        "currentStack": {
            "type": "string"
        }
    },
    "resources": [
        {
            "apiVersion": "2018-02-01",
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "location": "[parameters('location')]",
            "tags": {},
            "dependsOn": [
                "microsoft.insights/components/LicensingService-API"
            ],
            "properties": {
                "name": "[parameters('name')]",
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
                            "value": "[reference('microsoft.insights/components/LicensingService-API', '2015-05-01').InstrumentationKey]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        },
                        {
                            "name": "XDT_MicrosoftApplicationInsights_Mode",
                            "value": "default"
                        },
                        {
                            "name": "DiagnosticServices_EXTENSION_VERSION",
                            "value": "disabled"
                        },
                        {
                            "name": "APPINSIGHTS_PROFILERFEATURE_VERSION",
                            "value": "disabled"
                        },
                        {
                            "name": "APPINSIGHTS_SNAPSHOTFEATURE_VERSION",
                            "value": "disabled"
                        },
                        {
                            "name": "InstrumentationEngine_EXTENSION_VERSION",
                            "value": "disabled"
                        },
                        {
                            "name": "SnapshotDebugger_EXTENSION_VERSION",
                            "value": "disabled"
                        },
                        {
                            "name": "XDT_MicrosoftApplicationInsights_BaseExtensions",
                            "value": "disabled"
                        }
                    ],
                    "metadata": [
                        {
                            "name": "CURRENT_STACK",
                            "value": "[parameters('currentStack')]"
                        }
                    ],
                    "alwaysOn": "[parameters('alwaysOn')]"
                },
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "hostingEnvironment": "[parameters('hostingEnvironment')]",
                "clientAffinityEnabled": true
            }
        },
        {
            "apiVersion": "2015-05-01",
            "name": "LicensingService-API",
            "type": "microsoft.insights/components",
            "location": "westus2",
            "tags": {},
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate"
            }
        }
    ]
}

И мой parameters.json

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "subscriptionId": {
            "value": "REMOVED"
        },
        "name": {
            "value": "LicensingService-API"
        },
        "location": {
            "value": "West US 2"
        },
        "hostingEnvironment": {
            "value": ""
        },
        "hostingPlanName": {
            "value": "LicensingServiceProductionAppServicePlan"
        },
        "serverFarmResourceGroup": {
            "value": "LicensingServicePROD"
        },
        "alwaysOn": {
            "value": true
        },
        "currentStack": {
            "value": "dotnetcore"
        }
    }
}

Есть один конкретный параметр, с которым у меня возникают проблемы. Это параметр "hostingEnvironment". Я не могу определить, что следует поместить в это поле, поскольку шаблон по умолчанию, предоставляемый Azure, оставляет это поле пустым. Если я введу здесь значение (например, LicensingServiceProductionAppServicePlan), при развертывании веб-приложения появится сообщение об ошибке:

{
  "Code": "NotFound",
  "Message": "Cannot find Stamp with name LicensingServiceProductionAppServicePlan.",
  "Target": null,
  "Details": [
    {
      "Message": "Cannot find Stamp with name LicensingServiceProductionAppServicePlan."
    },
    {
      "Code": "NotFound"
    },
    {
      "ErrorEntity": {
        "ExtendedCode": "51004",
        "MessageTemplate": "Cannot find {0} with name {1}.",
        "Parameters": [
          "Stamp",
          "LicensingServiceProductionAppServicePlan"
        ],
        "Code": "NotFound",
        "Message": "Cannot find Stamp with name LicensingServiceProductionAppServicePlan."
      }
    }
  ],
  "Innererror": null
}

Если вместо этого я удалю параметр как из шаблона, так и из файлов параметров,как предложено в этом ответе , я получаю ошибку BadRequest, которая гласит:

{
  "error": {
    "code": "InvalidTemplate",
    "message": "Unable to process template language expressions for resource '/subscriptions/REMOVED/resourceGroups/LicensingServicePROD/providers/Microsoft.Web/serverfarms/LicensingServicePROD' at line '151' and column '9'. 'The template parameter 'hostingEnvironment' is not found. Please see https://aka.ms/arm-template/#parameters for usage details.'",
    "additionalInfo": [
      {
        "type": "TemplateViolation",
        "info": {
          "lineNumber": 151,
          "linePosition": 9,
          "path": ""
        }
      }
    ]
  }
}

Вероятно, это потому, что я вижу, что параметр "hostingEnvironment" используется в сценарии шаблона. Поэтому мне остается удивляться, почему это работает, когда выполняется через пользовательский интерфейс Azure, а не из сценария, сгенерированного из пользовательского интерфейса. Последний вопрос, который я хочу решить, - это какое значение следует указать для параметра «hostingEnvironment»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...