2017-08-01 15 views
1

ラムダ機能をAWS管理コンソールではなくCLI経由でテストしたいと考えています。私は、ドキュメントを読んだcli経由でAWSラムダ機能をテスト

(bashスクリプトを作ることによって、機能テストを自動化するために見て):私はJSONイベントペイロードを持つラムダ関数を呼び出すようにしようとしていますhttp://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html

。私はエラーを取得しています

#!/bin/bash 

name="arn:aws:lambda:euwest1:100000000000:function:foo" 
invoketype="Event" 
payload="{'account':'100261334439', 'region':'eu-west-1', 'detail-type':'Scheduled Event', 'source':'aws.events', 'time':'2017-07-16T03:00:00Z', 'id':'178710aa-6871-11e7-b6ef-e9b95183cfc9', 'resources':['arn:aws:events:eu-west-1:100000000000:rule/run_everyday']}" 

aws lambda invoke --function-name "$name" --invocation-type "$invoketype" --payload "$payload" testresult.log 

:私bashcodeはこのようになります

An error occurred (InvalidRequestContentException) when calling the Invoke operation: Could not parse request body into json: Unexpected character ('a' 
(code 97)): was expecting double-quote to start field name at [Source: [[email protected]; line: 1, column: 3] 

私は私が間違った形式でペイロードを提供していますが、ドキュメントが何の例を持っていないと信じて、それだけでデータ型と言います「ブロブ」です。私はいくつかの検索を行いましたが、BLOB(バイナリラージオブジェクト)に関する情報しか見つかりませんでしたが、これはドキュメントが参照しているものではないと確信しています。

私は外部二重引用符を使わずにすべての一重引用符を二重引用符で置き換えようとしましたが、これらはすべて同じエラーを示します。

答えて

1

有効JSonはそうあなたが​​属性が

payload='{"account":"100261334439", "region":"eu-west-1", "detail-type":"Scheduled Event", "source":"aws.events", "time":"2017-07-16T03:00:00Z", "id":"178710aa-6871-11e7-b6ef-e9b95183cfc9", "resources":["arn:aws:events:eu-west-1:100000000000:rule/run_everyday"]}' 
として書かれているはずのキーと値

二重引用符の間を持っている必要があります
関連する問題