0

我有一个现有的 OMS Log Analytics 工作区。工作区 ID 是一个指南。由于现有项目,这是我唯一能够使用的东西。使用此 guid,我需要在 arm 模板中获取工作区名称示例“myWorkspace”。我可以将 guid 作为参数传递给 arm 模板。如果我查看 Json 和 ResourceId 映射到以 /subscription/xx-xxx-xxx-xxx/......../myWorkspace 开头的工作区名称,则 Guid 实际上是一个 customerId 属性。

我需要从 guid (customerId) 中获取此工作区名称 (ResourceId)。请让我知道我是否可以这样做?真的很难让这个工作......

4

2 回答 2

1

我不确定您想要实现什么,但我已经多次使用带有 azure ARM 的 Log Analytics 工作区。一个示例是如何检索工作区密钥和工作区 ID 以将 vm 与工作区连接。

见下面的代码:

  {
        "type": "Microsoft.Compute/virtualMachines/extensions",
        "name": "[concat(parameters('vmName'), '/OMSExtension')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters('location')]",
        "dependsOn": [
            "[concat('Microsoft.Compute/virtualMachines/', parameters('vmName') )]"
        ],
        "properties": {
            "publisher": "Microsoft.EnterpriseCloud.Monitoring",
            "type": "OmsAgentForLinux",
            "typeHandlerVersion": "1.7",
            "autoUpgradeMinorVersion": true,
            "settings": {
                "workspaceId": "[reference(resourceId(parameters('logAnalyticsRG'), 'Microsoft.OperationalInsights/workspaces/', parameters('logAnalyticsName')), '2015-03-20').customerId]"
            },
            "protectedSettings": {
                "workspaceKey": "[listKeys(resourceId(parameters('logAnalyticsRG'), 'Microsoft.OperationalInsights/workspaces/', parameters('logAnalyticsName')), '2015-03-20').primarySharedKey]"
            }
        }
    }

一切都取决于您的场景,但这是检索工作区 ID 和密钥的方式。

于 2020-09-12T15:30:18.533 回答
1

您可以很容易地从 ARG(Azure 资源图)中获取它,但我不知道在 ARM 模板本身中查找它。您可能必须在模板之外查找 id 并将其作为参数传递?

https://docs.microsoft.com/en-us/azure/governance/resource-graph/concepts/explore-resources

Resources 
| where type =~ "microsoft.operationalinsights/workspaces"
| where properties.customerId == "00000000-0000-0000-0000-00000000000"
| project id, name
于 2020-09-12T00:14:14.523 回答