Развертывание шаблона ARM: повторно использовать параметры задачи в файле параметров - PullRequest
0 голосов
/ 17 июня 2020

Я использую задачу развертывания шаблона ARM в моем конвейере выпуска. В задаче есть параметр Location.

В моем файле parameters. json у меня также есть параметр с именем Location. Как я могу изменить этот файл, чтобы он считывал значение, установленное в самой задаче?

В настоящее время значение считывается из переменной группы переменных, поступающей из azure keyvault. Но я считаю излишним, чтобы этот параметр местоположения поступал из хранилища.

See

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Основываясь на моем тесте, я заметил, что значение в xxx.parameters. json не может прочитать значение переменной в конвейере.

Например:

Я установил переменную (test: ab c) в переменных конвейера. Затем я использую его в файле xxx.parameters. json. При создании группы ресурсов vaiable не читается в группе ресурсов.

Параметры. json образец:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "adminUsername": {
            "value": "test"
        },
       "location": {
           "value": "$(test)"

       }

    }
  }

enter image description here

Из результата кажется, что значение местоположения не может быть автоматически c использовано в файле json.

Возможно, вам придется использовать задачу tokenizer, чтобы вручную переопределить заданное значение c в файле json. Тогда это значение можно использовать в группе ресурсов.

Или вы можете напрямую использовать Override template parameters в задаче шаблона ARM.

enter image description here

Надеюсь, это поможет.

0 голосов
/ 17 июня 2020

Расположение *:

Для области развертывания группы ресурсов: Местоположение для развертывания группы ресурсов. Если группа ресурсов уже существует в подписке, это значение будет проигнорировано. Для других масштабов развертывания: Местоположение для хранения метаданных развертывания.

https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3

Учитывая эту информацию, вы можете установить местоположение группы ресурсов с помощью задача, и используйте это для всех ваших ресурсов. Если вы хотите, чтобы ваши ресурсы находились в другом месте, чем ваша группа ресурсов, вы не сможете использовать параметр задачи.

Вот как это выглядит в ARM:

    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/resource-location?tabs=azure-powershell#use -параметр-расположение

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