Как программно получить ASUID веб-приложения Azure?

Я пытаюсь написать портал управления доменом и сопоставить домен с веб-приложением Azure. Мне нужно добавить в домен запись TXT с ASUID приложения. Единственный способ получить ASUID - это использовать панель мониторинга портала Azure. Есть ли API, с помощью которого я могу получить его программно?


person Shane_IL    schedule 17.06.2020    source источник


Ответы (3)


На случай, если вы задаетесь вопросом, как это сделать без ручного вмешательства. Это мой рабочий процесс:

  1. Разверните шаблон ARM с веб-приложением и привязкой имени хоста. Он завершится неудачно и выдаст ошибку об отсутствующей записи TXT. Я использую PowerShell, чтобы перехватить исключение и проверить сообщение об ошибке: if ($ex -Match "TXT record"). Если это попадание, я беру asuid, как показано ниже. Если нет, я выбрасываю исключение.
  2. Чтобы получить asuid, вам необходимо загрузить модуль AZ PowerShell: Install-Module -Name Az.ResourceGraph. Обратите внимание, что не удалось привязать только имя хоста, поэтому служба приложения существует. Теперь вы можете выполнить запрос, чтобы получить нужное значение: $asuid = Search-AzGraph -Query "Resources | project name, properties.customDomainVerificationId, type | where type == 'microsoft.web/sites'" | where {$_.name -eq "my-webapp-name"}
  3. Теперь я вызываю функцию, которая использует API моего поставщика услуг хостинга DNS, чтобы добавить запись TXT с соответствующим идентификатором asuid. В моем случае он был доступен мгновенно, поэтому я мог немедленно повторно развернуть шаблон ARM, но ваши мили могут отличаться.

PS. Если вы используете CLI, а не PowerShell, вы все равно можете сделать это с помощью расширения CLI: az extension add --name resource-graph

person bunzab    schedule 18.09.2020

Я думаю, что вы можете получить это из свойства customDomainVerificationId в веб-приложении ... поэтому, если вы выполните GET для ресурса, это свойство будет иметь значение, необходимое для записи TXT.

Здесь скрыты некоторые детали: https://docs.microsoft.com/en-us/Azure/app-service/app-service-web-tutorial-custom-domain

person bmoore-msft    schedule 19.06.2020
comment
Это свойство имеет значение null при получении ресурса через PowerShell. Я не пробовал другие методы GET. - person jschmitter; 10.02.2021
comment
Это была отличная догадка! Вы МОЖЕТЕ найти свойство customDomainVerificationId в веб-приложениях через Справочная команда. - person Chioke Aarhus; 01.07.2021

Кажется, что для каждой подписки существует одно статическое значение, поэтому жесткое кодирование - неплохой вариант.

person jschmitter    schedule 10.02.2021