v3.1.0
版本发布时间: 2024-01-26 01:48:18
localstack/localstack最新发布版本:v3.7.2(2024-09-06 20:47:10)
Summary
LocalStack 3.1 is here with exciting new features and enhancements. It introduces initial support for new providers: EventBridge Pipes, MemoryDB, Account, WAFv2, Identity Store, AMB, ACM PCA, as well as new features for existing services: the Instance Metadata Service (IMDS). Additionally, it offers improvements in DynamoDB, SQS, CloudWatch, RDS, ElastiCache and Lambda. The release also includes enhancements in Cloud Pods, Resource Browsers, and CI Keys Usage inspection.
New Features and Services
- Initial support for a new EventBridge Pipes provider to create Pipes with SQS queues and Kinesis streams as source and target. You can filter events using EventBridge event patterns and enrich events using Lambda. (🌟 pro)
- Initial support for a new MemoryDB provider to create and manage MemoryDB clusters locally, either in the LocalStack container itself or in separate containers for each cluster node. (🌟 pro)
- ElastiCache now supports creating Redis cache nodes and clusters as individual Docker containers, similar to MemoryDB. (🌟 pro)
- Initial support for a new Account provider, supporting basic CRUD operations surrounding AWS account management. (🌟 pro)
- Initial support for a new WAFv2 provider, supporting basic CRUD operations surrounding AWS Web Application Provider. (🌟 pro)
- Initial support for a new ACM PCA provider, supporting basic CRUD operations surrounding AWS Private Certificate Authority. (🌟 pro)
- Initial support for the Instance Metadata Service (IMDS) that exposes an endpoint inside every EC2 instance at
http://169.254.169.254/
. (🌟 pro) - Initial support for the Identity Store provider, supporting basic CRUD operations surrounding AWS IAM Identity Center. (🌟 pro)
- A new LocalStack-native CloudWatch provider is available behind a feature flag:
PROVIDER_OVERRIDE_CLOUDWATCH=v2
, which includes a lot of parity fixes and is designed to be thread safe. - Initial support for a new Managed Blockchain provider, supporting basic CRUD operations surrounding Amazon Managed Blockchain. (🌟 pro)
Enhancements
- DynamoDB now supports Time to Live (TTL) which allows you to define a per-item expiration timestamp that indicates when an item is no longer needed, and delete it automatically.
- SQS now supports dead-letter queue re-drive emulation through
StartMessageMoveTask
,CancelMessageMoveTask
, andListMessageMoveTasks
API operations. - CloudWatch now supports Lambda targets for alarm actions on LocalStack.
- RDS now supports providing admin permission to the master users on RDS for MySQL and MariaDB engines. (🌟 pro)
- Lambda performance improvements for asynchronous invocations along with reduction in
ReadTimeoutError
occurrences during high load on LocalStack.
LocalStack Features
- Cloud Pods
save
andload
commands now show a progress status on the CLI. (🌟 pro) - New Resource Browsers for the following AWS services are available on LocalStack Web Application: OpenSearch, CloudFront, and Application Auto Scaling. In addition, new runtimes have been added to the Lambda Resource Browser. (🌟 pro)
- Users can now inspect CI Keys Usage on the LocalStack Web Application. (🌟 pro)
Deprecations
-
DNS_LOCAL_NAME_PATTERNS
is removed in favor ofDNS_NAME_PATTERNS_TO_RESOLVE_UPSTREAM
to list domain names that should not be resolved to the LocalStack container, but forwarded to the upstream resolver.
What's Changed
Exciting New Features 🎉
- Add option to disable AWS_ENDPOINT_URL by @joe4dev in https://github.com/localstack/localstack/pull/9792
- Introduce DNS_NAME_PATTERNS_TO_RESOLVE_UPSTREAM config by @simonrw in https://github.com/localstack/localstack/pull/9692
- add support for AWS::DynamoDB::GlobalTable resource type by @pinzon in https://github.com/localstack/localstack/pull/9790
- Simplify the official docker-compose.yml by @joe4dev in https://github.com/localstack/localstack/pull/9822
- Add flag to disable kinesis-mock persistence by @dfangl in https://github.com/localstack/localstack/pull/9871
- Transcribe: Add support for transcribing video files by @viren-nadkarni in https://github.com/localstack/localstack/pull/9898
- introduce request finalizers into handler chain by @thrau in https://github.com/localstack/localstack/pull/9194
- Test lambda performance and mitigate async invoke timeout error (#9917) by @joe4dev in https://github.com/localstack/localstack/pull/9917
- add cli option to restart localstack container by @HarshCasper in https://github.com/localstack/localstack/pull/9904
- Updates deduplication ID and group ID max length to 128 by @nishadcptn in https://github.com/localstack/localstack/pull/9923
- add lambda alarm action for cloudwatch by @steffyP in https://github.com/localstack/localstack/pull/9985
- Test lambda performance and mitigate async invoke timeout error v2 by @joe4dev in https://github.com/localstack/localstack/pull/9972
- fix lambda create event source mapping duplicates by @thrau in https://github.com/localstack/localstack/pull/9996
- fix sqs multi-protocol handling and upgrade botocore by @alexrashed in https://github.com/localstack/localstack/pull/9710
- add SNS signing of messages by @bentsku in https://github.com/localstack/localstack/pull/9997
- add extension mechanism for exceptions by @thrau in https://github.com/localstack/localstack/pull/10019
- Add config option to control maximum gateway worker thread count by @dfangl in https://github.com/localstack/localstack/pull/10016
- fix support calling sqs from api ws gw on disconnect endpoint by @calvernaz in https://github.com/localstack/localstack/pull/10008
- implement apigw request validation for parameters (header/path/qs) by @bentsku in https://github.com/localstack/localstack/pull/10036
- refactor http router for better werkzeug compatibility by @thrau in https://github.com/localstack/localstack/pull/10011
- move http framework code to rolo and only keep references by @thrau in https://github.com/localstack/localstack/pull/10061
- Make the internal sqs implementation of lambda events the default by @dfangl in https://github.com/localstack/localstack/pull/10062
- Add Cloudwatch v2 Provider by @pinzon in https://github.com/localstack/localstack/pull/9347
- move gateway and handler chain framework to rolo by @thrau in https://github.com/localstack/localstack/pull/10092
Other Changes
- add APIGW PutIntegration IntegrationType validation by @bentsku in https://github.com/localstack/localstack/pull/9763
- Enable test for Fn::GetAZs and extend feature by @pinzon in https://github.com/localstack/localstack/pull/9740
- fix kms key creation for s3 encryption by @sannya-singal in https://github.com/localstack/localstack/pull/9751
- Remove thread-local region, access key and account ID by @viren-nadkarni in https://github.com/localstack/localstack/pull/9750
- added util function for time by @macnev2013 in https://github.com/localstack/localstack/pull/9736
- Enable AppSync cloudformation resources by @simonrw in https://github.com/localstack/localstack/pull/9726
- Add list to dictionary transformation function in provider_utils For CFn by @Morijarti in https://github.com/localstack/localstack/pull/9786
- Update Lambda runtime test skip condition by @simonrw in https://github.com/localstack/localstack/pull/9760
- Fix alias resource records & add missing id in AWS::Route53::RecordSet by @dominikschubert in https://github.com/localstack/localstack/pull/9788
- Add option to capture raw snapshots when running tests by @dominikschubert in https://github.com/localstack/localstack/pull/9775
- [SFN] Fix string lexing in Intrinsic Function arguments by @MEPalma in https://github.com/localstack/localstack/pull/9783
- Support creation of CloudFormation stacks with the same name after deletion by @dominikschubert in https://github.com/localstack/localstack/pull/9748
- Fix StepFunctions execution date formatting by @dominikschubert in https://github.com/localstack/localstack/pull/9702
- Fix missing "Pulling container image" message from CLI startup by @simonrw in https://github.com/localstack/localstack/pull/9778
- add missing DeadLetterConfig parameter by @baermat in https://github.com/localstack/localstack/pull/9773
- fix recursive types when generating TypedDicts by @alexrashed in https://github.com/localstack/localstack/pull/9797
- fixed account id for firehose integration by @macnev2013 in https://github.com/localstack/localstack/pull/9785
- fix AWS::SQS::Queue update missing QueueArn and QueueUrl by @bentsku in https://github.com/localstack/localstack/pull/9744
- Cfn: Fix boto client not using credentials for Lambda PublishVersion by @viren-nadkarni in https://github.com/localstack/localstack/pull/9787
- fix: fix failing dashboard lifecycle test for multi-account and region by @sannya-singal in https://github.com/localstack/localstack/pull/9799
- [SFN] Enhancements to States I/O, Support for null InputPath and OutputPath by @MEPalma in https://github.com/localstack/localstack/pull/9801
- Improve lambda multiruntime tests by @joe4dev in https://github.com/localstack/localstack/pull/9798
- Add support for conditions on CFn stack outputs by @dominikschubert in https://github.com/localstack/localstack/pull/9814
- add cross-account for CopyObject by @bentsku in https://github.com/localstack/localstack/pull/9806
- fix: handle BucketAlreadyOwnedByYou exception when uploading lambda in scenario test cases by @sannya-singal in https://github.com/localstack/localstack/pull/9805
- CFn: fix AWS::Events::Rule ref/id/name attributes by @simonrw in https://github.com/localstack/localstack/pull/9789
- Bump Postgresql CI dependency by @viren-nadkarni in https://github.com/localstack/localstack/pull/9818
- Implemented support for AWS::Lambda:* Resource Provider for CloudFormation by @Morijarti in https://github.com/localstack/localstack/pull/9508
- Implemented AWS::CDK::Metadata resource provider by @Morijarti in https://github.com/localstack/localstack/pull/9520
- fix s3 presign tests for multi account support by @macnev2013 in https://github.com/localstack/localstack/pull/9816
- Fix AWS parity for SQS list queues with empty response by @joe4dev in https://github.com/localstack/localstack/pull/9828
- Prevent error message being shown with entrypoints command by @simonrw in https://github.com/localstack/localstack/pull/9827
- Fix: lookup more specific DNS names directly by @simonrw in https://github.com/localstack/localstack/pull/9815
- APIGW: Fix tests to run with non-default account ID by @viren-nadkarni in https://github.com/localstack/localstack/pull/9690
- Install websocket-client as it is no longer included with docker client by @simonrw in https://github.com/localstack/localstack/pull/9841
- Add formatting-aware timestamp replacement via new TimestampTransformer by @dominikschubert in https://github.com/localstack/localstack/pull/9772
- Skip comment for entrypoints line by @simonrw in https://github.com/localstack/localstack/pull/9838
- Fix lambda function name validation for CreateFunction by @joe4dev in https://github.com/localstack/localstack/pull/9825
- Fix serialization of content in raw snapshots by @dominikschubert in https://github.com/localstack/localstack/pull/9820
- remove outdated documentation and improve the README files by @HarshCasper in https://github.com/localstack/localstack/pull/9850
- Fix SQS CFn updates with no change by @simonrw in https://github.com/localstack/localstack/pull/9831
- fix s3 key handling with trailing slash by @bentsku in https://github.com/localstack/localstack/pull/9856
- fix: serverless failing multi-account/region tests by @sannya-singal in https://github.com/localstack/localstack/pull/9840
- pin docker dependency to <7.0.0 by @dominikschubert in https://github.com/localstack/localstack/pull/9864
- Updated Cloudformationn Schema to latest version by @Morijarti in https://github.com/localstack/localstack/pull/9865
- fix S3 lifecycle tags filter by @bentsku in https://github.com/localstack/localstack/pull/9859
- Allow merging of config profiles by @dfangl in https://github.com/localstack/localstack/pull/9873
- Add support for partial ARNs for EventSourceMappings and fix AWS::Lambda::Version state check by @dominikschubert in https://github.com/localstack/localstack/pull/9879
- CloudWatch: Use SNS client with same region as topic by @viren-nadkarni in https://github.com/localstack/localstack/pull/9878
- Fix: Route53 populating VPC fields by @simonrw in https://github.com/localstack/localstack/pull/9885
- fix APIGW import integration method for AWS integration type by @bentsku in https://github.com/localstack/localstack/pull/9810
- Bump moto-ext to 4.2.11.post1 by @viren-nadkarni in https://github.com/localstack/localstack/pull/9852
- Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/9835
- remove code in state locator by @giograno in https://github.com/localstack/localstack/pull/9894
- Update dynamodb snapshot to unblock pipeline by @dominikschubert in https://github.com/localstack/localstack/pull/9910
- Bump Kinesis Mock to 0.4.5 by @etspaceman in https://github.com/localstack/localstack/pull/9906
- fix S3 UploadPart logic when cancelling/error a request by @bentsku in https://github.com/localstack/localstack/pull/9901
- Allow kinesis get_records shard iterator to have surrounding quotes by @dfangl in https://github.com/localstack/localstack/pull/9884
- Added missing type conversion for CFn update of Lambda::Function MemorySize to int by @Morijarti in https://github.com/localstack/localstack/pull/9903
- add S3 object key validation by @bentsku in https://github.com/localstack/localstack/pull/9875
- Fix Lambda Kinesis event filtering by @danielpoonwj in https://github.com/localstack/localstack/pull/6826
- Refine get in touch readme by @joe4dev in https://github.com/localstack/localstack/pull/9922
- [SFN] Fix Parallel State Output Ordering by @MEPalma in https://github.com/localstack/localstack/pull/9889
- [SFN] Support for Optional ProcessorConfig Declarations by @MEPalma in https://github.com/localstack/localstack/pull/9888
- Remove error message if environment does not exist by @dfangl in https://github.com/localstack/localstack/pull/9913
- Track date of last passed validation run of tests targeting AWS by @dominikschubert in https://github.com/localstack/localstack/pull/9927
- fix CFN RequestValidator parameters being optional by @bentsku in https://github.com/localstack/localstack/pull/9915
- fix S3 service name parsing consuming the stream by @bentsku in https://github.com/localstack/localstack/pull/9874
- Fix: ACM: Additional domains missing from subject alternative names summaries by @maxhoheiser in https://github.com/localstack/localstack/pull/9897
- Fix: EventBus: match null value for anything-but rule by @maxhoheiser in https://github.com/localstack/localstack/pull/9925
- Add initial validation files for recorded snapshots by @dominikschubert in https://github.com/localstack/localstack/pull/9928
- Add support for AWS::Cognito::* in CloudFormation by @Morijarti in https://github.com/localstack/localstack/pull/9855
- Add AWS::Athena::* Resource Providers for CFn by @Morijarti in https://github.com/localstack/localstack/pull/9779
- Add AppConfig resource providers to CFn by @Morijarti in https://github.com/localstack/localstack/pull/9774
- [SFN] Enhanced Support for Exception Handling in Parallel States by @MEPalma in https://github.com/localstack/localstack/pull/9891
- Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/9938
- Revert recent changes to async lambda invoke (#9917) by @dominikschubert in https://github.com/localstack/localstack/pull/9944
- Enable migrated SES resource providers by @dominikschubert in https://github.com/localstack/localstack/pull/9950
- Add new client types to TypedServiceClientFactory by @dominikschubert in https://github.com/localstack/localstack/pull/9953
- Cfn: Fix nested stack name generation by @viren-nadkarni in https://github.com/localstack/localstack/pull/9926
- Fix: EventBus: Exists prefix not considered for rule matching by @maxhoheiser in https://github.com/localstack/localstack/pull/9931
- Fix secret rotation in secretsmanager by @lakkeger in https://github.com/localstack/localstack/pull/9862
- fix S3 CORS headers casing matching by @bentsku in https://github.com/localstack/localstack/pull/9973
- add SQS message retention period functionality by @thrau in https://github.com/localstack/localstack/pull/9956
- fix sqs message group visibility when sending messages by @thrau in https://github.com/localstack/localstack/pull/9975
- use batches to report SQS metrics for approximate query metrics by @steffyP in https://github.com/localstack/localstack/pull/9886
- add subrange operation for ports by @thrau in https://github.com/localstack/localstack/pull/9965
- add exception module to event source mappings by @thrau in https://github.com/localstack/localstack/pull/9964
- Add integration test for SQS FIFO event source order/parallelism by @dominikschubert in https://github.com/localstack/localstack/pull/7037
- Add link-local address and init args to Docker client API by @viren-nadkarni in https://github.com/localstack/localstack/pull/9900
- fix S3 missing XML namespace by @bentsku in https://github.com/localstack/localstack/pull/9983
- fix cloudwatch alarm evaluation for SampleCount by @steffyP in https://github.com/localstack/localstack/pull/9978
- fix snapshot match order by @steffyP in https://github.com/localstack/localstack/pull/9993
- fix SQS send batch message validation for message size by @thrau in https://github.com/localstack/localstack/pull/9981
- fix CopySource unquoting of special + char by @bentsku in https://github.com/localstack/localstack/pull/9992
- add SQS message move task feature by @thrau in https://github.com/localstack/localstack/pull/9988
- snapshot test for return values on condition check failure by @giograno in https://github.com/localstack/localstack/pull/9984
- improve S3 aws-chunked detection by @bentsku in https://github.com/localstack/localstack/pull/9999
- Add events method to docker clients by @simonrw in https://github.com/localstack/localstack/pull/9932
- fix flaky sns unit test by @thrau in https://github.com/localstack/localstack/pull/10012
- add OpenSearch analysis-kuromoji plugin by @alexrashed in https://github.com/localstack/localstack/pull/10001
- [SFN] Support for Version Declarations by @MEPalma in https://github.com/localstack/localstack/pull/9948
- Revert "Add events method to docker clients (#9932)" by @dfangl in https://github.com/localstack/localstack/pull/10025
- Bump moto-ext to 5.0.0alpha1.post1 by @viren-nadkarni in https://github.com/localstack/localstack/pull/10017
- Add AWS::ApiGateway and AWS::Add AWS::ApiGatewayV2 resources by @Morijarti in https://github.com/localstack/localstack/pull/9629
- refactor Poller.handle_message and extract process_event_retry by @thrau in https://github.com/localstack/localstack/pull/10043
- [SFN] Implicit Reductions To and From botocore Types by @MEPalma in https://github.com/localstack/localstack/pull/9920
- allow headers to be set from integration definition for HTTP integrat… by @jimmydurkin in https://github.com/localstack/localstack/pull/10035
- fix CLI issue with outdated click version by @alexrashed in https://github.com/localstack/localstack/pull/10029
- Add new internalized sqs queue for lambda events by @dfangl in https://github.com/localstack/localstack/pull/10045
- feat: DynamoDB TTL by @giograno in https://github.com/localstack/localstack/pull/10041
- Dynamodb: Fix disable SSESpecification with UpdateTable by @viren-nadkarni in https://github.com/localstack/localstack/pull/10040
- Support dynamic port on Lambda remote debugging by @yamadayutaka in https://github.com/localstack/localstack/pull/9420
- fix source ip value for the lambda event request by @calvernaz in https://github.com/localstack/localstack/pull/10038
- Fix: ACM: Describe DomainValidationOptions for subject alternative names duplicated with additional suffix by @maxhoheiser in https://github.com/localstack/localstack/pull/10027
- patch HTTPServer fixture to spawn daemon thread by @bentsku in https://github.com/localstack/localstack/pull/10052
- refactor EventSourceAsfAdapter for easier instrumentation by @thrau in https://github.com/localstack/localstack/pull/10053
- Skip snapshot verification for CodeSha256 in lambda API test by @dominikschubert in https://github.com/localstack/localstack/pull/10055
- Make lambda sqs event source mapping interval configurable by @dfangl in https://github.com/localstack/localstack/pull/10051
- update the year in the license section by @HarshCasper in https://github.com/localstack/localstack/pull/10050
- Implement resource provider for AWS::Lambda::Function by @dominikschubert in https://github.com/localstack/localstack/pull/9321
- fix return value for AWS::Cognito::UserPoolClient by @giograno in https://github.com/localstack/localstack/pull/10060
- supports enabling S3 Object Lock on existing buckets by @bentsku in https://github.com/localstack/localstack/pull/10071
- add support for ObjectLock for CFN S3 Bucket by @bentsku in https://github.com/localstack/localstack/pull/10070
- fix S3 v-host unit tests after rolo migration by @bentsku in https://github.com/localstack/localstack/pull/10099
- use request parameter resolvers by @calvernaz in https://github.com/localstack/localstack/pull/10049
- Pin cryptography package to below 42.0.0 by @silv-io in https://github.com/localstack/localstack/pull/10105
- correctly execute host and container configuration hooks in dev.run by @thrau in https://github.com/localstack/localstack/pull/10108
- Dev mode: return correctly from raw mode by @simonrw in https://github.com/localstack/localstack/pull/10111
- Register EventBridge Pipes CloudFormation resource provider by @joe4dev in https://github.com/localstack/localstack/pull/10110
New Contributors
- @danielpoonwj made their first contribution in https://github.com/localstack/localstack/pull/6826
- @maxhoheiser made their first contribution in https://github.com/localstack/localstack/pull/9897
- @nishadcptn made their first contribution in https://github.com/localstack/localstack/pull/9923
- @jimmydurkin made their first contribution in https://github.com/localstack/localstack/pull/10035
- @yamadayutaka made their first contribution in https://github.com/localstack/localstack/pull/9420
Full Changelog: https://github.com/localstack/localstack/compare/v3.0.2...v3.1.0