azure - 如何以编程方式获取 Azure webapp 的 ASUID?
问题描述
我正在尝试编写域管理门户并将域映射到 Azure webapp 我需要将带有应用程序 ASUID 的 TXT 记录添加到域。我能找到获取 ASUID 的唯一方法是通过 Azure 门户仪表板。有没有我可以用来以编程方式获取它的 API?
解决方案
万一你到这里想知道如何在没有人工干预的情况下做到这一点。这是我的工作流程:
- 使用 Web 应用程序和主机名绑定部署 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"}
- 我现在调用一个函数,该函数使用我的 DNS 托管服务提供商 API 来添加具有适用 asuid 的 TXT 记录。就我而言,它可以立即使用,因此我可以立即成功地重新部署 ARM 模板,但您的里程可能会有所不同。
PS。如果您使用的是 CLI 而不是 PowerShell,您仍然可以使用 CLI 扩展来执行此操作:az extension add --name resource-graph
推荐阅读
- sql - Azure 数据工厂数据流 json 到 SQL
- ios - WKWebView 检测登录页面更改或重定向
- python - TypeError:预期的 str、字节或 os.PathLike 对象,而不是列表转换
- c# - 是否可以在 setter 中将属性作为 ref 参数传递?c#(避免“属性或索引器不能作为 out 或 ref 参数传递”。)
- python - Pandas 如果值等于 1,则给出列名
- python - 元组迭代中列表中的Python dict
- .net - 将排序添加到 linq
- python-3.x - 使用索引对时间序列数据进行子集化时出现键错误
- javascript - 从常规 JavaScript 触发角度元素事件
- spring - 如何将“组织”声明添加到 SP 的元数据(Spring SAML)中?