💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline
LocalStack 3.3 is here with a host of new features and enhancements. This release includes support for running ECS tasks on Kubernetes, improved performance for DynamoDB Streams and Kinesis, and a new experimental web server implementation for high-throughput scenarios.
ECS_TASK_EXECUTOR=kubernetes
. Tasks can be added to ELB load balancer target groups. (🌟 enterprise)http://*.example.com
) is now available in the S3 service.MaxItem
, MaxItemPath
, handling of States.DataLimitExceeded
errors, and StepFunctions Activities in the Step Functions service.EC2_REMOVE_CONTAINERS
flag. (🌟 pro)DeleteThingShadow
API. (🌟 pro)BatchWriteItem
API).INSERT
or COPY
queries for PostgreSQL database in the RDS service. (🌟 pro)ECR_ENDPOINT_STRATEGY
. (🌟 pro)GATEWAY_SERVER=twisted
.Deprecated six Lambda runtimes including :
python3.7
nodejs14.x
ruby2.7
provided
go1.x
java8
LocalStack prints a deprecation warning but you can still use deprecated runtimes
__init__.py
by @silv-io in https://github.com/localstack/localstack/pull/10497
pyproject.toml
by @silv-io in https://github.com/localstack/localstack/pull/10432
localstack
by @silv-io in https://github.com/localstack/localstack/pull/10444
test_different_location_constraint
for us-east-2
by @sannya-singal in https://github.com/localstack/localstack/pull/10534
eu-west-1
by @sannya-singal in https://github.com/localstack/localstack/pull/10538
ap-southeast-1
from random regions by @sannya-singal in https://github.com/localstack/localstack/pull/10540
test_function_arns
for eu-central-1
by @sannya-singal in https://github.com/localstack/localstack/pull/10549
test_dashboard_lifecycle
for eu-central-1
by @sannya-singal in https://github.com/localstack/localstack/pull/10550
Full Changelog: https://github.com/localstack/localstack/compare/v3.2.0...v3.3.0
LocalStack 3.2.0 release includes new AWS Pinpoint and Textract providers, EventBridge Pipes, and new Resource Browsers for various AWS services.
DEBUG
flag is configured.V2_0
trigger event. (🌟 pro)DescribeInstances
or RunInstances
API. This will make it easier to set up workflows that involve network access of emulated EC2 instances. (🌟 pro)Full Changelog: https://github.com/localstack/localstack/compare/v3.1.0...v3.2.0
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.
http://169.254.169.254/
. (🌟 pro)PROVIDER_OVERRIDE_CLOUDWATCH=v2
, which includes a lot of parity fixes and is designed to be thread safe.StartMessageMoveTask
, CancelMessageMoveTask
, and ListMessageMoveTasks
API operations.ReadTimeoutError
occurrences during high load on LocalStack.save
and load
commands now show a progress status on the CLI. (🌟 pro)DNS_LOCAL_NAME_PATTERNS
is removed in favor of DNS_NAME_PATTERNS_TO_RESOLVE_UPSTREAM
to list domain names that should not be resolved to the LocalStack container, but forwarded to the upstream resolver.Full Changelog: https://github.com/localstack/localstack/compare/v3.0.2...v3.1.0
In this patch release we've fixed a major issue in the localstack
CLI. Since the last release the CLI was missing advanced commands like auth
and pod
, which should now work again.
Full Changelog: https://github.com/localstack/localstack/compare/v3.0.1...v3.0.2
Full Changelog: https://github.com/localstack/localstack/compare/v3.0.0...v3.0.1
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!
v2
provider for StepFunctions (default since 3.0.0)v3
provider for S3 (default since 3.0.0)PutItem
and up to 10x for BatchWriteItem
)MasterUsername
and MasterUserPassword
. With the feature flag DOCDB_PROXY_CONTAINER=1
a proxied container is started, and Lambda can connect to the container using LOCALSTACK_HOSTNAME
mysql
is used. It now also correctly returns only the hostname in the Endpoint
field of responses to the CreateDBCluster
operation.localstack/localstack-pro:3
to stay on the latest tagged 3.x release but avoid unintentionally upgrading to the next major version.stable
tag, which will always point towards the latest tagged release.localstack-main
(previously localstack_main
) to allow the use of the name in URLs.GATEWAY_LISTEN
and LOCALSTACK_HOST
. Check out our Discuss page for more information.SERVICES
variable, e.g. SERVICES=s3
. Any services not listed here will now be prevented from loading.legacy
/ v1
provider has been deprecated and will be removed in the next major version.v2
provider has been deprecated and will be removed in the next major version.legacy
provider has been deprecated and will be removed in the next major version.legacy
/ v1
provider has been removed.legacy
/ v1
provider has been removed.DEFAULT_REGION
, USE_SINGLE_REGION
ES_ENDPOINT_STRATEGY
, ES_MULTI_CLUSTER
, ES_CUSTOM_BACKEND
KINESIS_INITIALIZE_STREAMS
SYNCHRONOUS_*_EVENTS
EC2_AUTOSTART_DAEMON
*_PORT_EXTERNAL
LAMBDA_*
settings, see the sections below for more detailsWe have published an extensive migration guide for our networking related changes on this Discuss page
localstack_main
to localstack-main
localstack_main
is not a valid URL, so when the container name is used as a hostname, some libraries refuse to connect. With this release, we use the default container name of localstack-main
. There may be breakages with tooling that expects the new container name, but a container is running with the old container name. Please update your tooling accordingly.docker-compose
files.HOSTNAME_EXTERNAL
and LOCALSTACK_HOSTNAME
are removed in favor of LOCALSTACK_HOST
LOCALSTACK_HOST
to configure URLs returned by AWS services. Please update your usages of HOSTNAME_EXTERNAL
(default: localhost
) and LOCALSTACK_HOSTNAME
to use LOCALSTACK_HOST
(default: localhost.localstack.cloud:4566
). You can find more details in our Networking Migration Guide for LocalStack 3.0.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 |
Also, the Terraform AWS provider is also concerned by this issue, starting with 5.25.0
SERVICES
environment variableWith 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.
SERVICES
environment variable, without using EAGER_SERVICE_LOADING
, please remove the variable (it does not have any effect in your current config).SERVICES
environment variable in combination with EAGER_SERVICE_LOADING
, please make sure it contains all services you are using. Any additional services (which would have been loaded on demand in pre-v3 versions of LocalStack) will not be loaded anymore.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.
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
.
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 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
.
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.
QueueUrl
contained in responses to CreateQueue
operation.endpointAddress
contained in responses to the DescribeEndpoint
operation.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 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.
iot
, iot-analytics
, iot-data
, iot-wireless
) do not ship with their third-party packages pre-installed in the Docker image anymore.
mysql
is used.
mysql
would always create a mariadb
instance behind the scenes.mysql
instance in a new docker container. The image will be taken from the official MySQL image on Dockerhub, and the EngineVersion
defines the image-tag that will be used.RDS_MYSQL_DOCKER=0
.Endpoint
field of responses to the CreateDBCluster
operation.
RDS_CLUSTER_ENDPOINT_HOST_ONLY=0
.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.
The following CLI command groups are being removed:
infra
- Please use localstack start
instead.daemons
- This feature is being removed.The following endpoints, which have been deprecated a long time ago, will now be removed:
**/health
→ Please use /_localstack/health
instead**/cloudwatch/metrics/raw
→ Please use /_aws/cloudwatch/metrics/raw
instead/_localstack/ses
→ Please use /_aws/ses
instead/_pods
→ Please use /_localstack/pods
instead/login
→ Please use /_aws/cognito-idp/login
instead/logout
→ Please use /_aws/cognito-idp/logout
instead/signup
→ Please use /_aws/cognito-idp/signup
instead/forgotPassword
→ Please use /_aws/cognito-idp/forgotPassword
instead/oauth2/token
→ Please use /_aws/cognito-idp/oauth2/token
instead/oauth2/authorize
→ Please use /_aws/cognito-idp/oauth2/authorize
insteadPROVIDER_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.
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:
LAMBDA_EXECUTOR
LAMBDA_STAY_OPEN_MODE
LAMBDA_REMOTE_DOCKER
LAMBDA_CODE_EXTRACT_TIME
LAMBDA_CONTAINER_REGISTRY
LAMBDA_FALLBACK_URL
LAMBDA_FORWARD_URL
LAMBDA_XRAY_INIT
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.
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.
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.
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:
AUTOSTART_UTIL_CONTAINERS
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.
In addition to the changes above, the following configuration variables have been removed (which has been announced in previous releases):
ES_ENDPOINT_STRATEGY
, ES_MULTI_CLUSTER
, ES_CUSTOM_BACKEND
OPENSEARCH__ENDPOINT_STRATEGY
, OPENSEARCH_MULTI_CLUSTER
, or OPENSEARCH_CUSTOM_BACKEND
instead.KINESIS_INITIALIZE_STREAMS
MOCK_UNIMPLEMENTED
SYNCHRONOUS_*_EVENTS
EC2_AUTOSTART_DAEMON
*_PORT_EXTERNAL
.
by @bentsku in https://github.com/localstack/localstack/pull/9319
eksctl
and CDK L2 EKS construct by @simonrw in https://github.com/localstack/localstack/pull/9309
endpointArn
by @sannya-singal in https://github.com/localstack/localstack/pull/9502
DomainEndpointOptions
in opensearch/elasticsearch responses and persisted state by @GREsau in https://github.com/localstack/localstack/pull/9566
Full Changelog: https://github.com/localstack/localstack/compare/v2.3.0...v3.0.0
Full Changelog: https://github.com/localstack/localstack/compare/v2.3.1...v2.3.2
Full Changelog: https://github.com/localstack/localstack/compare/v2.3.0...v2.3.1
LocalStack v2.3. is live! We introduced a new set of services, launched a brand new implementation for core services like S3 and StepFunctions, and shipped significant improvements both in our CLI and web app experience.
PROVIDER_OVERRIDE_S3=v3
, with no external dependencies. Improved parity, better memory usage, faster, better support for bucket versioning and multipart upload.PROVIDER_OVERRIDE_STEPFUNCTIONS=v2
.Scan
and Query
operations are now supported for Global Tables in DynamoDB.localhost.localstack.cloud
now resolves to the LocalStack container within Docker networks. This is automatically set up for Lambda, ECS, and EC2, and documented for your own containers.GATEWAY_LISTEN
to configure the container bind address and ports.localstack extensions
CLI UX. (🌟 pro)stripe
, mailhog
, and many others, into your local development setup, or even into your CI pipeline with the new EXTENSION_AUTO_INSTALL
config!
These extensions are also featured in our Extensions Library on the web application, which makes the installation and management of Extensions as simple as the click of a button.
Furthermore, you can generate LocalStack Extensions badges for your own extensions, which will allow everyone visiting your repository to install your extension through our web UI.localstack/bigdata
image.docker compose
as fallback if docker-compose is not available by @dfangl in https://github.com/localstack/localstack/pull/8734
unittest
integration tests to use pytest
by @viren-nadkarni in https://github.com/localstack/localstack/pull/8749
Full Changelog: https://github.com/localstack/localstack/compare/v2.2.0...v2.3.0
LocalStack 2.2.0 is out live! With new AWS features like Glue 4.0 support, S3 Lifecycle Expiration, and Opensearch/Elasticsearch resources, as well as LocalStack CLI improvements and deprecations, this release is a significant step forward for local AWS development. Check out the full details in the release notes! 🚀
UNNEST
, and interpolation functions. (🌟 pro)BucketIntelligentTiering
, BucketAnalytics
, and BucketInventory
in the S3 provider.BucketLifecycleConfiguration
is configured and a rule matches the object.ObjectRestore:Post
and ObjectRestore:Completed
S3 Notifications events have been added.GOVERNANCE
mode in the S3 provider.AWS::RDS::DBProxy
and AWS::RDS::DBProxyTargetGroup
CloudFormation resourcesACTIVATE_NEW_POD_CLIENT
flag), leveraging LocalStack container's APIs and storing Cloud Pod’s artifacts inside the container itself. This client becomes the default provider from v3.0. (🌟 pro)localstack aws iam stream
to see the IAM policies generated for your API calls (enable ENFORCE_IAM=1
, and IAM_SOFT_MODE=1
if policies should not be enforced). (🌟 pro)EC2_AUTOSTART_DAEMON
is now deprecated and marked for removal in the next major release.AUTOSTART_UTIL_CONTAINERS
is now deprecated and marked for removal in the next major release.localstack/bigdata
image and the BIGDATA_MONO_CONTAINER=0
variable will be removed in the next major release.Full Changelog: https://github.com/localstack/localstack/compare/v2.1.0...v2.2.0