Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Testing lambda-runtime-init

Testing in isolation

Useful if you want more control over the API between the init and LocalStack (e.g. for error responses)

Debugging with LocalStack

  1. Build init via make build

    • On ARM hosts, use make ARCH=arm64 build because debugging only works with native containers.
  2. 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
  3. 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]