Search code examples
amazon-web-servicesaws-lambdaaws-cli

How do i pass a string as payload to aws lambda function using aws cli?


I am trying to use the below aws cli command to invoke the lambda function.

aws lambda invoke  --invocation-type RequestResponse  --function-name HelloWorldJava  --payload \"world\" outputfile.txt

But Iam getting below error.

Invalid base64: ""world""

The book I am referring to is using the same method.


Solution

  • Your payload has to be JSON according to the docs, but I think there is no hard requirement for that. When you want to pass in a string value directly (JSON or otherwise) you also need to be sure that you pass --cli-binary-format raw-in-base64-out.

    So you command should be:

    aws lambda invoke  --invocation-type RequestResponse  --function-name HelloWorldJava --cli-binary-format raw-in-base64-out --payload \"world\" outputfile.txt