2017-10-20 156 views
-4

我想写使用运行时我的第一拉姆达功能“的Python 3.6”。 下面是选择在创建功能: 角色 - 选择自定义角色。 现有角色 - 拉姆达基本执行 Python代码如下:AWS 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 

在执行这个,我,得到如下错误:

{ 
"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拉姆达功能快照: enter image description here

+2

这是否看起来像Python语法给你?我建议你阅读官方的[Python教程](https://docs.python.org/3/tutorial/)。读一读,你会发现Python不会像这样使用'{}',也不会使用';'并且缩进是相关的! –

+0

较早的Python代码在网上蟒蛇反编译https://repl.it/Mwpx 测试成功,但现在我已经编辑的代码按由Unglückspilz提供解决方案的主要问题。 –

回答

1

你”重新尝试在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 
+0

感谢您的回复。我已根据您的语法在代码中进行了更改,并在上面主要问题的代码中进行了编辑。仍然收到相同的错误 - 模块'index'中的语法错误:语法无效(index.py,第1行)。 请帮忙! –

+1

您的代码充满了错误。正如我所说的,在创建lambda函数时使用提供给您的内置示例之一,并从那里开始 –

+0

试过了,没有运气!我之前的代码也使用在线python编译器https://repl.it/Mwpx进行了测试。无论如何,我还是在主要问题中编辑了代码,再次提供了您的代码以及新错误 - “errorMessage”:“错误处理程序'index_handler'”。我还附上了主要问题中来自我的AWS门户的图像快照。请检查。 –