我正在编写一个ARM模板,该模板可以部署构成应用程序一部分的资源。
AzureWebJobsServiceBus
应用程序设置需要部署才能使此功能触发器起作用。当然,队列连接字符串包含来自在同一ARM模板中创建的授权规则的共享访问密钥。
我需要以某种方式构建一个连接字符串并引用刚才创建的密钥。
"siteConfig": {
"appSettings": [
{
"name": "AzureWebJobsServiceBus",
"value": "[concat('Endpoint=sb://', parameters('serviceBusNamespaceName'), '.servicebus.windows.net/;SharedAccessKeyName=sender-listener;SharedAccessKey=', listKeys(resourceId('Microsoft.ServiceBus/namespaces/queues/authorizationRules', parameters('serviceBusNamespaceName'), '/http-push/sender-listener'),'2015-05-01-preview').key1)]"
},
目前,以上内容给了我这个错误。
部署模板验证失败:“ 136”行和“ 9”列的模板资源“ mycompany-myapp-mycomponent-functionapp”无效:无法评估模板语言函数“ resourceId”:该函数仅需要一个multi -segmented参数,该参数必须是资源类型,包括资源提供者名称空间。
该错误是由我的dependsOn
引起的,尽管其语法与我以上value
中使用的语法相同,所以感觉像是进步。对于我的情况,正确的语法是:
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces/queues/authorizationRules', parameters('serviceBusNamespaceName'), 'queue-name', 'auth-rule-name')]"
],
仍然在其他地方工作。
将此用作上面的应用程序设置的值会立即导致新的错误。
"[concat('Endpoint=sb://', parameters('serviceBusNamespaceName'), '.servicebus.windows.net/;SharedAccessKeyName=auth-rule-name;SharedAccessKey=', listKeys(resourceId('Microsoft.ServiceBus/namespaces/queues/authorizationRules', parameters('serviceBusNamespaceName'), 'queue-name', 'auth-rule-name'),'2015-05-01-preview').key1)]"
未找到类型“命名空间/队列/授权规则”的位置“ uksouth”和API版本“ 2015-05-01-preview”的注册资源提供者。支持的api版本为'2014-09-01,2015-08-01,2017-04-01'。支持的位置是“。
:(
将listKeys
的版本切换为2017-04-01
,现在出现了这个非常有用的错误!
'语言表达属性'key1'不存在,可用属性为'primaryConnectionString,secondaryConnectionString,primaryKey,secondaryKey,keyName'。
答案 0 :(得分:0)
好,这花了大约8个小时来整理。 #生产
根据此处的错误:
'语言表达属性'key1'不存在,可用属性为'primaryConnectionString,secondaryConnectionString,primaryKey,secondaryKey,keyName'。
可用的连接字符串听起来好像不需要我连接我自己的连接字符串,因为服务总线队列触发器不喜欢最后的队列名称,所以我必须像这样手动编写。 / p>
"value": "[concat('Endpoint=sb://', parameters('serviceBusNamespaceName'), '.servicebus.windows.net/;SharedAccessKeyName=auth-rule-name;SharedAccessKey=', listKeys(resourceId('Microsoft.ServiceBus/namespaces/queues/authorizationRules', parameters('serviceBusNamespaceName'), 'queue-name', 'auth-rule-name'),'2017-04-01').primaryKey)]"