Я пытаюсь написать портал управления доменом и сопоставить домен с веб-приложением Azure. Мне нужно добавить в домен запись TXT с ASUID приложения. Единственный способ получить ASUID - это использовать панель мониторинга портала Azure. Есть ли API, с помощью которого я могу получить его программно?
Как программно получить ASUID веб-приложения Azure?
Ответы (3)
На случай, если вы задаетесь вопросом, как это сделать без ручного вмешательства. Это мой рабочий процесс:
- Разверните шаблон ARM с веб-приложением и привязкой имени хоста. Он завершится неудачно и выдаст ошибку об отсутствующей записи TXT. Я использую PowerShell, чтобы перехватить исключение и проверить сообщение об ошибке:
if ($ex -Match "TXT record")
. Если это попадание, я беру asuid, как показано ниже. Если нет, я выбрасываю исключение. - Чтобы получить 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"}
- Теперь я вызываю функцию, которая использует 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
Это свойство имеет значение null при получении ресурса через PowerShell. Я не пробовал другие методы GET.
- person jschmitter; 10.02.2021
Это была отличная догадка! Вы МОЖЕТЕ найти свойство customDomainVerificationId в веб-приложениях через Справочная команда.
- person Chioke Aarhus; 01.07.2021
Кажется, что для каждой подписки существует одно статическое значение, поэтому жесткое кодирование - неплохой вариант.
person
jschmitter
schedule
10.02.2021