AWS Lambda Handler错误 - 模块中的语法错误'索引':

时间:2017-10-20 09:35:20

标签: python amazon-web-services lambda handler

我试图用RunTime编写我的第一个Lambda函数作为' Python 3.6'。 以下是创建函数时的选择: 角色 - 选择自定义角色。 现有角色 - Lambda基本执行 Python代码如下:

import json
def index_handler(event, context):
data = '{"Type": "SubscriptionConfirmation2","MessageId": 
"123","SubscribeURL": "https://www.google.com"}'
data1 = json.loads(data)
print (data1['Type'])
if data1['Type']  ==  "SubscriptionConfirmation":
var=data1['SubscribeURL']
elif data1['Type']  ==  "Notification" and data1['SubscribeURL'] == var and 
var != "":
var=data1['SomeOtherProperty']
else:
return "Invalid JSON input"
return var

在执行此操作时,我正好低于错误:

{
"errorMessage": "Bad handler 'index_handler'" 
}

日志输出:

START RequestId: 3b263d82-b58c-11e7-aa6f-37f006380a9a Version: $LATEST
Bad handler 'index_handler': not enough values to unpack (expected 2, got 1)

END RequestId: 3b263d82-b58c-11e7-aa6f-37f006380a9a
REPORT RequestId: 3b263d82-b58c-11e7-aa6f-37f006380a9a  Duration: 0.58 ms   
Billed Duration: 100 ms     Memory Size: 1280 MB    Max Memory Used: 22 MB  

请告诉我如何解决此错误并成功运行我的第一个lambda函数?执行此操作后,我的代码目的是获取HTTPrequests,然后读取其json值(目前我已存储在变量中)

以下是AWS lambda函数的快照: enter image description here

1 个答案:

答案 0 :(得分:2)

你正试图在python lambda函数中使用javascript。看看创建函数时可用的python示例。处理程序签名应该是def lambda_handler(event, context),结果只是从处理程序返回(没有回调)。

编辑:您的代码仍然存在错误,并且是无效的python代码。这是您发布的内容的修改版本,该版本应该适用于具有lambda_function.index_handler处理程序的Python运行时lambda。

import json

def index_handler(event, context):
    data = '{"Type": "SubscriptionConfirmation2","MessageId": "123","SubscribeURL": "https://www.google.com"}'
    data1 = json.loads(data)

    print (data1['Type'])
    if data1['Type']  ==  "SubscriptionConfirmation":
        var=data1['SubscribeURL']
    elif data1['Type']  ==  "Notification" and data1['SubscribeURL'] == var and var != "":
        var=data1['SomeOtherProperty']
    else:
        return "Invalid JSON input"

    return var