Skip to main content

The First Lambda Example

lamdba-handler

Create Lambda Function via Management Console

  • https://aws.amazon.com/console/
  • Console Home > Lambda
  • 'Create function'
    • Author from scratch
    • 'Function name' e.g. greeting
    • 'Runtime' > Java 21
    • Press 'Create function'
  • Lambda > Functions > greeting
    • Press 'Upload from' > '.zip or .jar file'
    • Upload: /target/lambda-hello-world-1.0-SNAPSHOT.jar
    • Runtime settings > Edit:
    • Handler: zjc.examples.Greeting::greet > Save
    • Test > Test:
hello-world-01.png

LocalStack Lambda Example

https://docs.localstack.cloud/user-guide/aws/lambda/
lamdba-handler

Create Docker LocalStack

version: "3.8"

services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME:-localstack-main}"
image: localstack/localstack
ports:
- "127.0.0.1:4566:4566" # LocalStack Gateway
- "127.0.0.1:4510-4559:4510-4559" # external services port range
environment:
# LocalStack configuration: https://docs.localstack.cloud/references/configuration/
- DEBUG=${DEBUG:-0}
volumes:
- "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"

Create a Lambda function

Source Code: https://github.com/ZbCiok/zjc-examples/tree/main/aws/aws/lambda/first-lambda-example

awslocal lambda create-function \
--function-name localstack-lambda-example \
--runtime java21 \
--zip-file fileb://first-lambda-example-1.0-SNAPSHOT.jar\
--handler zjc.examples.LambdaMethodHandler::handleRequest \
--role arn:aws:iam::000000000000:role/lambda-role

Invoke the Function

awslocal lambda invoke \
--function-name localstack-lambda-example \
--cli-binary-format raw-in-base64-out \
--payload '{ "name": "John Doe", "question": "How are you?" }' output.txt

Output; target/output.txt:

{"answer":"Subscribe: jreact.com"}