Change Log:
LocalStack release 0.12.12
1. New Features
- add initial support for Resource Groups API
- add support for managing request payers on S3 buckets
- save SES email contents to disk in machine-readable format
- add support for LAMBDA_DOCKER_FLAGS to support custom Lambda Docker run flags
- add S3_SKIP_SIGNATURE_VALIDATION config to skip S3 presign URL signature validation
- add DEVELOP configuration for debugpy integration
- add support for servicediscovery endpoints in API GW invocations
- add Lambda Ruby 2.7 image support and update tests
- add support for DynamoDB table replicas
- add support for Route53 reusable-delegation-set APIs
2. Enhancements
- enhance validation of presigned URLs to support different port numbers in S3 URLs
- add XRay trace headers in notifications from S3 to SQS
- support ElasticsearchClusterConfig parameter for creation of ES clusters
- add support for KinesisStreamSpecification parameter for AWS::DynamoDB::Table CF resource
- add patch for stepfunctions-local to enable cross-region Lambda access
- add test for creating bucket with existing bucket name
- add support for session_token in S3 presign URLs
- remove obsolete DynamoDBLocal fix for Alpine
- add EventsBackend to manage state of Events API resources
- add UnsubscribeURL in payload sent to HTTP SQS endpoints
- add docs for Kafka and Elasticsearch external services integration
- temporarily set S3_SKIP_SIGNATURE_VALIDATION=1 by default (until all issues with S3 presign URLs are resolved)
- add CF support for ApiGateway::RequestValidator, Logs::SubscriptionFilter, Redshift::Cluster
- add region backend for DynamoDB state
- add support for arn:aws-us-gov:iam:... managed IAM policies
- update version in sample docker-compose.yml
- add test case for generating S3 presign URL from Node.js Lambda
- add simple TCP proxy server util
- add "running" property to FuncThread
- refactor logic for sending SQS messages to DLQ
- cache target API in edge requests for improved performance
- skip gzip encoding for S3 responses to fix content-length issue with Go SDK
- rename currentThread to current_thread for deprecation in Python 3.10
- add missing endpoints for StepFunctions startup command
- minor: add utility function to clean up Docker containers
- minor refactoring in API Gateway implementation
- minor enhancements in base image to optimize disk space
- minor refactoring for EC2::VPCGatewayAttachment CF model
- minor: add simple items_equivalent() util function
- minor refactoring of docker-reuse Lambda executor for better extensibility
- minor: allow passing keyword args to async_utils.run_sync(..)
- minor: initialize Properties for CF resource instances
3. Bug Fixes
- fix missing SQS message attributes for notifications via SNS
- fix using configured edge port in S3 presign URL calculation
- fix EC2::Route CF model to properly lookup deployment state if DestinationIpv6CidrBlock not set
- fix fetching CF resource state for EC2::Route and Logs::LogGroup
- fix broken SNS test related to UnsubscribeURL returned on subscription attributes
- fix edge route mapping for SES requests using /email route
- fix syntax in aws_stack.py for compatibility with python 2.x
- fix incorrect suffixes in SecretManager ARNs for secret lookups
- fix Python sys path for module resolution when using local Lambda executor
- fix integration test assertions to accommodate recent CloudWatch metrics changes
- fix idempotence for SNS CreatePlatformEndpoint API calls
- fix correct error code for getting attributes of non-existing SNS subscription
- fix correct Authn header for internal call when replaying non HMAC request
- fix filtering of CloudWatch metrics and dimensions
- fix URL escaping when calculating presigned URLs to accommodate recent Quart server update
- fix double response headers in CORS preflight API Gateway requests
- fix resetting ETags when copying S3 object from multipart upload
- fix accessing raw response when returning gzip encoded content from Lambdas via API GW
- fix copying missing events file into container for Java Lambdas with docker-reuse
- fix Kinesis response payload encoding for use with Java SDK
- minor fix in ACM to avoid returning duplicate DomainValidationOptions