Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-09-11 | 27.6 kB | |
v4.8.0 source code.tar.gz | 2025-09-11 | 12.2 MB | |
v4.8.0 source code.zip | 2025-09-11 | 14.0 MB | |
Totals: 3 Items | 26.2 MB | 0 |
Summary
LocalStack v4.8 brings one-click Lambda debugging with the AWS Toolkit for VS Code, a new CloudFormation engine, and an ECS-based Batch provider. The release also adds Kubernetes support for Redis, Route 53 → S3 website routing, and several enhancements to other AWS services like RDS Data, CloudFront, EKS, SQS, and CodeBuild, alongside major upgrades to the LocalStack Toolkit for VS Code.
AWS Features
- LocalStack integrates with the AWS Toolkit for VS Code, enabling one-click remote debugging of Lambda functions. You can set breakpoints, step through code, and inspect variables directly in your IDE. Debugger instrumentation is now automatic for Python, Node.js, and Java runtimes, eliminating the need for manual setup or boilerplate code. Check out our blog for more information.
- LocalStack introduces a new CloudFormation engine with improved parity for
UPDATE
operations and closer alignment with AWS. The legacy engine remains available (PROVIDER_OVERRIDE_CLOUDFORMATION=engine-legacy
) for backwards compatibility, but all new features and fixes will target the new engine. Learn more in the documentation. - LocalStack now ships with a new Batch provider built on top of the ECS runtime, replacing the previous custom implementation. Kubernetes execution is available via
ECS_TASK_EXECUTOR=kubernetes
. The legacy provider can still be used withPROVIDER_OVERRIDE_BATCH=legacy
. Learn more in the documentation. (🌟 ultimate)
Enhancements
- LocalStack now supports running Redis in ElastiCache & MemoryDB as Kubernetes pods, providing consistent behaviour across local and cluster environments and removing the need for separate Docker-based execution. Enable it by setting
REDIS_CONTAINER_MODE=1
andCONTAINER_RUNTIME=kubernetes
. (🌟 enterprise) - LocalStack now offers CRUD support for EKS Addons. The following API calls are now supported: (🌟 ultimate)
- LocalStack now supports routing Route 53 domains to S3 static website endpoints, enabling custom domains to resolve directly to S3-hosted websites and improving parity with AWS. (🌟 base)
- LocalStack's RDS Data provider now includes the following enhancements: (🌟 base)
- Added support for
oid
type in Postgres via the RDS Data API. - Added support for array types in Postgres via the RDS Data API, with fixes for array handling in Redshift Data.
- Added support for returning
numberOfRecordsUpdated
in Postgres databases, improving parity with AWS responses.
- Added support for
- LocalStack's CloudFront provider now includes the following enhancements: (🌟 base)
- Improved parity for header propagation in Lambda@Edge.
- Improved parity by propagating status code changes for request event types (
viewer-request
,origin-request
) in Lambda@Edge. - Proper handling of
3XX
redirects for request events, ensuring responses like302
are correctly propagated in Lambda@Edge. CustomOriginConfig.HTTPPort
andCustomOriginConfig.HTTPSPort
are now properly set, ensuring requests correctly use configured custom ports instead of defaulting to port 80/443, with fallbacks to LocalStack’s edge port (4566
) when necessary.
- Enhanced Lambda hot-reload to return
file://
URIs for code locations instead of arbitrary strings, making them easier to parse and understand. - Support for custom SSM Documents with
SendCommand
is now available, including parameter substitution. Only theaws:runShellScript
plugin is supported. (🌟 base) - Implemented FIS action
aws:ecs:stop-task
, enabling fault injection experiments to stop running ECS tasks. (🌟 ultimate) - Enabled API Gateway VPC endpoint routing, allowing API invocation via
.vpce.execute-api
URLs using thex-apigw-api-id
header. - SNS now supports passing
MessageGroupId
to non-FIFO topics, aligning with SQS Fair Queues behavior and ensuring the attribute is propagated correctly to SQS messages. - Implemented SES
SetIdentityHeadersInNotificationsEnabled
API, enabling configuration of header inclusion in bounce, complaint, and delivery notifications. - Added support for Lambda Function URLs with
ResponseStream
invoke mode, enabling streaming responses via theInvokeMode
parameter. - Added Java 24 support in the Trino installer, enabling upgrades from Trino 389 to 476 and improving module installation command generation. (🌟 ultimate)
- Increased SQS message and batch size limit to 1 MiB, matching the recent AWS update.
- Added support for EFS
DeleteFileSystemPolicy
operation. (🌟 ultimate) - Added support in CodePipeline for the
CODEBUILD_RESOLVED_SOURCE_VERSION
environment variable, ensuring CodeBuild actions receive the correct commit ID or S3 version ID for the source. (🌟 ultimate) - Added support for Iceberg table metadata format v2 and
s3a://
filesystem support in Hive, improving compatibility with Iceberg tables created using theiceberg-go
SDK. (🌟 ultimate) - Added Kubernetes owner references to Glue pods, enabling proper cleanup of child containers when the LocalStack pod is terminated. (🌟 enterprise)
- Added support in CodeBuild for resolving environment variables from Secrets Manager and SSM Parameter Store using ARNs, in addition to names. (🌟 base)
- Added tagging support for the CodeConnections service, enabling resource tag operations. (🌟 base)
- Improved EKS CloudFormation support for
AWS::EKS::FargateProfile
with idempotency handling, improved parameter validation, and proper support for profiles created without subnets. (🌟 ultimate) - Updated DNS handling to allow
checkip.amazonaws.com
to resolve upstream by default by adding it toDEFAULT_SKIP_PATTERNS
. - The Traefik ingress controller and k3d load balancer are no longer started automatically when creating an EKS cluster. Set
EKS_START_K3D_LB_INGRESS=1
to restore the previous behavior. (🌟 ultimate)
LocalStack Features
- The LocalStack Toolkit for VS Code now features a guided setup wizard, status bar integration, and improved logging, making it easier to install, configure, and run LocalStack seamlessly within your IDE. Learn more in the documentation.
- LocalStack AWS Replicator can now describe KMS keys using their alias ARN. When an alias ARN is provided, the
key_id
is returned asalias/<alias_name>
, improving compatibility in cross-account replication scenarios. (🌟 ultimate) -
LocalStack AWS Replicator now provides initial support for replicating groups of resources. For example, you can now replicate all SSM parameters under a given path (e.g.,
/dev/front-end/*
) with a single command: (🌟 ultimate)bash localstack replicator start \ --replication-type BATCH \ --resource-type AWS::SSM::Parameter \ --resource-identifier /dev/front-end/
Batch replication is currently limited to a max concurrency of 10 to prevent issues with large sets of resources.
-
Improved Cloud Pod persistence handling by streaming pod data and state instead of loading entire files into memory, and by writing large pod files (>64 MiB) to the host file system. These changes prevent memory exhaustion and container storage issues when importing or loading large pods. (🌟 base)
- Enabled automatic state restoration when
EAGER_SERVICE_LOADING
is set, ensuring the persisted state is loaded at startup instead of only on request. (🌟 base)
Deprecations
- The new CloudFormation engine will soon fail deployments containing unsupported resource types by default. The legacy engine is unaffected. Users can set
CFN_IGNORE_UNSUPPORTED_RESOURCE_TYPES
to maintain the current behavior where unsupported resources are ignored. - Starting with LocalStack 4.9, the base image will upgrade from Debian Bookworm / Python 3.11 to Debian Trixie / Python 3.13. This may impact custom extensions or init scripts that rely on specific OS packages or Python 3.11.
What's Changed
Exciting New Features 🎉
- SES: implement SetIdentityHeadersInNotificationsEnabled API by @YelynnOh in https://github.com/localstack/localstack/pull/12823
- add testing for Fn::Transform in CFn v2 by @pinzon in https://github.com/localstack/localstack/pull/12689
- add support for Exports/Imports in CFn v2 by @pinzon in https://github.com/localstack/localstack/pull/12906
- implement string replacement feature in CFn v2 by @pinzon in https://github.com/localstack/localstack/pull/12911
- support ResponseStream mode for functionUrl by @pinzon in https://github.com/localstack/localstack/pull/12935
- Eventstudio: Move fixtures to make them available in Pro by @maxhoheiser in https://github.com/localstack/localstack/pull/12962
- CFNV2: support CDK bootstrap and deployment by @simonrw in https://github.com/localstack/localstack/pull/12967
- add(utils/archives): Support .whl files in download_and_extract by @gregfurman in https://github.com/localstack/localstack/pull/12978
- CFNV2: remove/rescope CFNV2:Validation errors by @simonrw in https://github.com/localstack/localstack/pull/12970
- Allow stack traces in HTTP responses only if
INCLUDE_STACK_TRACES_IN_HTTP_RESPONSE
is enabled by @sannya-singal in https://github.com/localstack/localstack/pull/12938 - CFNV2: improve parity with describe operations by @simonrw in https://github.com/localstack/localstack/pull/12980
- CFNV2: fix EC2 VPCEndpoint test by @simonrw in https://github.com/localstack/localstack/pull/12971
- Improve handling of LDM shutdowns during invocations by @MEPalma in https://github.com/localstack/localstack/pull/13002
- CFNV2: handle AWS::NoValue by @simonrw in https://github.com/localstack/localstack/pull/13000
- Publish service provider mapping on startup by @silv-io in https://github.com/localstack/localstack/pull/12740
- CFNV2: fix remaining transform tests by @simonrw in https://github.com/localstack/localstack/pull/13010
- CFNV2: finish URL replacements for API Gateway by @simonrw in https://github.com/localstack/localstack/pull/13012
- CFNV2: Implement Fn::Length for language extensions by @simonrw in https://github.com/localstack/localstack/pull/13033
- CFNV2: Implement Fn::ForEach and Fn::ToJsonString for language extensions by @simonrw in https://github.com/localstack/localstack/pull/13034
- CFNV2: correct state modelling of failed stacks by @simonrw in https://github.com/localstack/localstack/pull/13040
- Raise DockerNotAvailable exception if port checking is impossible by @joe4dev in https://github.com/localstack/localstack/pull/13038
- Bump moto-ext to 5.1.11.post1 by @viren-nadkarni in https://github.com/localstack/localstack/pull/12964
- increase sqs message size limit to 1MiB by @SethPyle376 in https://github.com/localstack/localstack/pull/12957
- Use file URI scheme for hotreload presigned URL by @joe4dev in https://github.com/localstack/localstack/pull/13060
- capture k8s env var by @cloutierMat in https://github.com/localstack/localstack/pull/13066
- SNS: create inital v2 provider in CI by @baermat in https://github.com/localstack/localstack/pull/13069
- CFNV2: Switch provider defaults to new engine by @simonrw in https://github.com/localstack/localstack/pull/13098
- Fix ContinuationSequenceNumber in SubscribeToShard by @NigelRook in https://github.com/localstack/localstack/pull/12981
- Support Additional Parameters for S3 UploadPartCopy by @aidehn in https://github.com/localstack/localstack/pull/13105
Other Changes
- fix partial coverage reporting by @alexrashed in https://github.com/localstack/localstack/pull/12939
- SQS: fix DelaySeconds behavior for FIFO queues on message level by @kn1ves in https://github.com/localstack/localstack/pull/12941
- Update version in README by @alexrashed in https://github.com/localstack/localstack/pull/12942
- Ec2/fix/vpc endpoint dns entries by @cloutierMat in https://github.com/localstack/localstack/pull/12927
- Apigw/enable vpce routing by @cloutierMat in https://github.com/localstack/localstack/pull/12937
- Reduce image size by properly avoiding duplicated java installation by @dfangl in https://github.com/localstack/localstack/pull/12940
- merge CFn V1 and CFnV2 tests by @pinzon in https://github.com/localstack/localstack/pull/12944
- [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/12946
- mitigate issues with pip-tools 7.5.0 with dependency limit by @alexrashed in https://github.com/localstack/localstack/pull/12947
- CFNV2: defer deletions for correcting deploy order by @simonrw in https://github.com/localstack/localstack/pull/12936
- Replicator/support x account kms by @cloutierMat in https://github.com/localstack/localstack/pull/12950
- CFNv2: support resolve:ssm: and resolve:secretsmanager: strings by @simonrw in https://github.com/localstack/localstack/pull/12965
- KMS: fix HMAC key import and add validated tests for HMAC and ECC key specs by @sannya-singal in https://github.com/localstack/localstack/pull/12952
- CFnv2: implement SSM parameter resolving by @simonrw in https://github.com/localstack/localstack/pull/12934
- Add pyupgrade rules to ruff by @giograno in https://github.com/localstack/localstack/pull/12953
- add java 24 support in java installer for trino by @macnev2013 in https://github.com/localstack/localstack/pull/12963
- CFNV2: fix delete change set by @simonrw in https://github.com/localstack/localstack/pull/12977
- [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/12986
- SES: fix infinite loop with SNS event destination by @bentsku in https://github.com/localstack/localstack/pull/12972
- add support for nested Fn in FnSelect for CFn by @pinzon in https://github.com/localstack/localstack/pull/12955
- CFNV2: fix select in mapping test by @simonrw in https://github.com/localstack/localstack/pull/12993
- Step Functions: Fix Batch error handling by @nik-localstack in https://github.com/localstack/localstack/pull/12988
- Re-enabling ruff rule E721 by @giograno in https://github.com/localstack/localstack/pull/12968
- Re-enabling ruff rule C408 by @giograno in https://github.com/localstack/localstack/pull/12969
- add transformation function with key skip by @baermat in https://github.com/localstack/localstack/pull/12976
- fix unit test reporting by @alexrashed in https://github.com/localstack/localstack/pull/12996
- CFNv2: Standardise on test reporting by @simonrw in https://github.com/localstack/localstack/pull/12984
- Remove buildjet from s3 image arm pipeline by @dfangl in https://github.com/localstack/localstack/pull/13004
- fix port subrange from subclass by @cloutierMat in https://github.com/localstack/localstack/pull/13001
- Add handling of tags in docker-helper by @silv-io in https://github.com/localstack/localstack/pull/12943
- Log stack traces only in debug mode by @sannya-singal in https://github.com/localstack/localstack/pull/12989
- sqs: fix exception log message for sqs query execution by @sannya-singal in https://github.com/localstack/localstack/pull/13007
- Create new markers for requiring in process execution or docker by @dfangl in https://github.com/localstack/localstack/pull/13003
- add support for Fn::Tranform in CFnV2 by @pinzon in https://github.com/localstack/localstack/pull/12966
- CFNV2: Unskip remaining Resolve tests by @simonrw in https://github.com/localstack/localstack/pull/12997
- [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/13014
- introduce
get-release-version
in docker helper by @eruditmorina in https://github.com/localstack/localstack/pull/13006 - decrease frequency of test duration update workflow by @alexrashed in https://github.com/localstack/localstack/pull/13016
- Updated contribution guidelines link by @VanshikaSabharwal in https://github.com/localstack/localstack/pull/13013
- Fix make format targets by @giograno in https://github.com/localstack/localstack/pull/13023
- Migrate from jpype1-ext to jpype1 by @dfangl in https://github.com/localstack/localstack/pull/13005
- Re-enable C416 ruff rule by @giograno in https://github.com/localstack/localstack/pull/13025
- SNS: support passing
MessageGroupId
to non-FIFO topic by @bentsku in https://github.com/localstack/localstack/pull/13019 - S3/ASF parser: fix parsing header
list
shape type with multivalue headers by @bentsku in https://github.com/localstack/localstack/pull/13022 - improve Patch utility: add idempotency by @bentsku in https://github.com/localstack/localstack/pull/12919
- APIGW: fix TestInvokeMethod path logic by @bentsku in https://github.com/localstack/localstack/pull/13030
- Update lambda init by @dfangl in https://github.com/localstack/localstack/pull/13036
- Add workflow to enforce docs PR labels by @hovaesco in https://github.com/localstack/localstack/pull/13035
- Fix cross-arch Docker build by @joe4dev in https://github.com/localstack/localstack/pull/13042
- APIGW: internalize DeleteIntegrationResponse by @bentsku in https://github.com/localstack/localstack/pull/13046
- Improve remove docker container function to take into account stopped containers by @bryansan-local in https://github.com/localstack/localstack/pull/12979
- add traceback propagation of internal errors by @bentsku in https://github.com/localstack/localstack/pull/13044
- add skip-docs label to automatically generated PRs by @alexrashed in https://github.com/localstack/localstack/pull/13054
- Enable B017 ruff linting rule by @giograno in https://github.com/localstack/localstack/pull/13031
- Ruff linter: enable rule UP008 and UP036 by @giograno in https://github.com/localstack/localstack/pull/13047
- Ruff linter: enable rule UP028 by @giograno in https://github.com/localstack/localstack/pull/13048
- fix cloudwatch v1 timestamp serialization after moto upgrade by @alexrashed in https://github.com/localstack/localstack/pull/13058
- Ruff linter: enable rule UP031 by @giograno in https://github.com/localstack/localstack/pull/13049
- Fix SQS tests failing due to missing snapshot update after [#12957] by @dfangl in https://github.com/localstack/localstack/pull/13062
- create pluggable factory for state codecs by @thrau in https://github.com/localstack/localstack/pull/13063
- Remove jsonpickle serializer by @giograno in https://github.com/localstack/localstack/pull/13064
- extend the Encoder/Decoder state API to be type-aware by @thrau in https://github.com/localstack/localstack/pull/13017
- IaC: Add CFN_IGNORE_UNSUPPORTED_RESOURCE_TYPES to environment variables tracked by localstack by @k-a-il in https://github.com/localstack/localstack/pull/13074
- Unit-tests: enable unit-tests for aws handlers by @k-a-il in https://github.com/localstack/localstack/pull/13070
- Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/13081
- Fix typing for the tagging service by @giograno in https://github.com/localstack/localstack/pull/13077
- Upgrade to node 22.x by @dfangl in https://github.com/localstack/localstack/pull/13083
- Change link to community by @gtsiolis in https://github.com/localstack/localstack/pull/13059
- Align localstack.dev.kubernetes with our pro test configuration by @simonrw in https://github.com/localstack/localstack/pull/13076
- CI: fix cancellation of test runs when pushing commits on PR by @bentsku in https://github.com/localstack/localstack/pull/13089
- Fix: add PLATFORM validation to docker-helper.sh build command by @Ganji00 in https://github.com/localstack/localstack/pull/13079
- SNS: fix 500 error for Unsubscribe with empty Sub ARN by @bentsku in https://github.com/localstack/localstack/pull/13087
- CFN: log warning about upcoming change of CFN_IGNORE_UNSUPPORTED_RESOURCE_TYPES by @k-a-il in https://github.com/localstack/localstack/pull/13085
- APIGW: fix UpdateResource on root method by @bentsku in https://github.com/localstack/localstack/pull/13093
- Docker: Support remove_container(volume=True) by @bblommers in https://github.com/localstack/localstack/pull/13072
- S3: fix PutBucketTagging and PutObjectTagging when
TagSet
isNone
by @bentsku in https://github.com/localstack/localstack/pull/13092 - add fixes to CFnV2 for pro pipeline by @pinzon in https://github.com/localstack/localstack/pull/13045
- Fix misnamed service_name attribute in stores by @giograno in https://github.com/localstack/localstack/pull/13094
- CFNV2: Add startup log message by @simonrw in https://github.com/localstack/localstack/pull/13075
- S3: fix validation parity of
PutBucketNotificationConfiguration
by @bentsku in https://github.com/localstack/localstack/pull/13091 - Update banner image by @silv-io in https://github.com/localstack/localstack/pull/13096
- CFNV2: fix community issues after attempted pro fixes by @simonrw in https://github.com/localstack/localstack/pull/13101
- Bump deepdiff from 8.6.0 to 8.6.1 by @dependabot[bot] in https://github.com/localstack/localstack/pull/13100
- [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/13104
- fix start error code if container exists but is not running by @alexrashed in https://github.com/localstack/localstack/pull/13097
- fix CI step for publishing alternative providers results by @bentsku in https://github.com/localstack/localstack/pull/13082
- Events: harden dict view iterations by @bentsku in https://github.com/localstack/localstack/pull/13088
- CFn: propagate tags to stack/change-set by @simonrw in https://github.com/localstack/localstack/pull/13117
- Lambda: S3 presigned url should respect LOCALSTACK_HOST by @dfangl in https://github.com/localstack/localstack/pull/13119
- CFN: fix stack update with transformation included by @pinzon in https://github.com/localstack/localstack/pull/13122
- CFn: improve parity of describing failed change sets by @simonrw in https://github.com/localstack/localstack/pull/13123
- Remove dependency of static error message in implementation coverage script by @sannya-singal in https://github.com/localstack/localstack/pull/13116
- IaC: log warning about change of CFN_IGNORE_UNSUPPORTED_RESOURCE_TYPES only if variable is not explicitly set by @k-a-il in https://github.com/localstack/localstack/pull/13118
- KMS: AWS-compliant validation for multi-region key replication by @Ganji00 in https://github.com/localstack/localstack/pull/13102
- CFn: add more clarity on logging for unimplemented update methods by @simonrw in https://github.com/localstack/localstack/pull/13109
New Contributors
- @kn1ves made their first contribution in https://github.com/localstack/localstack/pull/12941
- @YelynnOh made their first contribution in https://github.com/localstack/localstack/pull/12823
- @VanshikaSabharwal made their first contribution in https://github.com/localstack/localstack/pull/13013
- @hovaesco made their first contribution in https://github.com/localstack/localstack/pull/13035
- @SethPyle376 made their first contribution in https://github.com/localstack/localstack/pull/12957
- @Ganji00 made their first contribution in https://github.com/localstack/localstack/pull/13079
- @NigelRook made their first contribution in https://github.com/localstack/localstack/pull/12981
- @aidehn made their first contribution in https://github.com/localstack/localstack/pull/13105
Full Changelog: https://github.com/localstack/localstack/compare/v4.7.0...v4.8.0