LocalStack 3.6 introduces support for S3 in Database Migration Service (DMS), EventBridge v2 Archive and Replay APIs, ECS FireLens logging configurations, Chaos API, and Ephemeral Instances. Other enhancements include Cloud Pods encryption, enhanced Step Functions parsing, Lambda tagging for deterministic URLs, and AppSync schema definition.
You can get started with LocalStack 3.6 using the localstack
CLI:
localstack update all
Community Release
The release features new enhancements and additions to support our community-edition users.
CloudWatch v2 provider is now the default
The CloudWatch v2 provider, released in LocalStack 3.1, is now the default provider. The new provider offers:
- Various enhancements have been made to attain greater feature parity with AWS.
- Ensures thread safety, facilitating smooth concurrent operations.
- Significant improvement in the integrity and durability of data.
- More efficient data retrieval.
You can revert to the old provider by setting PROVIDER_OVERRIDE_CLOUDWATCH=v1
in your LocalStack configuration.
Archive & Replay in EventBridge
EventBridge allows you to create an archive of events so that you can easily replay them at a later time. It helps you replay events to recover from errors or to validate new functionality in your workflow. The EventBridge v2 provider now supports archive & replay events. The following APIs are supported:
CreateArchive
DeleteArchive
DescribeArchive
UpdateArchive
ListArchives
CancelReplay
StartReplay
ListReplays
DescribeReplay
You can use the new functionality by setting PROVIDER_OVERRIDE_EVENTS=v2
in your LocalStack configuration.
New enhancements in the Step Functions provider
LocalStack now features several new enhancements in the Step Functions provider. They include:
- Enhanced parsing support for
ToleratedFailure*
declarations in distributed Map states for Step Functions, includingToleratedFailureCount
,ToleratedFailureCountPath
,ToleratedFailurePercentage
, andToleratedFailurePercentagePath
in the ASL lexer and parser. - Support for Batch Optimised Service Integration in Step Functions provider.
- Support for pagination for ListStateMachines, ListStateMachineVersions, and ListExecutions API operations.
- Support for Express Workflows in the Step Functions provider.
- Support for manually interrupting
sync
andsync2
integration patterns through manual notification using the task’sTaskToken
in the Step Functions provider. - Support for
Label
field for distributed map state in the Step Functions provider.
Applying tag on Lambda functions
You can now apply a tag to a Lambda function to generate a deterministic, user-specified function URL when using the CreateFunctionUrlConfig
command.
To create a predictable URL for the function, you can assign a custom ID by specifying the _custom_id_
tag on the function itself.
$ awslocal lambda create-function \
--function-name localstack-lambda-url-example \
--runtime nodejs18.x \
--zip-file fileb://function.zip \
--handler index.handler \
--role arn:aws:iam::000000000000:role/lambda-role \
--tags '{"_custom_id_":"my-custom-subdomain"}'
$ awslocal lambda create-function-url-config \
--function-name localstack-lambda-url-example \
--auth-type NONE
{
"FunctionUrl": "http://my-custom-subdomain.lambda-url.<region>...",
....
}
You must specify the _custom_id_
tag before using the CreateFunctionUrlConfig
command. After the URL configuration is set up, any modifications to the tag will not affect it. At present, custom IDs can be assigned only to the $LATEST
version of the function. LocalStack does not yet support custom IDs for function version aliases.
Runtime validation for Lambda functions
LocalStack now supports the LAMBDA_RUNTIME_VALIDATION
configuration variable which can be configured to 1
to enforce strict AWS parity by raising an exception when using a deprecated Lambda runtime for the CreateFunction API operation. Deprecated Lambda runtimes (e.g., nodejs14.x
) can be used with disabled validation (current default).
Recursive discovery of Init Hooks
You can now use subdirectories to organize your Init Hook scripts. The scripts are executed using a preorder traversal method, where each level of the directory hierarchy is processed in alphabetical order. This ensures a consistent and predictable execution sequence. For example, consider the following directory structure:
ready.d/myscript.sh
ready.d/a/script_0.sh
ready.d/a/aa/script_0.sh
ready.d/a/aa/script_2.sh
ready.d/b/script_0.sh
Other changes and enhancements
- Support for the
--compose-env-file
flag in the*_DOCKER_FLAGS
configuration to enable compatibility with full Docker Compose-style environment files, including use of placeholders like${}
and automatic quote replacement. - Support for the
CFN_STRING_REPLACEMENT_DENY_LIST
configuration variable to specify a comma-separated list of AWS URLs that should not be redirected to LocalStack. - LocalStack has reduced the verbosity of Lambda log levels. Setting
LS_LOG=trace
ortrace-internal
now configures the Lambda RIE log level toinfo
instead ofdebug
. - Support for the
TagSpecifications
parameter when tags are present for the EC2 Security Group resource in CloudFormation templates. - Support for
PutPermission
andRemovePermission
in the EventBridge v2 provider to control access for writing events to a specific event bus.
Pro Release
The Pro release features a lot of new enhancements and additions to support our licensed users.
[Enterprise] New Chaos API to mimic outages
LocalStack Chaos API allows you to mimic outages across any AWS region or service. You can use LocalStack Chaos API to cause API failures for the following or any combination thereof:
- Service
- Region
- Operation
You can customise the HTTP error code and message that LocalStack responds with. If required, you can make the failures occur probabilistically. Furthermore, the Chaos API can also be configured to add a network latency for all calls. Refer to our tutorial to learn more.
[Enterprise] S3 support in Database Migration Service (DMS)
LocalStack now supports S3 as a source in the Database Migration Service (DMS) provider. You can view our sample application to learn more about this use case.
[Enterprise] Support for ECS FireLens
LocalStack’s ECS emulation supports custom log routing via FireLens. FireLens allows the ECS service to manage the configuration of the logging driver of application containers, and to create the proper configuration for the fluentbit
/fluentd
logging layer.
However, the current implementation of FireLens does not support custom configurations via S3 buckets. Additionally, you cannot use ECS on Kubernetes with FireLens.
[Enterprise] Support for Cloud Pods encryption
LocalStack now offers end-to-end encryption for Cloud Pods. To activate this feature, start LocalStack with the POD_ENCRYPTION
environment variable set to 1. Refer to our docs to learn more.
Other changes and enhancements
- LocalStack now supports the latest Neptune engine (1.3.2.1 & 1.3.2.0) supported by AWS.
- LocalStack now syncs new and updated objects in the S3 bucket to the Airflow container every 30 seconds. This polling interval can be adjusted using the
MWAA_S3_POLL_INTERVAL
configuration variable. - Support for
AssociateSoftwareToken
andVerifySoftwareToken
in the Cognito provider. - Support in AppSync GraphQL for defining schema elements after queries.
- Support for the
PostConfirmation_ConfirmSignUp
trigger for the SAML flow. - LocalStack now starts all EC2 container instances with
docker-init
by default, which prevents the use of other init systems like systemd. TheEC2_DOCKER_INIT
configuration variable allows disablingdocker-init
.
SaaS Release
The LocalStack Web Application features new components and improvements to manage your LocalStack subscription and local AWS resources via our intuitive user-interface.
Preview release of LocalStack Ephemeral Instance
LocalStack Ephemeral Instances are now in preview allowing you to run a LocalStack instance in the cloud. You can interact with these instances via the LocalStack Web Application, or by configuring your integrations and developer tools with the endpoint URL of the ephemeral instance.
You can additionally use Application Previews to generate a preview environment from GitHub Pull Requests (PRs). It allows temporary deployment of AWS-powered applications on a LocalStack Ephemeral Instance to preview changes.
You can use our LocalStack/setup-localstack
action to create an Application Preview:
uses: LocalStack/setup-localstack@v0.2.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
state-backend: ephemeral
state-action: start
# Adding this option prevents Ephemeral Instance to be stopped after the `preview-cmd` run
skip-ephemeral-stop: 'true'
# Optional script/command to run
preview-cmd: deploy.sh
env:
LOCALSTACK_API_KEY: ${{ secrets.LOCALSTACK_API_KEY }}
Refer to our Ephemeral Instances documentation and Application Preview documentation to learn more.
Deprecations
- LocalStack Outages extension has now been deprecated in favor of the Chaos API.
- Fault Injection Simulator (FIS) emulation has been deprecated in the Starter and Teams tier and is now offered as part of our comprehensive Chaos Engineering feature in the Enterprise tier. The Starter and Teams tier offers a CRUD interface for mocking FIS.