用于存储帐户 blob 创建事件网格订阅的 ARM 模板

ARM template for storage account blob create event grid subscription

我在存储帐户上为 blob 创建的事件创建了事件网格订阅。我想使用 ARM 模板创建相同的东西,但遇到了麻烦。

观察-

  1. 运行 下面的模板在资源组而不是存储帐户上创建事件网格订阅。
  2. 根据问题 #563 and #455,供应商应该用作类型。但是 'providers' 类型在 API 版本“2020-04-01-preview”中无效。
{
      "name": "[parameters('blobcreate_eventsubscription_name')]",
      "apiVersion": "2020-04-01-preview",
      "type": "Microsoft.EventGrid/eventSubscriptions",
      "dependsOn": [
      "[variables('storageAccountResourceId')]" //,
     //"[variables('functionAppResourceId')]"
      ],
     "properties": {
        // "topic": "[variables('storageAccountResourceId')]",
        "destination": {
        "endpointType": "AzureFunction",
        "properties": {
           "resourceId": "[variables('azureFunctionResourceId')]",
           "maxEventsPerBatch": 1,
           "preferredBatchSizeInKilobytes": 64
         } 
       },
       "filter": {
       "subjectBeginsWith": "[concat('/blobServices/default/containers', parameters('storageAccounts_blobname'))]",
       "subjectEndsWith": ".xml",
       "includedEventTypes": [
        "Microsoft.Storage.BlobCreated"
       ],
       "advancedFilters": []
     },
     "labels": [],
     "eventDeliverySchema": "EventGridSchema",
     "retryPolicy": {
       "maxDeliveryAttempts": "[parameters('eventgrid_maxDeliveryAttemps')]",
       "eventTimeToLiveInMinutes": "[parameters('eventgrid_eventTimeToLiveInMinutes')]"
     },
     "deadLetterDestination": {
       "endpointType": "StorageBlob",
       "properties": {
          "resourceId": "[variables('storageAccountResourceId')]",
          "blobContainerName": "[parameters('storageAccounts_deadletterblob_name')]"
        }
      }
    }
}

这里有一个官方例子,你可以使用一个 base:

{
    "type": "Microsoft.Storage/storageAccounts/providers/eventSubscriptions",
    "name": "[concat(parameters('storageName'), '/Microsoft.EventGrid/', parameters('eventSubName'))]",
    "apiVersion": "2018-01-01",
    "dependsOn": [
        "[parameters('storageName')]"
    ],
    "properties": {
        "destination": {
            "endpointType": "WebHook",
            "properties": {
                "endpointUrl": "[parameters('endpoint')]"
            }
        },
        "filter": {
            "subjectBeginsWith": "",
            "subjectEndsWith": "",
            "isSubjectCaseSensitive": false,
            "includedEventTypes": [
                "All"
            ]
        }
    }
}

注意资源的资源类型和名称。

https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-event-grid-subscription-and-storage/azuredeploy.json