Развертывать вложенные ресурсы отдельно

Из-за разделения обязанностей мне нужно разделить существующий шаблон ARM на два отдельных шаблона - один для ресурса и один для ведения журнала.

исходные шаблоны выглядят так:

"resources": [
{ // https://docs.microsoft.com/en-us/azure/templates/microsoft.datafactory/factories
  "type": "Microsoft.DataFactory/factories",
  "name": "[variables('dataFactoryName')]",
  "apiVersion": "[variables('apiVersion')]",
  "location": "[resourceGroup().location]",
  "tags": {},
  "identity": {
    "type": "SystemAssigned"
  },
  "properties": {},
  "resources": [
    {
      "type": "providers/diagnosticSettings",
      "name": "[concat('Microsoft.Insights/', variables('logSettingName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', variables('dataFactoryName'))]"
      ],
      "apiVersion": "2017-05-01-preview",
      "location": "[resourceGroup().location]",
      "tags": {},
      "properties": {
        "name": "[variables('logSettingName')]",

        "workspaceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('logAnalyticsObject').resourceGroup, '//providers/Microsoft.OperationalInsights/workspaces/', parameters('logAnalyticsObject').name)]",

        "logs": "[parameters('logAnalyticsObject').adfv2.logs]",
        "metrics": "[parameters('logAnalyticsObject').adfv2.metrics]"
      }
    }
  ]
}

Первая часть довольно проста, я просто удаляю подресурс, но как правильно получить вторую часть (ресурс с «типом»: «провайдеры / диагностические настройки»), чтобы ее можно было развернуть из другого шаблона? Возможно ли это вообще или они сильно связаны друг с другом?

Я уже пробовал разные вещи вроде

"type": "Microsoft.DataFactory/factories/providers/diagnosticSettings",
"name": "[concat('Microsoft.Insights/', variables('name'))]",

но в итоге появлялись такие сообщения об ошибках:

Unable to process template language expressions for resource '/subscriptions/fb1e20c4-0878-4949-ac10-f92a9ac35db4/resourceGroups/swe-sdp-dv0
-rgp-adp/providers/Microsoft.Resources/deployments/DataFactory_LogAnalytics_Resource' at line '67' and column '5'. 'Unable to evaluate template language 
function 'resourceId': function requires exactly one multi-segmented argument which must be resource type including resource provider namespace. Current 
function arguments 'fb1e20c4-0878-4949-ac10-f92a9ac35db4,swe-sdp-dv0-rgp-anl,Microsoft.Insights,swe-sdp-dv0-oms-001'. Please see 
https://aka.ms/arm-template-expressions/#resourceid for usage details.

Я думаю, чтобы это сработало, мне понадобится правильная комбинация "типа", "имени" и, вероятно, также "зависит от".

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

хорошо, согласно это, вам нужно будет сделать это:

"type": "Microsoft.DataFactory/factories/providers/diagnosticSettings",
"name": "[concat(variables('dataFactoryName'), '/Microsoft.Insights/', variables('name'))]",

Вам не нужно делать это, потому что ресурсы находятся в разных шаблонах.

это дает мне ошибку «Ошибка сервера 404 - ресурс, который вы ищете, мог быть удален, изменилось его имя или временно недоступен».

Gerhard Brueckl 16.10.2018 09:23

обновил ответ. это несколько необычный путь запроса

4c74356b41 16.10.2018 09:49

просто придумал то же самое примерно через 10 минут после вашего ответа :)

Gerhard Brueckl 16.10.2018 10:04

Другие вопросы по теме