0

我需要找到一种方法将几个自定义操作添加到 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'"
                        }
                    }
                }]
            }]
        }]
    }]

我有点困惑。

谢谢。

4

1 回答 1

0

您需要按如下方式使用它。--action-sql-expression 参数只接受一个值。如果您有多个操作,那么您需要指定如下。对于 ARM 模板也是如此。

az servicebus 主题订阅规则更新 --resource-group xxxxx --namespace-name xxxxxx --topic-name xxxxxx --subscription-name "xxxxxxx" --name NoArchive --action-sql-expression "set CustomProp1 = 'AAA'设置 customProp2 = 'BBB'"

于 2021-03-18T16:28:24.090 回答