Я использую 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 как аргументы.