Как иметь более одного обработчика в лямбда-функции AWS? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть очень большой файл Python, который состоит из нескольких определенных функций.Если вы знакомы с AWS Lambda, при создании лямбда-функции вы указываете обработчик, который является функцией в коде, который AWS Lambda может вызывать, когда служба выполняет мой код, который представлен ниже в файле my_handler.py:

    def handler_name(event, context):
    ...
    return some_value

Источник ссылки: https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html

Однако, как я упоминал выше, в my_handler.py у меня есть несколько определенных функций, которые имеют свои собственные события и контексты.Следовательно, это приведет к ошибке.Есть ли способы обойти это в python3.6?

1 Ответ

0 голосов
/ 05 июня 2018

Ваша отдельная функция-обработчик должна отвечать за анализ входящего события и определение подходящего маршрута.Например, скажем, ваши другие функции называются helper1 и helper2.Ваша функция-обработчик лямбды будет проверять входящее событие, а затем, основываясь на одном из полей входящего события (т. Е. Назовем его EventType), вызвать либо helper1, либо helper2, передав и событие, и контекст.объекты.

def handler_name(event, context):
  if event['EventType'] = 'helper1':
    helper1(event, context)
  elif event['EventType'] = 'helper2':
    helper2(event, context)

def helper1(event, context):
  pass

def helper2(event, context):
  pass

Это всего лишь псевдокод, и я не проверял его сам, но он должен объяснить концепцию.

...