У нас есть следующий сценарий:
Текущая рабочая настройка
- Проект веб-API с использованием одного DockerFile
- Выпускная конвейерная линия с задачей «Azure развертывание службы приложений».
Предлагаемая новая настройка
- Проект веб-API с использованием мультиконтейнера Docker Создать файл
- Выпускная конвейерная линия с задачей «Azure Веб-приложение для контейнеров».
При развертывании новой настройки мы получаем следующее сообщение об ошибке:
ERROR - multi-container unit was not started successfully
Unhandled exception. System.AggregateException: One or more errors occurred.
(Parameters: Connection String: XXX, Resource: https://vault.azure.net, Authority:
https://login.windows.net/xxxxx. Exception Message:
Tried to get token using Managed Service Identity.
Access token could not be acquired. Connection refused)
Исключение вызвано тем, что он не может подключиться к Azure MSI (идентификатор управляемой службы). Это делается для получения токена перед подключением к хранилищу ключей.
Я попробовал следующее на основе некоторых исследований и решений, найденных другими:
- Соединение с
"RunAs=App"
(это в любом случае кажется, что это конструктор по умолчанию без параметров) - Собираю строку подключения самостоятельно, вытягивая переменную окружения
"MSI_SECRET"
из машины. Это всегда пусто. - Перезапуск MSI.
- Обновление и понижение
AppAuthentication
пакет
MSI, кажется, настроен правильно, поскольку он отлично работает с нашей текущей рабочей настроить, чтобы мы могли исключить это. Стоит отметить, что это назначенный Системой идентификатор, а не назначенный пользователем.
В документации, в которой говорится, что службы поддерживают управляемые идентификаторы, упоминается только «Azure Экземпляры контейнеров», а не «Azure Экземпляры управляемых контейнеров» и что также для Linux / Preview, чтобы его нельзя было поддерживать.
Сервисы, которые поддерживают управляемые удостоверения для Azure ресурсов
Мы потратили значительное количество Пришло время приступить к настройке и развертыванию, и было бы здорово, если бы мы смогли решить эту последнюю проблему.
Любая помощь приветствуется.