Azure ARM模板创建Event Hub copy loop时报命名空间无效错误
问题根因排查
1. 命名空间全局唯一性冲突
你收到的The specified service namespace is invalid错误核心原因是:Event Hub 命名空间名称为 Azure 全局唯一资源标识,你尝试创建的gor1已经被其他用户占用,所以直接返回非法错误。你可以更换为带专属标识的前缀(比如公司缩写、项目标识)的命名空间名称即可解决该报错。
2. 事件中心资源关联逻辑错误
即使解决了命名空间唯一性问题,后续部署依然会失败,你当前模板的事件中心资源配置存在问题:
你在事件中心的name字段直接使用了原始的eventHubNamespaceName参数值,没有拼接copyIndex(1)后缀。你实际创建的命名空间是gor1,但事件中心会尝试关联不存在的gor命名空间,必然抛出找不到父资源的错误。
3. 未实现事件中心名称同步迭代
你要求命名空间和事件中心名称同步迭代,但当前事件中心的名称是固定值,不会随copy索引变化,不符合你的部署预期。
修复方案
你只需要修改模板中Microsoft.EventHub/namespaces/eventhubs资源的name字段即可:
"name": "[concat(parameters('eventHubNamespaceName'), copyIndex(1), '/', parameters('eventHubName'), copyIndex(1))]"
修改后命名空间和事件中心会完全同步迭代:looplength=1时生成gor1/gone1,looplength=2时生成gor1/gone1、gor2/gone2,匹配你的需求。
内容的提问来源于stack exchange,提问作者Norrin Rad
相关产品推荐
相关产品推荐

