Summary
LocalStack 4.5 introduces support for the AWS Developer Tools suite (CodePipeline, CodeBuild, and CodeDeploy), enhanced AppSync WebSocket behavior, and advanced features for API Gateway REST APIs, including Canary Deployments and VTL improvements. This release also brings deeper parity in core services like RDS, EC2, EKS, EventBridge, CloudFormation, and more, continuing our mission to enable high-fidelity local development with production-like AWS behavior.
AWS Features
- LocalStack now supports AWS CodeBuild, enabling you to build and test applications locally with a build process that mirrors real AWS environments. Refer to our documentation to learn more. (π pro)
- LocalStack now supports AWS CodePipeline, enabling you to emulate end-to-end CI/CD workflows locally using real AWS-style declarations and resources. Refer to our documentation to learn more. (π pro)
- LocalStack now supports AWS CodeDeploy, allowing you to mock deployment flows to targets like EC2, Lambda, and ECS locally. Refer to our documentation to learn more. (π pro)
- PostgreSQL 17 is now supported in LocalStack's RDS provider, with the default engine version updated to
17.5
. (π pro) - LocalStack's RDS provider now supports DB Proxy Endpoints, allowing you to create, describe, and delete DB proxy endpoints with our mock operations. (π pro)
Enhancements
- AppSyncβs WebSocket behavior has been enhanced to better align with AWS. This includes: (π pro)
- Full support for AWS-style payload shapes
- Improved lifecycle handling of GraphQL subscriptions
- LocalStackβs API Gateway provider now includes the following enhancements for REST APIs:
- Emulation of Canary Deployments, allowing staged traffic shifting strategies for safer releases and A/B testing.
- Support for
Response Overrides
from Request Templates, enabling more flexible response handling. - Improved VTL (Velocity Template Language) support, including bracketed expressions and variable assignments in
#set
operations, increasing compatibility with complex mapping templates.
- LocalStackβs RDS provider now includes the following enhancements: (π pro)
- Support for the
ManageMasterPassword
API, enabling automated credential management and secure DB credential flows. - Engine Parameter Introspection using
DescribeEngineDefaultParameters
andDescribeEngineDefaultClusterParameters
, allowing you to examine default settings for supported RDS engines. - Introduction of
RDS_PG_MAX_CONNECTIONS
environment variable to control the maximum number of connections for PostgreSQL instances.
- Support for the
- LocalStackβs EC2 provider now includes the following enhancements:
- Support for the
GetSecurityGroupsForVpc
API, allowing you to retrieve security groups associated with a specific VPC. - Improved filtering behavior in EC2's
DescribeAvailabilityZones
, aligning more closely with AWS behavior.
- Support for the
- Partial support for the
UpdatePipe
API is now available in EventBridge Pipes. Currently, only source parameters of an existing pipe can be updated. (π pro) - DynamoDB Streams now properly redirects requests for global table replicas to the original region, ensuring consistent stream behavior across all replicas.
- EKS provider now integrates with autoscaling and security groups, allowing you to emulate Kubernetes clusters with more realistic networking and scaling behavior. (π pro)
- CloudFormation resource
AWS::Lambda::Version
now supports theProvisionedConcurrencyConfig
property to enable emulation of cold start mitigation strategies. - Enhanced Lambda
GetFunction
API parity by returning thereserved_concurrent_executions
parameter in responses, allowing you to inspect and manage reserved concurrency settings for Lambda functions. - Support for the
ListRuleNamesByTarget
API in EventBridge, allowing you to inspect which rules are targeting a given resource. - Support for pagination and filtering parameters when listing S3 buckets, improving performance and aligning with AWS behavior in larger S3 environments.
- Support for
DeleteDistribution
API in CloudFront Lambda@Edge to achieve better parity with AWS. (π pro) - Support for
DescribeCapacityReservation
API in Elastic Load Balancing, allowing you to inspect capacity reservations for load balancers. (π pro) - Support for selecting the Scala-based Kinesis mock engine via the
KINESIS_MOCK_PROVIDER_ENGINE
environment variable (node
orscala
) for improved performance with large or high-throughput requests.
LocalStack Features
- LocalStack Replicator now supports cross-account VPC replication scenarios using AWS Resource Access Manager (RAM), enabling more realistic testing of multi-account network setups. (π Ultimate)
What's Changed
Exciting New Features π
- CloudFormation v2 Engine: Batch of Parity Improvements by @MEPalma in #12589
- [Kinesis] add Scala kinesis-mock build behind feature flag by @gregfurman in #12559
- Apigw/add support for response override in request by @cloutierMat in #12628
- CloudFormation V2 Engine: Support for Pseudo Parameter References by @MEPalma in #12595
- Feature: implement list rule names by target by @etiago in #12632
- Add EC2 support for GetSecurityGroupsForVpc API operation (#12602) by @iamramtin in #12615
- ffmpeg: Update build source to use BtbN GitHub Releases by @sannya-singal in #12634
- CloudFormation V2 Engine: Support for DependsOn Blocks by @MEPalma in #12644
- Bump moto-ext to 5.1.4.post2 by @viren-nadkarni in #12652
- Record validated tests duration by @tiurin in #12638
- Introduce LOG_LEVEL_OVERRIDES config var by @simonrw in #10808
- fix(esm/kinesis): Always store NextShardIterator from GetRecords by @gregfurman in #12677
- Bump moto-ext to 5.1.5.post1 by @viren-nadkarni in #12684
- ESM/Pipes stream pollers: add shards to init params by @tiurin in #12659
- Add stack option for CLI start command by @gtsiolis in #12675
- CloudFormation V2 Engine: Support for Fn::Sub by @MEPalma in #12650
- CloudFormation v2 Engine: V1 Test Porting and Annotations and Batch of Parity Improvements by @MEPalma in #12660
- CloudFormation v2 Engine: Base Support for Fn::Transform by @MEPalma in #12662
- CloudFormation v2 Engine: Base Support for AWS::NoValue and Migration to Nothing Types by @MEPalma in #12668
- CloudFormation v2 Engine: Support for Fn::Select by @MEPalma in #12679
- APIGW: add Canary Deployment logic in invocation layer by @bentsku in #12695
- refactor(counter analytics): enforce (namespace,name) pair uniqueness [DAT-145] by @vittoriopolverino in #12687
- CloudFormation v2 Engine: Base Support for Fn::Split by @MEPalma in #12698
- CloudFormation v2 Engine: Base Support for Fn::GetAZs by @MEPalma in #12699
- CloudFormation v2 Engine: Base Support for Fn::Base64 by @MEPalma in #12700
Other Changes
- Add CloudFormation Lambda Version Provisioned Concurrency by @joe4dev in #12594
- CFn v2: Skip media type assertion by @simonrw in #12597
- Update README.md with 4.4 release by @tiurin in #12596
- ASF: Ignore optional-ness when comparing argument types by @bblommers in #12605
- CFn v2: better handle deploy errors by @simonrw in #12601
- Improve security group fixture for EC2 by @giograno in #12607
- fix put-metric-alarm test failure rate by @pinzon in #12598
- ASF: Mark optional params as such (X | None) by @bblommers in #12614
- Added pagination and filtering for s3 list buckets operation by @bryansan-local in #12609
- Add Github Action job to publish test results to coveralls and uploading test results to artifacts by @k-a-il in #12608
- DDB Global Tables: add failing test to expose the missing stream on replicas by @giograno in #12622
- S3: fix IfMatch/IfNoneMatch in pre-signed URLs by @bentsku in #12624
- Add reporting to Tinybird for new GitHub Actions pipelines by @silv-io in #12610
- Restrict tinybird reporting to master branch only by @silv-io in #12627
- Disable/fix docker tests failing after migration to GH Actions by @k-a-il in #12625
- GithubActions: skip tinybird, docker push and docker login in forks by @k-a-il in #12639
- Core: Add type hints to aws/core.py by @bblommers in #12617
- Add Workflow Summaries by @silv-io in #12619
- Fix names of steps for workflow summary publishing by @silv-io in #12646
- Fix acceptance test workflow name for Tinybird workflow push by @silv-io in #12647
- Added retries to the container state check in TestDocker by @k-a-il in #12640
- Activate new GHA pipeline on PRs by @silv-io in #12648
- Include reserved_concurrent_executions in get_function response by @k-a-il in #12654
- APIGW: add SQS X-Amz-JSON test by @bentsku in #12649
- DDB Global table: add logic for streams by @giograno in #12641
- EC2: fix describe-availability-zones filtering by @anisaoshafi in #12661
- Fix MA/MR pipeline for EC2 tests by @anisaoshafi in #12672
- fix CloudFormation SNS Subscribe with Region parameter by @bentsku in #12676
- test(esm/sqs): Skip resource intensive flaky SQS message override test by @gregfurman in #12681
- GH Actions: fix order of path filters for push and pull-request events by @k-a-il in #12686
- GithubActions: update CFn v2 test name by @simonrw in #12683
- GitHub Actions: correct test durations handling for integration tests & update test durations file by @k-a-il in #12682
- Stop handling help parsing with argparse by @silv-io in #12691
- SNS: validate cross-region behavior by @bentsku in #12673
- APIGW: implement Canary Deployments CRUD logic by @bentsku in #12694
- Resolve non-subdomain host prefixes to LocalStack by @joe4dev in #12653
- Change cleanup job condition in main pipeline in Github Actions by @k-a-il in #12693
- refactor: reduce max number of allowed labels in counters from 8 to 6 [DAT-146] by @vittoriopolverino in #12704
- Add missing switch for forcing ARM tests on workflow dispatch by @silv-io in #12709
- re-introduce eager service loading by @bentsku in #12657
- test(esm/sqs): Skip flaky test_report_batch_item_failures test by @gregfurman in #12713
New Contributors
- @bryansan-local made their first contribution in #12609
- @etiago made their first contribution in #12632
- @iamramtin made their first contribution in #12615
Full Changelog: v4.4.0...v4.5.0