3

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.

3 Answers 3

8

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
Sign up to request clarification or add additional context in comments.

Comments

2

Configurations

  • Mac OS
  • VS code

Error

--payload

The JSON that you want to provide to your Lambda function as input.

You can enter the JSON directly. For example, --payload '{ "key": "value" }' . You can also specify a file path. For example, --payload file://payload.json .

source

Correction

you need to clarify with this command:

--cli-binary-format raw-in-base64-out

Method

Here is the correct syntax:

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

Run your code again

1 Comment

I can confirm this is the correct answer
0

You need to pass payload as a json-string - https://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html#examples

--payload (blob)

The JSON that you want to provide to your Lambda function as input.

You can enter the JSON directly. For example, --payload '{ "key": "value" }' . You can also specify a file path. For example, --payload file://payload.json .

aws lambda invoke \
    --function-name my-function \
    --payload '{ "name": "Bob" }' \
    response.json

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.