2016-03-03 5 views
0

Я пытаюсь развернуть питон .zip пакет как AWS лямбдаразвертывания пакета AWS Lambda

Я выбираю привет-питон Footprint.

Я создал первую лямбду со встроенным кодом, после чего попытался перейти на загрузку с разработки .zip.

Пакет я использовал это .zip содержит один файл с именем hello_python.py с тем же кодом, образец кода инлайн по умолчанию, который показан ниже:

from __future__ import print_function 

import json 

print('Loading function') 


def lambda_handler(event, context): 
    #print("Received event: " + json.dumps(event, indent=2)) 
    print("value1 = " + event['key1']) 
    print("value2 = " + event['key2']) 
    print("value3 = " + event['key3']) 
    return event['key1'] # Echo back the first key value 
    #raise Exception('Something went wrong') 

После нажатия «сохранить и тест», ничего не происходит, но я получаю эту странную красную ленточку, но никаких других существенных сообщений об ошибках. Журналы и результаты выполнения не имеют каких-либо изменений, если вы изменяете исходный код, повторно упаковываете и загружаете его снова. enter image description here

+0

Что-нибудь появляется в журналах CloudWatch? – James

ответ

6

Для функций лямбда требуется обработчик в формате <FILE-NAME-NO-EXTENSION>.<FUNCTION-NAME>. В вашем случае обработчик установлен в lambda_function.lambda_handler, который является значением по умолчанию, присвоенным AWS Lambda). Однако вы назвали свой файл hello_python.py. Поэтому AWS Lambda ищет файл python с именем lambda_function.py и ничего не обнаруживает.

Чтобы исправить это либо:

  1. Переименовать файл hello_python.py в lambda_function.py
  2. Измените лямбда-обработчик функции, чтобы быть hello_python.lambda_handler

Вы можете увидеть пример того, как это работает в documentation где они создают функцию python под названием my_handler() внутри файла hello_python.py, и они создают функцию лямбда для вызова ее с помощью обработчика hello_python.my_handler.