Кажется, что триггер on_s3_event не работает - PullRequest
0 голосов
/ 16 октября 2019

У меня есть приложение Chalice, которое считывает данные конфигурации из файла в корзине S3. Время от времени файл может изменяться, и я хочу, чтобы приложение немедленно использовало обновленные значения, поэтому я использую декоратор on_s3_event для перезагрузки файла конфигурации.

Мой код выглядит примерно такдля наглядности):

CONFIG = {}
app = Chalice(app_name='foo')

@app.on_s3_event(bucket=S3_BUCKET, events=['s3:ObjectCreated:*'],
    prefix='foo/')
def event_handler(event):
    _load_config()

def _load_config():

    # fetch json file from S3 bucket

    CONFIG['foo'] = some item from the json file...
    CONFIG['bar'] = some other item from the json file...

_load_config()

@app.route('/')
def home():
    # refer to CONFIG values here

Моя проблема в том, что в течение короткого времени (возможно, 5-10 минут) после загрузки новой версии файла конфигурации приложение все еще использует старые значения конфигурации.

Я делаю это неправильно? Разве я не должен зависеть от глобального состояния в лямбда-функции вообще?

...