Ресурс 'Microsoft.Web / sites / ab c -rg в группе ресурсов' <null>'не найден - PullRequest
0 голосов
/ 31 марта 2020

FunctionApp уже успешно развернут. При попытке использовать встроенный сценарий PowerShell DevOps Azure с New-AzDeployment для развертывания следующего шаблона ARM:

{
    "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
    "contentVersion": "1.0.0.1",
    "parameters": {
        "location": {
            "type": "string",
            "defaultValue": "westus2",
            "metadata": {
                "description": "The region where resources are deployed"
            }
        },
        "functionAppName": {
            "type": "string",
            "defaultValue": "event-driven-func2",
            "metadata": {
                "description": "Func App"
            }
        },
        "eventGridSubscriptionName": {
            "type": "string",
            "defaultValue": "eventSub1",
            "metadata": {
                "description": "Name of Event Grid Subscription"
            }
        },
        "eventGridFunc":{
            "type": "string",
            "defaultValue": "VmAddedListener",
            "metadata": {
                "description" : "Function Name"
            }
        }
    },
    "variables": {
        "functionUrl" : "[concat('https://', parameters('FunctionAppName'),'.azurewebsites.net/runtime/webhooks/eventgrid?functionName=', parameters('eventGridFunc'),'&code=')]"
    },
    "resources": [
        {
            "apiVersion": "2018-01-01",
            "type": "Microsoft.EventGrid/eventSubscriptions",
            "name": "[parameters('eventGridSubscriptionName')]",
            "location": "[parameters('location')]",
            "properties": {
                "destination": {
                    "endpointType": "Webhook",
                    "properties": {
                        "endpointUrl": "[concat(variables('functionUrl'), listKeys(resourceId('Microsoft.Web/sites/host/', parameters('functionAppName'), 'default'),'2016-08-01').masterKey)]"
                    }
                },
                "filter": {
                    "subjectBeginsWith": "",
                    "subjectEndsWith": "",
                    "isSubjectCaseSensitive": false,
                    "includedEventTypes": [
                        "Microsoft.Resources.ResourceActionCancel",
                        "Microsoft.Resources.ResourceActionFailure",
                        "Microsoft.Resources.ResourceActionSuccess",
                        "Microsoft.Resources.ResourceDeleteCancel",
                        "Microsoft.Resources.ResourceDeleteFailure",
                        "Microsoft.Resources.ResourceDeleteSuccess",
                        "Microsoft.Resources.ResourceWriteCancel",
                        "Microsoft.Resources.ResourceWriteFailure",
                        "Microsoft.Resources.ResourceWriteSuccess"
                      ]
                }
            }
        }
    ],
    "outputs": {}
} 

Получение следующей ошибки во время выпуска:

«ошибка»: {"code": "ResourceNotFound", "message": "Ресурс 'Microsoft.Web / sites / ab c -rg' в группе ресурсов '' не найден." }} '

Нужно ли указывать группу ресурсов в ARM?

1 Ответ

0 голосов
/ 31 марта 2020

Вы объявляете ссылку на ресурс, который не определен в вашем шаблоне ARM: listKeys(resourceId('Microsoft.Web/sites/host/', parameters('functionAppName'), 'default'),'2016-08-01').masterKey)]

resourceId будет работать только для ресурсов, определенных в вашем шаблоне ARM. Вы можете создать идентификатор ресурса с помощью конкатенации и некоторых дополнительных параметров или определить ресурс в одном и том же шаблоне ARM.

Идеальным вариантом при использовании шаблонов ARM является определение всей среды в одном шаблон (или несколько шаблонов, на которые ссылается один «главный» шаблон), затем управляйте изменениями в среде путем соответствующего обновления шаблона.

...