我需要找到一种方法将几个自定义操作添加到 Azure 服务总线主题订阅规则 SQL 操作。
Azure CLI 只允许一个 - 即将到来的将替换现有的(无论如何,我还没有找到传递多个参数的方法):
az servicebus topic subscription rule update --resource-group xxxxx --namespace-name xxxxxx --topic-name xxxxxx --subscription-name "xxxxxxx" --name NoArchive --action-sql-expression "set CustomProp2 = 'BBB'"
--action-sql-expression "set CustomProp1 = 'AAA'","set customProp2 = 'BBB'"
导致的格式
BadRequest: There was an error parsing the SQL expression. [Token line=1, column=23, Token in error= ,, Additional details= Unrecognized character. ','] TrackingId:8bbf145d-3f10-476b-b58a-acc3e1014977_B61, SystemTracker:NoSystemTracker, Timestamp:2021-03-03T13:55:13 CorrelationId: 6a0a073c-ed11-4054-8261-777756a2ec3c
看起来不支持多个值。
试图找到一种使用 ARM 模板的方法(如此处所述),但不确定是否也可以使用它传递多个值:
"properties": {
"action": {
"sqlExpression": "set CustomProp2 = 'BBB'",
"compatibilityLevel": 20
},
"filterType": "SqlFilter",
"sqlFilter": {
"sqlExpression": "NoArchive IS NOT NULL",
"compatibilityLevel": 20
}
这是官方 ARM 模板文档的参考,我不确定此参数是否支持多个值。
"resources": [{
"apiVersion": "[variables('sbVersion')]",
"name": "[parameters('serviceBusNamespaceName')]",
"type": "Microsoft.ServiceBus/Namespaces",
"location": "[variables('location')]",
"sku": {
"name": "Standard",
},
"resources": [{
"apiVersion": "[variables('sbVersion')]",
"name": "[parameters('serviceBusTopicName')]",
"type": "Topics",
"dependsOn": [
"[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"path": "[parameters('serviceBusTopicName')]"
},
"resources": [{
"apiVersion": "[variables('sbVersion')]",
"name": "[parameters('serviceBusSubscriptionName')]",
"type": "Subscriptions",
"dependsOn": [
"[parameters('serviceBusTopicName')]"
],
"properties": {},
"resources": [{
"apiVersion": "[variables('sbVersion')]",
"name": "[parameters('serviceBusRuleName')]",
"type": "Rules",
"dependsOn": [
"[parameters('serviceBusSubscriptionName')]"
],
"properties": {
"filterType": "SqlFilter",
"sqlFilter": {
"sqlExpression": "StoreName = 'Store1'",
"requiresPreprocessing": "false"
},
"action": {
"sqlExpression": "set FilterTag = 'true'"
}
}
}]
}]
}]
}]
我有点困惑。
谢谢。