AWS Certified Developer – Associate — Question 356
A developer is implementing an AWS Lambda function that will be invoked when an object is uploaded to Amazon S3. The developer wants to test the Lambda function in a local development machine before publishing the function to a production AWS account.
Which solution will meet these requirements with the LEAST operational overhead?
Answer options
- A. Upload an object to Amazon S3 by using the aws s3api put-object CLI command. Wait for the local Lambda invocation from the S3 event.
- B. Create a sample JSON text file for a put object S3 event. Invoke the Lambda function locally. Use the aws lambda invoke CLI command with the JSON file and Lambda function name as arguments.
- C. Use the sam local start-lambda CLI command to start Lambda. Use the sam local generate-event s3 put CLI command to create the Lambda test JSON file. Use the sam local invoke CLI command with the JSON file as the argument to invoke the Lambda function.
- D. Create a JSON string for the put object S3 event. In the AWS Management Console, use the JSON string to create a test event for the local Lambda function. Perform the test.
Correct answer: C
Explanation
The AWS SAM CLI provides native capabilities to simulate AWS services locally using commands like 'sam local generate-event' and 'sam local invoke', making it the most efficient way to test Lambda functions locally. Options A and D are incorrect because cloud-based S3 buckets and the AWS Management Console cannot directly interact with or trigger a Lambda function running on a local machine. Option B is incorrect because the 'aws lambda invoke' command is used to trigger functions already deployed to the AWS cloud, not for local execution.