Мне нужно найти способ добавить несколько настраиваемых действий к действию SQL правила подписки на тему служебной шины Azure.
Azure CLI допускает только один - и предстоящий заменит существующий (во всяком случае, я не нашел способа передать более 1 аргумента):
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'"
}
}
}]
}]
}]
}]
Я немного запутался.
Спасибо.