2017-10-20 321 views
-4

私は最初のLambda関数を 'Python 3.6'としてRunTimeで記述しようとしています。 以下は、機能の作成時の選択項目です。 役割 - カスタム役割を選択します。 既存の役割 - ラムダの基本的な実行以下のように Pythonのコード:AWS Lambda Handlerエラー - モジュール 'index'の構文エラー:

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 

してくださいこのエラーを解決し、最初のラムダ関数を正常に実行する方法を教えてください。これを実行した後、コードの私の目的は、get HTTPrequestsあり、その後、以下

は、AWSのラムダ関数からのスナップショットです(現在、私は変数に格納されてきた)そのJSON値を読む: enter image description here

+2

これはPythonの構文のようですか?公式の[Pythonチュートリアル](https://docs.python.org/3/tutorial/)を読むことをお勧めします。それを読んで、あなたは実際にはPythonが '{}'を使わず、 ';'も使わないことやインデントが適切であることを知っています! –

+0

以前のPythonコードは、オンラインPythonコンパイラで成功裏にテストされました.- https://repl.it/Mwpx しかし、Unglückspilzが提供するソリューションごとに、主な質問のコードを編集しました。 –

答えて

1

あなたは」 Pythonのラムダ関数でjavascriptを使用しようとしています。関数の作成時に使用できるPythonの例を見てください。ハンドラシグネチャはdef lambda_handler(event, context)であり、ハンドラから結果が返されるだけです(コールバックはありません)。

EDIT:コードにはまだエラーが多く、無効なpythonコードです。ここにはlambda_function.index_handlerハンドラを持つ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 
+0

ご返信ありがとうございます。あなたの構文に従ってコードを変更しました。また、上の主な質問のコードでも編集しました。まだ同じエラーが発生しています - モジュール 'index'の構文エラー:構文が無効です(index.py、1行目)。 助けてください! –

+1

コードにエラーがあります。私が言ったように、ラムダ関数を作成するときに提供されている組み込みの例の1つを使用し、そこから開始してください –

+0

試してみました!私の以前のコードは、オンラインPythonコンパイラhttps://repl.it/Mwpxを使ってテストされました。私はとにかく新しいエラー - 「errorMessage」と一緒に提供されたコードをメイン質問に編集しました:「Bad handler 'index_handler'」。私はまた、主な質問のAWSポータルからの画像のスナップショットを添付しました。チェックしてください。 –

関連する問題