2017-10-20 200 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門戶的圖像快照。請檢查。 –