我已成功完成服务总线,但只适用于高级 RootManageSharedAccessKey 。
但是,对于Event Hub,我想要 SendOnly 共享访问策略的主连接字符串。
我尝试了很多组合,但是当我部署部署时,我找不到SendOnly共享访问策略。
以下是我的SendOnly共享访问策略的json。
非常感谢任何帮助。
答案 0 :(得分:5)
最终工作的ARM模板代码是:
[listkeys(resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', variables('ehub').name, parameters('eventhubs_myaccountevents_name'), 'SendOnly'), parameters('eventhubs_api_version')).primaryConnectionString]
请注意,而不是:
Microsoft.Eventhub/namespaces/authorizationRules
我必须使用它:
Microsoft.EventHub/namespaces/eventhubs/authorizationRules
答案 1 :(得分:1)
使用它来获取连接字符串:
"[listkeys(resourceId('Microsoft.Eventhub/namespaces/authorizationRules',
parameters('name'), 'RootManageSharedAccessKey'),
'2017-04-01').primaryConnectionString]"
你不能跨行分割,为了便于阅读,我已经这样做了
答案 2 :(得分:1)
这是我解决的方法(包括创建授权规则):
...
"variables": {
"eventHubNamespaceName": "myehubns",
"eventHubName": "myehub",
"eventhubSendAuthorizationRuleName": "SendOnly",
"eventHubSendRuleId": "[resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', variables('eventHubNamespaceName'),variables('eventHubName'), variables('eventhubSendAuthorizationRuleName'))]"
}
...
"resources": [{
"apiVersion": "2017-04-01",
"name": "[variables('eventhubSendAuthorizationRuleName')]",
"type": "authorizationRules",
"dependsOn": [
"[concat('Microsoft.EventHub/namespaces/', variables('eventHubNamespaceName'),'/eventhubs/',variables('eventHubName'))]"
],
"properties": {
"rights": [
"Send"
]
}
}
]
"EventHubConnectionstring": "[listkeys(variables('eventHubSendRuleId'), '2017-04-01').primaryConnectionString]"