#python #azure #azure-functions #azure-web-app-service #azureservicebus
Вопрос:
У меня есть функция Python Azure, которая запускается на основе сообщений в теме, которая отлично работает независимо. Однако, если я затем попытаюсь также записать сообщение в другую очередь служебной шины, это не сработает (как и в функции Azure, даже не сработает, если в теме будут опубликованы новые сообщения). Такое ощущение, что условия запуска не выполняются, когда я включаю msg_out: func.Out[str]
компонент. Любая помощь будет очень признательна!
__init.py
import logging
import azure.functions as func
def main(msg: func.ServiceBusMessage, msg_out: func.Out[str]):
# Log the Service Bus Message as plaintext
# logging.info("Python ServiceBus topic trigger processed message.")
logging.info("Changes are coming through!")
msg_out.set("Send an email")
функция.json
{
"scriptFile": "__init__.py",
"entryPoint": "main",
"bindings": [
{
"name": "msg",
"type": "serviceBusTrigger",
"direction": "in",
"topicName": "publish-email",
"subscriptionName": "validation-sub",
"connection": "Test_SERVICEBUS"
},
{
"type": "serviceBus",
"direction": "out",
"connection": "Test_SERVICEBUS",
"name": "msg_out",
"queueName": "email-test"
}
]
}
хост.json
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[2.*, 3.0.0)"
},
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 32,
"maxAutoRenewDuration": "00:05:00"
},
"sessionHandlerOptions": {
"autoComplete": false,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 16
}
}
}
}
Ответ №1:
Я могу воспроизвести вашу проблему, похоже, она вызвана следующей ошибкой:
Свойство sessionHandlerOptions не допускается.
Удаление sessionHandlerOptions
может быть инициировано в обычном режиме.
Комментарии:
1. Я тоже так думаю. Документация docs.microsoft.com/en-us/azure/azure-functions/… говорит, что «Если для параметра isSessionsEnabled установлено значение true, параметры sessionHandlerOptions будут соблюдены. Если для параметра isSessionsEnabled установлено значение false, параметры обработки сообщений будут соблюдены».