У меня есть некоторый код, который устанавливает обратный вызов через IoTHub Device SDK в initialize_callback
, после чего он получает доступ к конфигурации приложения.Однако, когда вызывается device_twin_callback
, я получаю сообщение об ошибке (RuntimeError: Working outside of application context.
) в строке app.app_context()
или при доступе к app.config
, когда я не нажимаю app_context()
.
Я не уверен, имеет ли это отношение к настройке обратного вызова (MQTT), или я что-то упускаю.
Единственное, что может сработать, - это импортировать файл конфигурации напрямую, но это выглядит как анти-шаблон для уже хорошо определенного приложения Flask app.config
from flask import current_app as app
from iothub_client import IoTHubClient
class Session():
def __init__(self, device_connection_string):
self.client = IoTHubClient(device_connection_string, IoTHubTransportProvider.MQTT)
def device_twin_callback(self, update_state, payload, user_context):
with app.app_context():
print(app.config)
def initialize_callback(self):
print(app.config)
self.client.set_device_twin_callback(self.device_twin_callback, 0)