Change Log:
LocalStack release 0.12.20
1. New Features
- major: implement lazy-loading of services
- introduce ApiInvocationContext class to encapsulate API Gateway request context information
- add AWS Service Framework parsers, serializers, and tests
- add AWS Service Framework API and scaffolding CLI
- add initial lifecycle hook abstraction for services
- add
OUTBOUND_HTTP_PROXY
option for proxies when downloading external resources - add temporary support for python3.9 runtimes via mlupin/docker-lambda images
- add support for more Elasticsearch versions
2. Enhancements
- add object-oriented moto server abstraction
- update moto patch to fix CDATA wrapper for SQS message attribute values
- add option to set permissions for save_file(..), save local config file with 0o600 permissions
- upgrade Terraform version to fix CI builds
- refactor API GW logic for easier extraction of resource/method details from invocation context
- add test-invoke-method to test API Gateway endpoints
- add requestId attribute to Lambda event from API Gateway integration
- add more SQS tests to prepare for new SQS implementation
- refactor DynamoDB to use serving.Server
- update Elasticsearch default version in es_api.py
- support version qualifiers for managing Lambda policy statements
- correctly format Lambda function inline code on CloudFormation update
- refactor serving.Server to fix ElasticsearchCluster
- add headers from S3 object and correct codes to S3 website responses
- add defaults for SSM parameter name in CloudFormation model
- extend create_zip_file(..) to support 'append' mode and specifying root directory
- update default/cached Elasticsearch version to 7.10
- extract correct region from target ARN for S3 notifications
- add ability to skip content gzipping for individual services responses
- make boto client creation in aws_stack.connect_to_service thread safe
- add SSM->EventBridge integration to send notifications about parameter changes
- add concurrency control for multiserver startup
- add multi-region support for EventSourceListenerSQS
- add setup.cfg and update build configuration
- pin version of "pip" to fix setup step in CI
- add support for "::" to specify a custom Java Lambda handler method in local executor mode
- fix health endpoint to support feature states
- refactor extract_region_from_headers to make it more reusable
- add generic fallback health check for local APIs
- adjust exposed ports in docker-compose.yml
- add logic and tests to gracefully handle zipping of empty directories
- use Python time for do_run cache time comparison
- add support for routing events to log groups, fix event pattern matching/mapping for prefix filter
- prefix Lambda container names with MAIN_CONTAINER_NAME to support multiple instances in parallel
- allow partial SSE specification and auto-create managed KMS keys for DynamoDB tables
- update troubleshooting guide to not set DOCKER_HOST when using Lambda remote mode in CI
- minor: use existing util function to extract region from ARN
- minor: add generate_default_name_without_stack utility method
3. Bug Fixes
- fix docker_utils import in localstack status cli command
- fix AWS::SecretsManager::Secret CloudFormation ARN handling and tests
- fix restarting of DynamoDB process
- fix local execution of Java Lambdas if handler method is implementing
RequestHandler
interface - fix issues in AWS service framework dispatching
- fix error response when attempting to delete non-existing Lambda
- fix scaffolding for remaining AWS services
- fix Elasticsearch plugin download when building docker base image
- fix check for None values in response multi_value_headers
- fix overwrite behavior for PUT requests to the health endpoint
- fix updates for AWS::IAM::Role in CloudFormation
- fix state checking for active service provider
- fix statement/policy handling for Events::EventBusPolicy CFN resource
- upgrade version of Terraform in base image to fix recent CI build issues