生成EventGrid并将AzureFunction定义为端点

生成EventGrid并将AzureFunction定义为端点,azure,arm-template,azure-eventgrid,azure-template,Azure,Arm Template,Azure Eventgrid,Azure Template,通过门户,我可以在存储帐户中定义事件订阅,最后我在门户中有这样一个视图: 现在,我想对ARM模板执行同样的操作,我有以下代码: { "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions", "name": "[concat(variables('StorageAccountName'),'/Microsoft.EventGrid/',variables('EventGridName'))]", "locat

通过门户,我可以在存储帐户中定义事件订阅,最后我在门户中有这样一个视图:

现在,我想对ARM模板执行同样的操作,我有以下代码:

{
  "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions",
  "name": "[concat(variables('StorageAccountName'),'/Microsoft.EventGrid/',variables('EventGridName'))]",
  "location": "[parameters('region')]",
  "apiVersion": "2018-01-01",
  "dependsOn": [ "[resourceId('Microsoft.Web/sites', variables('AzureFunction'))]" ],
  "properties": {
    "topic": "[concat('Microsoft.EventGrid/topics/',variables('StorageAccountName'))]",
    "destination": {
      "endpointType": "WebHook",
      "properties": {
        "topics": "[variables('StorageAccountName')]",
        "endpointUrl": "[concat('https://', variables('AzureFunction'),'.azurewebsites.net/admin/extensions/EventGridExtensionConfig')]"
      }
    }

  }
}
运行此代码后,出现以下错误:

Resource Microsoft.EventGrid/topics/providers/eventSubscriptions 'xxxx0prod0sac0xx0we/Microsoft.EventGrid/xxxx-prod-eg-dz-we' failed with message '{
   "error": {
     "code": "ResourceNotFound",
     "message": "The Resource 'Microsoft.EventGrid/topics/xxxx0prod0sac0xx0we' under resource group 'xxxx' was not found."
   }
 }'

你知道我该怎么做才能解决这个问题吗?

@Kaja,请使用下面的ARM模板在存储帐户中创建事件订阅:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "defaultValue": "[concat('storage', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Provide a unique name for the Blob Storage account."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Provide a location for the Blob Storage account that supports Event Grid."
      }
    },
    "eventSubName": {
      "type": "string",
      "defaultValue": "subToStorage",
      "metadata": {
        "description": "Provide a name for the Event Grid subscription."
      }
    },
    "endpoint": {
      "type": "string",
      "metadata": {
        "description": "Provide the URL for the WebHook to receive events. Create your own endpoint for events."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts/providers/eventSubscriptions",
      "name": "[concat(parameters('storageName'), '/Microsoft.EventGrid/', parameters('eventSubName'))]",
      "apiVersion": "2018-01-01",
      "properties": {
        "destination": {
          "endpointType": "WebHook",
          "properties": {
            "endpointUrl": "[parameters('endpoint')]"
          }
        },
        "filter": {
          "subjectBeginsWith": "",
          "subjectEndsWith": "",
          "isSubjectCaseSensitive": false,
          "includedEventTypes": [
            "All"
          ]
        }
      }
    }
  ]
}

参考资料:

这可能是由于模板中的参数或变量(可能是“名称”中的变量)错误造成的,因此您能否共享部署的整个arm模板(包括参数和变量)?