MyGit

v3.0.0

localstack/localstack

版本发布时间: 2023-11-16 22:38:39

localstack/localstack最新发布版本:v3.4.0(2024-04-25 18:24:00)

Summary

This is our third major release for LocalStack featuring both updates to our core services as well as auxiliary tooling. With our third major release for LocalStack we’re introducing improved service providers for ElastiCache, StepFunctions and S3, improved write performance in DynamoDB, increased Multi-Account and Multi-Region support and much more! A simplified networking configuration, new default container name and lots of internal refactoring to unify endpoint generation will help developers when testing their cloud applications locally.

Additionally to our core emulation in LocalStack we’ve released many additional features available in our Web Application such as IAM policy streams and a Chaos Engineering section to help you bulletproof your applications, both in terms of minimal permissions and increased robustness against failures. Our new Desktop application, LocalStack Desktop, has been released as the successor to our legacy Cockpit App and can be downloaded in the Web Application.

Several of these changes require a migration and we have done our best to make the migration for you as smooth as possible. Head to the How to migrate section and the linked resources there, to find out more. If you have trouble migrating to LocalStack 3.0 please reach out to us, we’re happy to help!

AWS Features

LocalStack Features

Provider Deprecations

Removals

How to migrate

Networking

We have published an extensive migration guide for our networking related changes on this Discuss page

New default protocol for the SQS API

AWS recently updated the default protocol for the SQS API in many of their SDKs, which started breaking with LocalStack since we didn't have JSON support yet. With 3.0.0 we now support both protocols, but if you are still on 2.x a workaround would be to downgrade or pin your used SDK/tool version.

Here is the list with all the SDK versions where the issue will start appearing:

Language SDK client repository Required SDK client version
C++ aws/aws-sdk-cpp 1.11.98
Golang 1.x aws/aws-sdk-go v1.47.7
Golang 2.x aws/aws-sdk-go-v2 v1.28.0
Java 1.x aws/aws-sdk-java 1.12.585
Java 2.x aws/aws-sdk-java-v2 2.21.19
JavaScript v2.x aws/aws-sdk-js v2.1492.0
JavaScript v3.x aws/aws-sdk-js-v3 v3.447.0
.NET aws/aws-sdk-net 3.7.681.0
PHP aws/aws-sdk-php 3.285.2
Python-boto3 boto/boto3 1.28.82
Python-botocore boto/botocore 1.31.82
awscli AWS CLI 1.29.82
Ruby aws/aws-sdk-ruby 1.67.0

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-json-faqs.html#json-protocol-supported-languages

Also, the Terraform AWS provider is also concerned by this issue, starting with 5.25.0

Strict Service Loading - SERVICES environment variable

With 3.0, we are introducing strict service loading based on the SERVICES environment variable.

In older versions of LocalStack, this variable defined the set of services which should be loaded by default. New versions of LocalStack load the services on-demand dynamically on their first invocation. With 3.0, the SERVICES variable will be used as a strict list of services that should be loaded. The loading of all other services will be prevented.

Cloud Pods

In this 3.0 release, we are removing Community Cloud Pods. Moving forward, Cloud Pods will only be accessible to Pro/Team users. The handling of Cloud Pods in the local file system is now handled via the localstack state import/export commands.

S3

With 2.3.0 we introduced a new, opt-in, LocalStack-native, faster S3 provider with no external dependencies, improved parity, better memory usage, and better support for bucket versioning and multipart upload. With 3.0, we are promoting this provider to become the default!

S3_DIR is not supported anymore with the new provider. However, S3 persistence has been greatly improved, and you should be able to seed your data with Initialization hooks.

Besides that, users should be mostly unaffected, but may experience some breakage depending on previous behavior that was not aligned with AWS. Should you run into problems, you can, for now, activate the old provider with PROVIDER_OVERRIDE_S3=legacy_v2.

StepFunctions

We’re introducing a new native implementation of AWS StepFunctions. It comes with a number of additional features and improvements over the previous version. The update offers extended support for timeouts and heartbeats, state machine versioning, Map states, EventBridge integration, as well as support for the latest set of Intrinsic Functions. Enhanced API parity with AWS StepFunctions is also a key improvement delivered in this latest update. We’ll continue actively improving our new StepFunctions implementation. In the next months you can look forward to additional exciting features such as express workflows, more service integrations, express workflows, activity support and more. Adopting this new native implementation now allows us to add features and resolve issues faster than before.

In case you run into issues, you can, for now, use the legacy provider using PROVIDER_OVERRIDE_STEPFUNCTIONS=legacy. Please note that this fallback will be removed with the next major version, so please start migrating your workloads to the new default provider over the next months.

See our Announcement post on Discuss for more details.

ElastiCache

ElastiCache in LocalStack has been completely re-written. The new ElastiCache implementation provides much better parity with AWS and resolves some issues around Redis cluster management in the previous provider. In case you run into issues, you can, for now, use the legacy provider using PROVIDER_OVERRIDE_ELASTICACHE=legacy.

Multi-Region and Multi-Account Support in SQS and IoT endpoints

In order to improve the multi-account and multi-region support for SQS and IoT, the endpoints generated for certain resources of these services (like SQS queues, or IoT endpoints) now contain the account ID and the region.

When using these services, please do not make any assumptions on the URLs generated by LocalStack, but use the URLs returned in the responses.

Performance improvements for DynamoDB write operations

We’ve massively improved write performance for DynamoDB in LocalStack, with our benchmarks showing a 60% faster PutItem operation. Using higher batch sizes will profit even more from this change, with BatchWriteItem now being 6.2x faster for 10 items and 9.9x faster for 25 items. That means if you’re populating a large DynamoDB table, you can now take advantage of much faster insertion times! For the best performance please set DYNAMODB_IN_MEMORY=1, but even without this, you should still notice a significant performance improvement.

Please note that setting DYNAMODB_IN_MEMORY will disable persistence support for DynamoDB.

Multi-Account and Multi-Region support

Multi-account and multi-region support continues to be improved in LocalStack. There is broader support for IAM enforcement for inter-service integrations. Various services now have improved multi-accounts awareness, including the new StepFunctions provider, SQS, CloudWatch, EventBridge and more. We also have revamped how ARNs are constructed internally which will result in improved ARN accuracy.

Other notable changes

Removals of Deprecations

The following section lists removals of configurations that have already been deprecated in previous versions, where the usage with current images will already log warnings on the usage of outdated configurations. If you have upgraded to the latest changes in previous releases, these changes will not affect you.

Legacy CLI commands

The following CLI command groups are being removed:

Legacy Internal Endpoints

The following endpoints, which have been deprecated a long time ago, will now be removed:

Legacy S3 Provider - PROVIDER_OVERRIDE_S3=legacy

The legacy S3 provider is being removed. This only affects you if you are setting PROVIDER_OVERRIDE_S3=legacy. Please migrate to the new S3 provider by removing this setting.

Legacy Lambda Provider - PROVIDER_OVERRIDE_LAMBDA=legacy

The legacy Lambda provider is being removed. This only affects you if you are setting PROVIDER_OVERRIDE_LAMBDA=legacy. Please migrate to the new Lambda provider by removing this setting. You can find more details in our Lambda migration guide.

With the removal of the legacy lambda provider, the following deprecated environment variables will be removed:

Legacy KMS Provider - KMS_PROVIDER=local-kms

The legacy "local-kms" provider is being removed. This only affects you if you are setting KMS_PROVIDER=local-kms. Please migrate to the new KMS provider by removing this setting.

Legacy port and host config - EDGE_PORT, EDGE_PORT_HTTP, EDGE_BIND_HOST

We have removed the ability to configure what address and port LocalStack listens on via the variables EDGE_PORT, EDGE_PORT_HTTP, and EDGE_BIND_HOST. Please migrate to use GATEWAY_LISTEN instead. You can find more details on the migration path in the release notes of v2.

Legacy region config - DEFAULT_REGION, USE_SINGLE_REGION

We have removed DEFAULT_REGION and USE_SINGLE_REGION, which have been deprecated since 0.12.7. LocalStack is now multi-account and multi-region-aware, and these settings are not used anymore.

Legacy BigData Image Support - BIGDATA_MONO_CONTAINER

The support for the usage of the localstack/bigdata image (with BIGDATA_MONO_CONTAINER=0) is being removed. Please just remove this configuration variable to switch to the (default) “mono container mode”.

With the removal of the legacy bigdata image support, the following deprecated environment variables will be removed:

Legacy CloudPods client - ACTIVATE_NEW_POD_CLIENT

The support for the legacy CloudPods client (with ACTIVATE_NEW_POD_CLIENT=0) is being removed. Please just remove this configuration variable to switch to the new (default) cloudpods client.

Others

In addition to the changes above, the following configuration variables have been removed (which has been announced in previous releases):

What's Changed

New Contributors

Full Changelog: https://github.com/localstack/localstack/compare/v2.3.0...v3.0.0

相关地址:原始地址 下载(tar) 下载(zip)

查看:2023-11-16发行的版本