Summary
LocalStack for AWS 4.13 includes important improvements to support and parity across a number of key services includes Lambda, ECS, Route 53 and API Gateway, as well as a ton of smaller but important enhancements and fixes that continue to improve AWS and IaC framework parity.
AWS Features
- LocalStack for AWS now supports the .NET 10 Lambda runtime. .NET 10 includes runtime and compiler optimizations that ca shrink the executable size and improve startup performance. as well as new file-based apps support.
- ECS emulation improvements including:
- Added support for the
repositoryCredentialsparameter in an ECS task definition allowing ECS to pull images from registries that require authentication - Added an initial implementation to support the
cpuandmemoryvalues in the container configuration of a task definition. - ECS deployment completion is now asynchronous by moving post-start work into a background routine, eliminating issues that might occur if the image pull took long.
- Added support for the
- Important parity enhancements that impact both Amazon Route 53 and API Gateway:
- Route 53 now supports weighted routing to specify how much traffic is routed to each resource via a relative weight.
- You can now use the same custom domain name across different regions as LocalStack for AWS will now correctly treat these as regional resources.
- If you have a domain registered in both Route 53 and API Gateway, LocalStack for AWS now correctly applies Route53’s routing logic (like weighted routing) before passing the request to API Gateway.
Enhancements
- Added support for
CreateServerlessCachewithin ElastiCache. - Added two new configuration options (
EC2_LIBVIRT_NETWORKandEC2_LIBVIRT_POOL) to allow the name of the Libvirt network and/or Libvirt storage pool to be customized. An additional configuration variable (EC2_REFERENCE_DOMAIN) that can already defined Libvirt domain whose configuration LocalStack will copy into all new VMs it creates. - Previously, when creating an Amazon Managed Streaming for Apache Kafka (MSK) cluster and attaching a custom configuration, the configuration was successfully attached but its settings are not applied at runtime. As of LocalStack for AWS 4.13, the attached MSK configuration will be applied to the cluster, and its parameters (e.g.,
num.partitions,min.insync.replicas, etc.) will affect the runtime behavior as expected. - Fixed an issue where creating an AppSync API key with Terraform would fail since the generated
expiresanddeleteswould be float. - Added support for the
instancetarget type in Network Load Balancers. - Fixed an issue where a CloudFormation (CFN) resource operation not supported by LocalStack would produce an incorrect
InternalFailureerror that did not clearly indicate the specific CFN resource support that is missing. - Added support for the
AWS::RDS::DBProxyEndpointin CloudFormation. The resource type is already supported by LocalStack for AWS's RDS service. - Added new configuration variables to enable users to ignore specific unsupported resource types in CloudFormation.
CFN_IGNORE_UNSUPPORTED_TYPE_CREATEandCFN_IGNORE_UNSUPPORTED_TYPE_UPDATEtake a comma-separated list of resource type names that CloudFormation will ignore on stack creation and update respectively. - Fixed missing metadata in API Gateway VPC Links to ensure LocalStack for AWS now correctly populates fields like
targetArns,name, anddescriptionfor VPC Links.
What's Changed
Exciting New Features 🎉
- SNS: v2 permission operations by @baermat in #13516
- Modify CloudFormation resource provider scaffolding to use "live" schemas by @peter-smith-phd in #13513
- Sns: v2 data protection operations by @baermat in #13525
- Add possibility to ignore specific unsupported resource types in CloudFormation by @silv-io in #13496
- SNS: v2 add http endpoint for opting out phone numbers by @baermat in #13540
- Fixing write transaction with ARN as table name by @drauedo in #13590
- Add Dotnet 10 Lambda runtime by @joe4dev in #13607
- IaC: add custom error messages based on service availability status by @k-a-il in #13597
- IaC: fix problematic CFN plugin manager import by @k-a-il in #13621
- AWS catalog: Provide custom error message when plugin is not available in user license by @k-a-il in #13651
Other Changes
- SQS: Improve update support for CloudFormation handlers. by @peter-smith-phd in #13477
- Handle latest version restore for Lambda with capacity provider by @joe4dev in #13495
- dev: support executing kubernetes dev setup on command execution by @simonrw in #13509
- Update CODEOWNERS by @localstack-bot in #13523
- Retire IoT Analytics by @viren-nadkarni in #13464
- Fix getting started URL by @artamonovkirill in #13520
- Include EC2 Libvirt VMM usage in analytics by @viren-nadkarni in #13502
- DNS: Move tests to integration tests, reenable skipped test by @dfangl in #13510
- Retire Elemental MediaStore by @viren-nadkarni in #13484
- kms: support custom_key_material for RSA_2048 by @sannya-singal in #13515
- Improve annotation of the CloudWatch store by @giograno in #13511
- Apigw/fix vpc links return value by @cloutierMat in #13532
- CI: Skip failing DNS unit test by @k-a-il in #13536
- Fix RPC v2 CBOR timestamp parsing for float by @bentsku in #13541
- fix: replace hardcoded region in SNS test by @baermat in #13542
- Fix CloudWatch model annotation by @giograno in #13545
- Docker: Support cpu shares and memory limit by @dfangl in #13504
- Fix Lambda CI log pollution issues by @joe4dev in #13546
- Update CODEOWNERS by @localstack-bot in #13559
- remove release announcement in README by @alexrashed in #13560
- Improve KMS model by @giograno in #13558
- CFn: validate
Typeis provided by @simonrw in #13524 - APIGW: improve store typing by @bentsku in #13552
- Lambda: add validations for PublishTo and inexistent capacity provider by @anisaoshafi in #13519
- Lambda: adjust qualifier validation for integrations by @anisaoshafi in #13517
- Move dill to the runtime dependencies by @giograno in #13508
- Fix KMS model annotations by @giograno in #13563
- IAM: Update
create_user_with_policyfixture by @aidehn in #13568 - feat: add validation for SNS batch entry IDs and corresponding tests by @shubhiscoding in #13556
- CloudFormation: Store resource scaffolding in 'generated' directory. by @peter-smith-phd in #13534
- fix(pyproject): Make inclusion of additional cfn schemas more permissive by @gregfurman in #13586
- Make cleanups fixture logging actionable by @joe4dev in #13553
- Bump urllib3 from 2.6.2 to 2.6.3 by @dependabot[bot] in #13596
- fix: open API spec by @carole-lavillonniere in #13551
- update: bump Lambda RIE version to v0.1.38-pre by @gregfurman in #13537
- SQS: Complete implementation and testing of AWS::SQS:* CloudFormation resource providers by @peter-smith-phd in #13548
- fix/openapi spec by @cloutierMat in #13599
- Bump werkzeug from 3.1.4 to 3.1.5 by @dependabot[bot] in #13600
- upgrade lambda-runtime-init by @carole-lavillonniere in #13593
- use OUTBOUND_HTTP_PROXY for for external bypass client by @cloutierMat in #13565
- Refine Lambda typings by @joe4dev in #13602
- Allow authenticated pull and push of docker images by @nik-localstack in #13569
- APIGW: fix regional domain name to take into account region by @bentsku in #13603
- Add Tags utility by @pinzon in #13601
- SNS: v2 enable skipped tests by @baermat in #13544
- fix: race condition when unpacking lambda leaves corrupted file by @carole-lavillonniere in #13591
- CFn: correctly detect createOnlyProperties by @simonrw in #13619
- Fix Lambda Rust cross-arch build and update dependencies by @joe4dev in #13614
- SQS: Correctly restore default values when FIFO properties removed from CloudFormation template. by @peter-smith-phd in #13622
- Update CODEOWNERS by @localstack-bot in #13630
- fix: no BasePath provided to delete base path mapping by @amitsh1 in #13533
- fix(scheduler): support range-with-step syntax in cron expressions by @danielmeint in #13628
- Update README with notice on image consolidation by @alexrashed in #13637
- Update DockerHub with notice on image consolidation by @alexrashed in #13638
- add warning to Community image startup by @alexrashed in #13646
- add warning on image consolidation to CLI start by @alexrashed in #13645
- fix: make EventBridge put-events asynchronous to match AWS behavior by @jferman-kb4 in #13636
- increase size of image consolidation notice on DockerHub by @alexrashed in #13654
- fix(docs): repair broken links in CONTRIBUTING.md by @Septic-H in #13647
- add precommit hook to prevent commits on main by @alexrashed in #13659
New Contributors
- @artamonovkirill made their first contribution in #13520
- @shubhiscoding made their first contribution in #13556
- @drauedo made their first contribution in #13590
- @amitsh1 made their first contribution in #13533
- @danielmeint made their first contribution in #13628
- @jferman-kb4 made their first contribution in #13636
- @Septic-H made their first contribution in #13647
Full Changelog: v4.12.0...v4.13.0