首页 > 解决方案 > 如何以编程方式获取 Azure webapp 的 ASUID?

问题描述

我正在尝试编写域管理门户并将域映射到 Azure webapp 我需要将带有应用程序 ASUID 的 TXT 记录添加到域。我能找到获取 ASUID 的唯一方法是通过 Azure 门户仪表板。有没有我可以用来以编程方式获取它的 API?

标签: azureazure-webapps

解决方案


万一你到这里想知道如何在没有人工干预的情况下做到这一点。这是我的工作流程:

  1. 使用 Web 应用程序和主机名绑定部署 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. 我现在调用一个函数,该函数使用我的 DNS 托管服务提供商 API 来添加具有适用 asuid 的 TXT 记录。就我而言,它可以立即使用,因此我可以立即成功地重新部署 ARM 模板,但您的里程可能会有所不同。

PS。如果您使用的是 CLI 而不是 PowerShell,您仍然可以使用 CLI 扩展来执行此操作:az extension add --name resource-graph


推荐阅读