2

Я пытаюсь развернуть кластер HDInsight с использованием шаблона ARM через Visual Studio. Я создал проект группы ресурсов Azure в Visual Studio 2015 и добавил свои определения ресурсов в файлы шаблонов JSON.Azure ExpiredAuthenticationToken во время New-AzureRmResourceGroupDeployment при развертывании ресурсов через Visual Studio

Однако, когда я отправился развернуть его (щелкнув правой кнопкой мыши проект, выбрав «Развернуть -> Новое развертывание», введите мои параметры), вывод Visual Studio показывает (я вырезал некоторые скучные вещи):

17:19:23 - Сборка началась.

17:19:23 - Проект "LaunchHdInsightCluster.deployproj" (цель StageArtifacts (ы)):

[надрез]

17:20:27 - [VERBOSE] 17:20:27 - Microsoft.HDInsight ресурсов/кластеров 'groupbhdinsight' статус инициализации работает

17:31:06 - [ERROR] New-AzureRmResourceGroupDeployment: ExpiredAuthenticationToken: маркер доступа время истечения UTC «3/14/2016 5:31:06 PM 'ранее, чем текущее время UTC'. 3/14/2016 5:31:07 PM '.

Обратите внимание, что развертывание только за 12 минут до истечения срока действия маркера доступа - очевидно, для развертывания кластера HDInsight это проблема (занимает в среднем 20 минут).

Я просто пытаюсь понять, что происходит под капотом здесь, так как я не могу найти документацию для этого. i.e:

Что создает токен доступа и как? Как долго это длится? Я не спрашивал о каких-либо активах Azure при развертывании - я предполагаю, что это факт, что я подписан в Visual Studio с использованием той же учетной записи, которую я использую в Azure, и она «заимствует» сеанс аутентификации, но это просто догадка

Что определяет время истечения срока действия маркера доступа, чтобы я мог предотвратить это повторение?

Как обновить токен аутентификации?

+0

у меня точно такая же проблема. Я вызвал мое развертывание около двадцати минут назад (около 3/14/2016 6:10 UTC). Как вы думаете, это временная проблема с Azure Resource Group? P.S. Region = West US –

+0

Я не вижу никаких служб Azure: https://azure.microsoft.com/en-us/status/ Существует одна запись для этого окна времени, относящегося к классическим виртуальным машинам. Не уверен, что это важно: > РЕЗЮМЕ ВОЗДЕЙСТВИЯ: Между 01:30 UTC 10 марта 2016 года и 03:53 UTC 14 марта 2016 года клиентам, использующим новый портал (portal.azure.com), не удалось добавить конечные точки в классические виртуальные машины , Та же функция была доступна в Classic Portal (manage.windowsazure.com). –

+0

Хорошо, что мое развертывание преуспело, несмотря на ошибку - у меня, похоже, полнофункциональный кластер HDInsight. Я думаю, потому что аутентификация, истекающая после шаблона ARM, была отправлена ​​Azure, поэтому единственная «проблема» не возвращала результат (то есть развертывание было успешным). Поэтому я думаю, что проблема - это просто клиентская сторона с Visual Studio –

ответ

5

Что происходит в том, что развертывание группы ресурсов Azure в VS использует сценарий PowerShell в проекте для развертывания (даже если вывод размещен в VS, мы используем этот сценарий PS для выполнения этой работы).Скрипт PowerShell аутентифицируется с использованием токена из вашего входа VS. Этот токен хорош только на час, а затем VS обновит его. Однако, когда он передается PowerShell, PowerShell не обновляет его автоматически. Поэтому, если у вас есть токен в течение 59 минут, он истечет вскоре после начала развертывания. Токен может длиться час или что-то меньшее. Мы работаем над исправлением для этого (т. Е. PowerShell автоматически обновляет токен), но это уже около месяца. См.: https://github.com/Azure/azure-powershell/issues/1068

Методы обхода: К сожалению, нет никакой хорошей работы вокруг VS. Но ...

  • Как отмечалось, развертывание в Azure будет продолжаться как можно точнее, просто VS/PS больше не может опросить статус. Вы можете отслеживать развертывание через портал или PowerShell.
  • Если вы зашли в PowerShell и запустили скрипт, PowerShell автоматически обновит токен при входе в учетные данные - вы можете получить точную команду VS, просеяв окно вывода - этот документ также дает обзор работы скрипт вручную: https://azure.microsoft.com/en-us/documentation/articles/vs-azure-tools-resource-groups-how-script-works/

Надежда, что помогает ...

+0

Спасибо за подробный ответ @ bmoore-msft! –

+0

Я не знаю, продолжаете ли вы следить за этим потоком, но я все еще получаю его через год.В моем случае у меня есть шаблон с проблемами, поэтому токен, который я получаю, действителен с первого раза, когда он пытается подключиться, и это первый раз, когда я пытаюсь развернуть. К тому моменту, когда я исправил вопросы проверки, его 40 минут спустя, и у меня есть только 20 минут для мониторинга развертывания. – bytejunkie

0

Я не уверен, но я считаю, что New-AzureRmResourceGroupDeployment загружает ваш файл шаблона и устанавливает развертывание в облаке. Затем он запрашивает развертывание, чтобы узнать, выполнено ли это и выводит ресурсы по мере их создания. Очевидно, что эти запросы ошибки, когда токен истекает. Но развертывание должно продолжаться.

Вы можете проигнорировать эту ошибку и запросить группу развертывания или ресурсов самостоятельно, чтобы узнать, когда это будет сделано.

+0

Если вы входите в систему через LiveId, нет возможности избежать интерактивного входа в систему. Но если вы входите в систему через пользователя Azure AD, я думаю, вы можете снова ввести пароль и логин. Также вы можете настроить аутентификацию на основе сертификатов с помощью ServicePrincipal, как описано здесь: https://azure.microsoft.com/en-us/blog/azps-1-0/ – Cleverguy25

+0

Да, оказалось, что развертывание в конечном итоге преуспело, несмотря на ошибку поэтому я думаю, что вы правы в продолжении развертывания. –

1

Держу пари, что это была временная проблема. Я повторил развертывание (необходимо было изменить мой шаблон ARM), и теперь это удалось.

Пожалуйста, проверьте свою группу ресурсов Azure на портале. Вероятно, ваши ресурсы будут запущены.

@ Cleverguy25 предоставил объяснение, как я считаю, что процесс развертывания работает.

+0

Кажется, что это было непродолжительным, после удаления всех ресурсов с моего первого запуска я снова попытался перераспределить без каких-либо изменений в шаблоне ARM, и это сработало - потребовалось около 45 минут. –

+0

Хорошо, поэтому на следующий день, развертывая один и тот же шаблон ARM, я снова получил исключение «ExpiredAuthenticationToken», на этот раз через 11 минут после запуска развертывания. Таким образом, это может быть не случайная одноразовая икота, а постоянная и прерывистая проблема :(Мое предположение заключается в том, что VS периодически обновляет токен аутентификации в фоновом режиме, возможно, с часом или двумя истечения срока действия, и случайным образом может истечь иногда во время долгого развертывания? –