Отладка Python лямбда-кода локально с аргументами - PullRequest
0 голосов
/ 23 марта 2020

Я использую VS Code для отладки скрипта Python, который будет запускаться в AWS Lambda, запускаемой CloudWatch Events. CloudWatch передает событие в функцию как объект, поэтому я пытаюсь выяснить, как повторить это в конфигурации отладки. Я хочу, чтобы один и тот же код работал как в Lambda, так и в локальном отладчике. Пример кода:

import sys, boto3, json

def main(*argv):
  try:
    aws = boto3.Session(profile_name = 'work', region_name='us-west-2')
  except:
    aws = boto3.Session(region_name='us-west-2')

  print(argv[0]['time'])

if __name__ == '__main__':
  print('Running in local debugger...')
  main(json.loads(sys.argv[1]))

В Lambda я могу получить время запуска события с помощью argv[0]['time']. Так что я добавил эту строку в launch.json:

"args": [ "{\"time\": \"2020-03-23T01:57:05Z\", \"source\": \"aws.events\"}" ]

Это работает, но это уродливо и не так просто обновить эти значения. Есть лучший способ сделать это? Было бы неплохо прочитать файл JSON как аргументы.

...