Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 通过ARM创建自定义事件网格主题的存储队列订阅_Azure_Arm Template_Azure Eventgrid - Fatal编程技术网

Azure 通过ARM创建自定义事件网格主题的存储队列订阅

Azure 通过ARM创建自定义事件网格主题的存储队列订阅,azure,arm-template,azure-eventgrid,Azure,Arm Template,Azure Eventgrid,我正在尝试从自定义主题设置对存储队列的事件网格订阅 在门户中导航时,这很容易做到,但我无法为此创建适当的ARM模板。在搜索和尝试了很多之后,我找到了下面的模板 { "name": "MyCustomTopicName/Microsoft.EventGrid/MySubscriptionName", "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions", "location": "[resourc

我正在尝试从自定义主题设置对存储队列的事件网格订阅

在门户中导航时,这很容易做到,但我无法为此创建适当的ARM模板。在搜索和尝试了很多之后,我找到了下面的模板

{
    "name": "MyCustomTopicName/Microsoft.EventGrid/MySubscriptionName",
    "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions",
    "location": "[resourceGroup().location]",
    "apiVersion": "2019-06-01",
    "properties": {
        "destination": {
            "endpointType": "StorageQueue",
            "properties": {
                "resourceId": "[resourceId('Microsoft.Storage/storageAccounts', variables('theNameOfMyStorageAccount'))]",
                "queueName": "[variables('theNameOfMyQueue')]"
            }
        },
        "filter": {
            "advancedFilters": []
        },
        "labels": [],
        "eventDeliverySchema": "EventGridSchema"
    }
}
Deployment failed. Correlation ID: [guid]. {
  "error": {
    "code": "ResourceNotFound",
    "message": "The Resource 'Microsoft.EventGrid/topics/MyCustomTopicName' under resource group 'TheResourceGroupTheStorageAccountIsIn' was not found."
  }
}
在我看来,这很正常,但失败了,因为事件网格主题不在我要将模板部署到的资源组中

{
    "name": "MyCustomTopicName/Microsoft.EventGrid/MySubscriptionName",
    "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions",
    "location": "[resourceGroup().location]",
    "apiVersion": "2019-06-01",
    "properties": {
        "destination": {
            "endpointType": "StorageQueue",
            "properties": {
                "resourceId": "[resourceId('Microsoft.Storage/storageAccounts', variables('theNameOfMyStorageAccount'))]",
                "queueName": "[variables('theNameOfMyQueue')]"
            }
        },
        "filter": {
            "advancedFilters": []
        },
        "labels": [],
        "eventDeliverySchema": "EventGridSchema"
    }
}
Deployment failed. Correlation ID: [guid]. {
  "error": {
    "code": "ResourceNotFound",
    "message": "The Resource 'Microsoft.EventGrid/topics/MyCustomTopicName' under resource group 'TheResourceGroupTheStorageAccountIsIn' was not found."
  }
}
我正在将完整的ARM模板部署到
中的资源组存储帐户中。
MyCustomTopicName
主题位于我们放置自定义主题的资源组中,因此所有服务都可以使用它

我尝试使用自定义主题的完整标识符(资源id),但这是无效的。想法


PS:我正在使用一个类似的模板来创建Azure功能的订阅,它确实可以正常工作。那里的主要区别是
目的地
块,这是有意义的。

如果我读对了这篇文章,你只需要使用嵌套部署并将主题所在的资源组作为目标:

{
    "apiVersion": "2017-05-10",
    "name": "nestedTemplate",
    "type": "Microsoft.Resources/deployments",
    "resourceGroup": "your_topic_resource_roup",
    "properties": {
        "mode": "Incremental",
        "template": {
            "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "parameters": {},
            "variables": {},
            "resources": [
                {
                    "name": "MyCustomTopicName/Microsoft.EventGrid/MySubscriptionName",
                    "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions",
                    "location": "[resourceGroup().location]",
                    "apiVersion": "2019-06-01",
                    "properties": {
                        "destination": {
                            "endpointType": "StorageQueue",
                            "properties": {
                                "resourceId": "[resourceId('Microsoft.Storage/storageAccounts', variables('theNameOfMyStorageAccount'))]",
                                "queueName": "[variables('theNameOfMyQueue')]"
                            }
                        },
                        "filter": {
                            "advancedFilters": []
                        },
                        "labels": [],
                        "eventDeliverySchema": "EventGridSchema"
                    }
                }
            ]
        }
    }
},

您可以分享一个ARM模板的片段吗?您使用它来部署针对某个函数的订阅?