Запуск функции Azure на основе служебной шины и обратная запись не работают (Python)

#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, параметры обработки сообщений будут соблюдены».