Testing lambda-runtime-init
Useful if you want more control over the API between the init and LocalStack (e.g. for error responses)
Debugging with LocalStack
-
Build init via make build
- On ARM hosts, use make ARCH=arm64 build because debugging only works with native containers.
-
Start LocalStack with the following flags:
LAMBDA_INIT_BIN_PATH=/Users/joe/Projects/LocalStack/lambda-runtime-init/custom-tests/init/var/rapid/init
LAMBDA_INIT_BOOTSTRAP_PATH=/Users/joe/Projects/LocalStack/lambda-runtime-init/custom-tests/init/var/rapid/entrypoint.sh
LAMBDA_INIT_DEBUG=1
LAMBDA_INIT_DELVE_PATH=/Users/joe/Projects/LocalStack/lambda-runtime-init/custom-tests/init/var/rapid/dlv
LAMBDA_INIT_DELVE_PORT=40000
LAMBDA_RUNTIME_ENVIRONMENT_TIMEOUT=3600
TEST_DISABLE_RETRIES_AND_TIMEOUTS=1
- LAMBDA_INIT_DEBUG=1|0 enables or disables RIE copying and debugging.
- LAMBDA_REMOVE_CONTAINERS=0 keeps exited containers
- Adjust the path to lambda-runtime-init accordingly
-
Start Delve debugger and connect to localhost:40000
Advice for function configuration
Within create_lambda_function:
- Increase the timeout=3600
- On ARM hosts, debugging only works with ARM containers. Use LAMBDA_IGNORE_ARCHITECTURE=1 or explicitly configure the Lambda function with Architectures=[Architecture.arm64]