LocalStack Release v3.6.0

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:

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, including ToleratedFailureCount, ToleratedFailureCountPath, ToleratedFailurePercentage, and ToleratedFailurePercentagePath 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 and sync2 integration patterns through manual notification using the task’s TaskToken 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 or trace-internal now configures the Lambda RIE log level to info instead of debug.
  • Support for the TagSpecifications parameter when tags are present for the EC2 Security Group resource in CloudFormation templates.
  • Support for PutPermission and RemovePermission 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 and VerifySoftwareToken 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. The EC2_DOCKER_INIT configuration variable allows disabling docker-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

1 Like