Я пытаюсь настроить подписку Event Grid на мою очередь хранилища из настраиваемой темы.
Это легко сделать при навигации по порталу, но мне не удается создать для этого соответствующий шаблон 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."
}
}
Я развертываю полный шаблон ARM на TheResourceGroupTheStorageAccountIsIn
. Тема MyCustomTopicName
находится в группе ресурсов, где мы размещаем настраиваемые темы, чтобы все службы могли ее использовать.
Я пробовал использовать полный идентификатор (идентификатор ресурса) настраиваемой темы, но это недопустимо. Идеи?
PS: я использую аналогичный шаблон для создания подписки на функцию Azure, которая работает правильно. Основное отличие заключается в блоке destination
, который имеет смысл.