Summary
LocalStack v1.1 is here! We have been working hard to iron out kinks with v1, fixing issues, and have added support for several AWS features, including Lambda Function URLs and two new services: Transcribe and Fault Injection Simulator.
AWS features
- Lambda function URLs
- Lambda event filtering
- API Gateway integration to execute Stepfunctions
- S3 Notifications to EventBridge
- Reporting batch item failures when using SQS with Lambda
- CBOR support for all services (including Kinesis)
- Initial support for DynamoDB global tables version 2019.11.21
- Experimental version of Amazon Transcribe speech to text service
- Initial version of AWS Fault Injection Simulator service (🌟 Pro)
- Enhanced integration between API Gateway v2, ECS, and ALB (🌟 Pro)
- RDS custom versions are now the default, you can disable them with
RDS_PG_CUSTOM_VERSIONS=0
(🌟 Pro) - Initial support for Neo4J graph databases in Neptune (🌟 Pro)
LocalStack features
- Pluggable initialization hooks in
/etc/localhost/init/<stage>.d
which will replace/docker-entrypoint-initaws.d
- Force DynamoDBLocal in-memory mode with
DYNAMODB_IN_MEMORY=1
for improved performance - Persistence support for CloudWatch Logs (🌟 Pro)
- Developer mode for LocalStack extensions (🌟 Pro)
- Several enhancements and optimizations for persistence and cloud pods (incl. multi-account support, state merge scenarios) (🌟 Pro)
LocalStack changes
- Upgrade to Moto v4.0 which will enable robust multi-account support in the near future.
- The Kinesalite Kinesis provider is now deprecated
- Overall bug fixing efforts: we have closed over 150 issues across all our repos since the release of v1
- The Node.js runtime inside the LocalStack Docker image has been upgraded from v14 to v18 (to resolve some security vulnerabilities reported by CVE scanners). This may potentially affect
nodejs*
Lambdas executed withLAMBDA_EXECUTOR=local
- please make sure your Lambdas are not using deprecated Node.js APIs.
What's Changed
- fix message retry in lambda SQS event source mapping by @thrau in #6603
- update Docker base image (python) tag to v3.10.6 by @renovate in #6608
- order input for snapshot-match to fix reference-replacement by @steffyP in #6598
- re-create snapshot-json to fix ordering by @steffyP in #6624
- Fix fifo queue creation with attribute validation by @baermat in #6622
- use snapshots for SNS tests by @bentsku in #6601
- Reduce docker desktop lambda creation times by @dfangl in #6595
- Adding a KMS test for encryption with different key formats. by @taras-kobernyk-localstack in #6500
- added passing tests by @macnev2013 in #6617
- Support for new S3 checksum checks by @pinzon in #6619
- fix KeyValueBasedTransformer by @steffyP in #6623
- fix error in deleting lambda configuration keys by @dfangl in #6627
- removed databind patch for dynamodb by @steffyP in #6637
- fix delay seconds=0 for fifo queues by @baermat in #6633
- fix SNS subscription deleted when SQS endpoint was deleted by @bentsku in #6645
- Add default logging configuration for state machine by @giograno in #6628
- Introduce colored output format for snapshot diffs in integration tests by @dominikschubert in #6456
- fix SNS msg attrs when sending to SQS DLQ by @bentsku in #6640
- fix format of message to SNS and SQS from lambda DLQ by @bentsku in #6625
- Fix resolving CFn intrinsic functions passed as list rather than dict by @whummer in #6658
- Fixing BatchWriteItem with key element not matching the schema by @giograno in #6641
- Validate a bunch of DynamoDB tests against AWS by @giograno in #6653
- remove old event logging code by @thrau in #6632
- fix lambda_sqs_integration region resolution to avoid CI failures by @thrau in #6666
- Update ASF APIs by @localstack-bot in #6670
- update Docker base image (python:3.10.6-slim-buster) digest to 4bb7026 by @renovate in #6669
- Fix Error when Destinations are not specified (AWS SES) by @sreeo in #6665
- Fix linting by @viren-nadkarni in #6677
- add caching for service catalog indexes by @thrau in #6672
- Use repr conversion when printing values in diff report by @dominikschubert in #6664
- fix pipeline by disabling flaky TF S3 tests by @alexrashed in #6679
- Generalize parameter conversion fallback for SDK calls in CloudFormation by @dominikschubert in #6662
- fix failing circle-ci step by @steffyP in #6685
- Added test for S3 notification with a presigned request by @pinzon in #6498
- fix parity coverage scripts (add FIS, allow non-indexed services) by @alexrashed in #6693
- add support for ReportBatchItemFailures in Lambda SQS event source mappings by @thrau in #6606
- Making it possible for KMS GetPublicKey to get ENCRYPT_DECRYPT keys. by @taras-kobernyk-localstack in #6675
- Fix CloudFormation GetTemplate response and multiple cdk deployments by @dominikschubert in #6635
- Feature: Lambda URL support by @pinzon in #6342
- fix patch deployment model by @calvernaz in #6699
- set CONFIG_PROFILE correctly into config variable with localstack CLI by @thrau in #6636
- Add response for cors preflight requests by @dfangl in #6646
- Fix Lambda URL building by @dominikschubert in #6703
- Feature: SNS msg delivery to Firehose endpoint by @pinzon in #6426
- fix SNS publish_batch passing MessageDeduplicationId to SQS queue by @bentsku in #6660
- Update CLA Github action to not lock PR threads after merge by @whummer in #6708
- Prevent race condition for Store write operations by @viren-nadkarni in #6689
- added apis for route53resovler by @macnev2013 in #6673
- fix CORS response enriching for service-managed CORS by @alexrashed in #6723
- fix sqs fifo message sequence number generation by @thrau in #6713
- fix sqs purge queue operation to match AWS behavior by @thrau in #6710
- remove extensions api from coverage collection by @thrau in #6715
- Update ASF APIs by @localstack-bot in #6719
- Feature: Lambda Event Filtering for DynamoDB Streams, SQS by @merowinger92 in #6212
- make dynamodblocal inMemory option configurable by @thrau in #6730
- improve performance of dynamodb forward_request operations by @thrau in #6733
- Correctly shutdown kinesis listener once firehose deliverystream is deleted by @dfangl in #6729
- fix apigateway aws lambda integration invocation by @calvernaz in #6667
- Allow conditional skip with skip_snapshot_verify by @dominikschubert in #6731
- SES: Extract and save the source address for raw email messages by @viren-nadkarni in #6728
- add capture_not_implemented to CircleCI by @steffyP in #6694
- Fix OpenSearch port strategy when running inside Docker by @silv-io in #6638
- fix for coverage_docs_utility by @steffyP in #6741
- StepFunctions patch for LoggingConfigurations by @giograno in #6735
- Extend valid regions for Stores to include extended AWS partitions by @whummer in #6745
- fix scaffold by handling Union as special keyword by @alexrashed in #6746
- Add support stepfunctions integration by @calvernaz in #6513
- fix: parity subnet tests by @macnev2013 in #6711
- Fix returning CIDR IP range for Redshift cluster security groups by @whummer in #6749
- update CODEOWNERS, set default reviewer for ASF Update PRs by @alexrashed in #6751
- Fix IAM policy validation and MaxSessionDuration of roles, remove obsolete patches by @whummer in #6754
- add service-specific response handler for dynamodb by @thrau in #6736
- A valid skip condition without paths should skip the whole snapshot by @dominikschubert in #6758
- remove dead utility code by @thrau in #6717
- fix ext compatibility for mergable sqs queue by @thrau in #6768
- fine-grained service locks by @calvernaz in #6763
- Add support for S3 notifications to EventBridge by @pinzon in #6555
- remove unused dashboard code by @thrau in #6714
- add new pluggable initialization hooks by @thrau in #6716
- Kinesis: SubscribeToShard session cut after 5min by @ackdav in #6732
- improve fixtures by @calvernaz in #6770
- update Docker base image (python:3.10.6-slim-buster) digest to f17c949 by @renovate in #6773
- Update ASF APIs by @localstack-bot in #6774
- refactor stepfunctions installer by @baermat in #6755
- Add support for AWS::Lambda::Url by @dominikschubert in #6765
- pin hypercorn to 0.13.2 by @thrau in #6779
- Add parity tests and refactor logic for CFn stack resource updates by @whummer in #6780
- migrate Kinesis to ASF by @alexrashed in #6166
- Result Handler for Kms Key by @pinzon in #6776
- fix issue #6740 max message size by @rjmcginness in #6767
- Moto v4 by @viren-nadkarni in #6430
- fix CBOR datetime encoding by @alexrashed in #6791
- POC of global tables version 2019 by @giograno in #6744
- fix service detection for internal service routes by @dfangl in #6793
- Bump Node.js binary to version 18 by @whummer in #6795
- Fix idempotence of DDB/SFN installer logic to enable running as non-root by @whummer in #6785
- AWS Transcribe by @viren-nadkarni in #6688
- Remove direct imports of lambda provider by @dfangl in #6737
- SNS - fix publish_batch to invalid topic by @bentsku in #6803
- Remove xfail flag for test to run container as non-root by @whummer in #6801
- Fix dot in field name in skip_verification_path for snapshots by @bentsku in #6802
- upgrade moto-ext to 4.0.1.post2 by @thrau in #6810
New Contributors
- @sreeo made their first contribution in #6665
- @ackdav made their first contribution in #6732
- @rjmcginness made their first contribution in #6767
Full Changelog: v1.0.4...v1.1.0