Что такое «azureRmConnection.Id» в этом шаблоне сборки yaml для конвейеров Azure и как его использовать? - PullRequest
0 голосов
/ 10 ноября 2019

Краткое описание проблемы

Я пытаюсь создать и развернуть проект в веб-приложении Azure. Я уже настроил веб-приложение Azure. Для конвейера сборки я взял следующий шаблон сборки YAML от Microsoft:

https://github.com/microsoft/azure-pipelines-yaml/blob/master/templates/node.js-react-webapp-to-linux-on-azure.yml

Я не знаю, что {{ azureRmConnection.Id }} в разделе variables шаблона YAMLуказывает или как его использовать.

Справочная информация

Синтаксис с двойной скобкой ({{ }}) используется для вычисления выражений, тогда как для переменных конвейера используется синтаксис доллара ($()),Поэтому я думаю, что azureRmConnection - это то, к чему сборка уже должна иметь доступ, а не требовать установки переменной конвейера.

То, что я пробовал

  • Поиски MicrosoftДокументы, Google и StackOverflow.

  • Заглянул в мое веб-приложение Azure, чтобы попытаться найти что-то очевидное.

  • Добавлен идентификатор подписки веб-приложения в качестве переменной ссылки на конвейерс именем azureRmConnection.Id.

  • Ссылочные документы Ansible YAML Syntax относительно синтаксиса с двумя скобками: https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html

Код

variables:

  # Azure Resource Manager connection created during pipeline creation
  azureSubscription: '{{ azureRmConnection.Id }}'

Ожидаемые и фактические результаты

Ожидаемые

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

Фактический

Сборка не выполняется со следующей ошибкой:

Возникла проблема с авторизацией ресурса: «Конвейер недействителен. Развертывание задания: шаг ввода azureSubscription ссылается на подключение службы {{azureRmConnection.Id}}, который не может быть найден. Сервисное соединение не существует или не было авторизовано для использования. Подробнее об авторизации см. https://aka.ms/yamlauthz."

Ответы [ 2 ]

1 голос
/ 10 ноября 2019

вам нужно перейти по этой ссылке , создать соединение службы AzureRm и использовать его имя вместо этого заполнителя:

azureSubscription: 'my-azurerm-connection-name-goes-here'
0 голосов
/ 10 ноября 2019

Я попытался создать новый конвейер с помощью мастера Node.js React Web App для Linux на Azure. Я действительно думал, что уже пробовал это, но я должен был использовать другой ранее. В нем было еще несколько этапов.

Мастер позволил мне выбрать свое веб-приложение Azure и подписку Azure из раскрывающихся меню.

Теперь переменные в YAML выглядят так:

variables:
  azureSubscription: '1234xx56-xx7x-[...]'
  webAppName: 'my-azure-web-app-name'
  environmentName: 'my-azure-web-app-name'

azureSubscription - это мой идентификатор подписки Azure.

webAppName - это имя моей сети Azure. Приложение, которое я ранее настроил на портале Azure.

Сборка успешно запущена.

...