Powershell servicebus不工作的ARM部署资源ID

Powershell servicebus不工作的ARM部署资源ID,powershell,azure,devops,servicebus,azure-resource-manager,Powershell,Azure,Devops,Servicebus,Azure Resource Manager,我在尝试部署Azure资源包时遇到此错误。想要找到绕过“resourceId”的方法:函数只需要一条多段参数语句 [ERROR] New-AzureRmResourceGroupDeployment : 2:17:06 PM - Error: Code=InvalidTemplate; 14:17:06 - [ERROR] Message=Deployment template validation failed: 'The template resource 14:17:06 - [ER

我在尝试部署Azure资源包时遇到此错误。想要找到绕过“resourceId”的方法:函数只需要一条多段参数语句

 [ERROR] New-AzureRmResourceGroupDeployment : 2:17:06 PM - Error: Code=InvalidTemplate; 
14:17:06 - [ERROR] Message=Deployment template validation failed: 'The template resource 
14:17:06 - [ERROR] 'xxxxx/basket-item-changed-topic/basket-telemetry-processor' at line 
14:17:06 - [ERROR] '2799' and column '10' is not valid: Unable to evaluate template language 
14:17:06 - [ERROR] function 'resourceId': function requires exactly one multi-segmented argument 
14:17:06 - [ERROR] which must be resource type including resource provider namespace. Current 
14:17:06 - [ERROR] function arguments 'Microsoft.ServiceBus/namespaces/topics,xxxxxx/bask
14:17:06 - [ERROR] et-item-changed-topic'. Please see 
-------------------这是模板

{“注释”:“概括自资源: “/subscriptions/fa17ed69-d83f-47bc-8604-fd96cd27d322/resourcegroups/xxxxxxx-Integration-Environment/providers/Microsoft.ServiceBus/namespace/xxxxx/topics/basket项已更改主题/订阅/basket遥测处理器”。”, “类型”:“Microsoft.ServiceBus/名称空间/主题/订阅”,
“姓名”: “[参数('subscriptions\u basket\u telemetry\u processor\u name')”,
“apiVersion”:“2015-08-01”,“地点”:“英国西部”,
“缩放”:空,“属性”:{
“锁定持续时间”:“00:02:00”,“请求持续时间”:false,
“defaultMessageTimeToLive”:“10675199.02:48:05.4775807”,
“DeadLetteringNoMessageExpiration”:正确,
“deadLetteringOnFilterEvaluationExceptions”:真,
“messageCount”:0,“maxDeliveryCount”:1,
“enableBatchedOperations”:true,“状态”:“活动”,
“createdAt”:“2017-05-10T14:31:54.2059078Z”,
“更新日期”:“2017-05-10T14:31:56.6330818Z”,
“访问日期”:“2017-06-23T10:53:20.3815084Z”,
“countDetails”:{“activeMessageCount”:0,
“deadLetterMessageCount”:0,
“scheduledMessageCount”:0,“transferMessageCount”: 0,“transferDeadLetterMessageCount”:0
},“自动删除工具”:“10675199.02:48:05.4775807”,
“实体可用性状态”:“可用”},
“dependsOn”:[
“[resourceId('Microsoft.ServiceBus/namespaces', 参数('namespace\u xxx\u int\u name'))],
“[resourceId('Microsoft.ServiceBus/namespaces/topics', 参数('topics\u basket\u item\u changed\u topic\u name')]“]
},


如果资源部署在同一模板中,则可以仅使用该资源的名称:


您不能将
dependsOn
用于部署或存在于模板之外的资源,因此我最初的评论没有任何意义。

这是一个命名问题

参数('namespace\u xxx\u int\u name')

解决问题的步骤

1.从参数文件中删除参数。(使用默认参数)

2.添加您的函数


3.查找导致错误的所有相关位置。

所有资源是否都在同一个模板中?是的,它们在同一个azure资源模板中。我也在这里询问过,但不了解如何实现该解决方案。引用请记住,如果您只是使用名称,而不是资源ID,那么资源名称必须是唯一的(这通常是正确的,但对于不同类型的资源不是必需的)。嘿,我从来没有真正尝试过它,如果我在同一模板中有两个同名的资源,会发生什么,在这种情况下,
dependsOn
是否无法解析?
dependsOn: [
    "[parameters('namespaces_xxx_int_name')]",
    "[parameters('topics_basket_item_changed_topic_name')]"
]