#azure #azure-resource-manager #azure-log-analytics #azure-template #azure-oms
#azure #azure-resource-manager #azure-log-analytics #azure-rm-template #azure-oms
Вопрос:
У меня есть существующее рабочее пространство OMS Log Analytics. Идентификатор рабочей области — это guid. Это единственное, что я могу использовать из-за существующего проекта. Используя этот идентификатор guid, мне нужно получить пример имени рабочей области «myWorkspace» в шаблоне arm. Мне разрешено передавать guid в качестве параметра в шаблон arm. Guid на самом деле является свойством CustomerID, если я посмотрю в сопоставлениях Json и resourceId на имя рабочей области, которое начинается с /subscription /xx-xxx-xxx-xxx/……../ myWorkspace.
Мне нужно получить имя этой рабочей области (resourceId) из guid (CustomerID). Пожалуйста, дайте мне знать, могу ли я это сделать или нет? Действительно изо всех сил пытаюсь заставить это работать…
Комментарии:
1. вы хотите получить имя рабочей области с помощью программирования, например, с помощью c #?
2. Не использовать только шаблон ARM @Ivan Yang
3. @chugh97 — Не могли бы вы, пожалуйста, помочь лучше объяснить ваш сценарий, почему вы хотите получить имя рабочей области с помощью шаблона ARM на основе идентификатора рабочей области? и что ограничивает вас в получении имени рабочего пространства на основе workspaceId через powershell или другими способами перед вызовом шаблона ARM? насколько мне известно, в REST API нет параметра для извлечения с использованием идентификатора рабочей области learn.microsoft.com/en-us/rest/api/loganalytics/workspaces/get , у него есть только workspacename
Ответ №1:
Я не уверен, чего вы хотите достичь, но я несколько раз использовал рабочую область Log Analytics с azure ARM. Примером является получение ключа рабочей области и идентификатора рабочей области для подключения виртуальной машины к рабочей области.
Смотрите приведенный ниже код:
{
"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]"
}
}
}
Все зависит от вашего сценария, но это способ получения идентификатора рабочей области и ключа.
Ответ №2:
Вы можете получить его из ARG (Azure resource graph) довольно легко, но я не знаю способа найти его В самом шаблоне ARM. вероятно, вам придется искать идентификатор вне шаблона и передавать его в качестве параметра?
https://learn.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