用于标识 Azure 日志分析可用 SKU 的编程方法



我正在尝试创建一个 ARM 模板,以通过 ARM 部署 Azure Log Analytics 工作区。 模板工作正常,但它需要了解哪些 SKU 对目标订阅有效 - PerGB2018 适用于新订阅,或旧 SKU 之一适用于非迁移订阅。

定价模型详见此处: https://learn.microsoft.com/en-gb/azure/monitoring-and-diagnostics/monitoring-usage-and-estimated-costs#new-pricing-model-and-operations-management-suite-subscription-entitlements

此处列出了用于创建工作区的可用 SKU: https://learn.microsoft.com/en-us/rest/api/loganalytics/workspaces/createorupdate

我不知道如何在部署之前确定哪些对特定订阅有效,最终出现错误和失败的部署,其中我选择的默认值无效。 我不能假设调用模板的人员或系统会理解并有权访问正确的定价 SKU 集。 PerGB2018 不能用于未迁移的订阅,因此不能成为我的默认值。

任何人都可以分享一种方法来确定哪些 SKU 在尝试部署之前可以工作,从而避免错误? 我已经检查了监视器和计费 API,以防它列在那里但看不到任何内容,并且来自门户页面的网络调用没有提供太多见解:(

我倾向于避免使用PowerShell,因为部署的其余部分使用BASH来请求部署信息并构建参数文件。

谢谢

不可避免地,在提出问题之后有了突破 - 下面的 BASH 脚本使用 Azure CLI 2 获取 AAD 访问令牌并将其存储在token中。 接下来,我们获取订阅 ID 并将其存储在subscriptionId.

获得子 ID 和有效的访问令牌后,我们使用 curl 调用 API 终结点,该终结点列出了迁移到新定价模型的日期。

token=$(az account get-access-token | jq ".accessToken" -r) subscriptionId=$(az account show | jq ".id" -ropt) optedIn=$(curl -X POST -H "Authorization:Bearer $token" -H "Content-Length:0" https://management.azure.com/subscriptions/$subscriptionId/providers/microsoft.insights/listmigrationdate?api-version=2017-10-01 | jq ".optedInDate" -r)

我的理解是,optedIn的值为"null"意味着它是传统的定价 SKU。

如果您不同意或有更好的答案,请大喊大叫!

最新更新