AWS Chatbot を使ってSlackワークフローからlambdaをinvokeするときにpayloadがうまく渡せなかったケース。
slack上で実行したコマンド
@aws lambda invoke --log-type Tail --payload '{}' --function-name tempFunctionName --region ap-northeast-1
以下のようなエラーが出ました。
but unfortunately the service returned an exception:
> Could not parse request body into json: Unexpected character (''' (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: (byte[])"'{}'"; line: 1, column: 2] (Service: AWSLambda; Status Code: 400; Error Code: InvalidRequestContentException; Request ID: 1522ff50-65a8-4d1c-919d-337e837c1ead; Proxy: null)
'''
の意味が一見わからなかったですが、
ASCIIコード表を見るとCode 39はシングルクオート'
のようです。要するにシングルクオートがよくないようです。
参考にした資料にはシングルクオートでpayloadを囲っていましたが、これを抜くと治りました。
つまり、こうです。
@aws lambda invoke --log-type Tail --payload {} --function-name tempFunctionName --region ap-northeast-1