【问题标题】:Programmatic method to identify Azure Log Analytics Available SKUs识别 Azure Log Analytics 可用 SKU 的编程方法
【发布时间】:2018-05-31 16:06:34
【问题描述】:

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

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

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

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

在尝试部署之前,谁能分享一种方法来确定哪些 SKU 可以工作,从而避免错误?我已经检查了 Monitor 和 Billing API,以防它在那里列出但看不到任何东西,并且来自门户页面的网络调用没有提供太多洞察力:(

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

谢谢

【问题讨论】:

    标签: azure azure-resource-manager azure-log-analytics


    【解决方案1】:

    不可避免地,在问完问题后有了突破——下面的 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。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      相关资源
      最近更新 更多