Show / Hide Table of Contents

LambdaSharp "Hicetas" Release (v0.8.3.4) - 2021-07-15

Hicetas was a Greek philosopher of the Pythagorean School. He was born in Syracuse. Like his fellow Pythagorean Ecphantus and the Academic Heraclides Ponticus, he believed that the daily movement of permanent stars was caused by the rotation of the Earth around its axis. When Copernicus referred to Nicetus Syracusanus (Nicetus of Syracuse) in De revolutionibus orbium coelestium as having been cited by Cicero as an ancient who also argued that the Earth moved, it is believed that he was actually referring to Hicetas. (Wikipedia)

What's New

This release introduces some key new capabilities for Lambda functions and the LambdaSharp.Core module. The ALambdaFunction base class has new methods for sending events, capturing metrics, and logging debug statements. In addition, the LambdaSharp.Core module now uses Amazon Kinesis Firehose for ingesting CloudWatch Log streams. Kinesis Firehose is more cost effective, scales automatically, and also provides built-in integration with S3 for retaining ingested logs. Finally, during the ingestion process, the logs are converted into queryable JSON documents.

Upgrading from v0.7 to v0.8

  1. Ensure all modules are deployed with v0.6.1 or later
  2. Upgrade LambdaSharp CLI to v0.8
    1. dotnet tool update -g LambdaSharp.Tool
  3. Upgrade LambdaSharp Deployment Tier (replace Sandbox with the name of the deployment tier to upgrade)
    1. lash init --allow-upgrade --tier Sandbox

BREAKING CHANGES

LambdaSharp Core Services

LambdaSharp.Core

Some configuration parameters changed with the switch to Amazon Kinesis Firehose for CloudWatch logs ingestion.

  • The LoggingStreamRetentionPeriodHours and LoggingStreamShardCount are no longer needed and have been removed.
  • The LoggingStream has been replaced by LoggingFirehoseStream.
  • The LoggingBucketSuccessPrefix and LoggingBucketFailurePrefix have been added.

See the LambdaSharp.Core module documentation for more details.

LambdaSharp SDK

IMPORTANT: In preparation to switching LambdaSharp assembly to .NET Core 3.1 and using System.Text.Json as JSON serializer in a future release, it is highly advised to remove all references to Amazon.Lambda.Serialization.Json and Newtonsoft.Json assemblies from all .csproj files. These package are instead inherited via the LambdaSharp assembly. These changes ensure that once LambdaSharp assembly switches its serialization implementation, dependent projects will cease to compile, making it easier to transition to the new JSON serializer. Otherwise, these projects would compile successfully, but fail at runtime, as it is not possible to mix Newtonsoft.Json and System.Text.Json serializations.

Look for the following package references in your .csproj files and remove them.

<PackageReference Include="Amazon.Lambda.Core" Version="1.1.0" />
<PackageReference Include="Amazon.Lambda.Serialization.Json" Version="1.5.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />

In addition, Lambda functions no longer need to declare the default serializer with the [assembly: LambdaSerializer(...)] attribute, unless a custom serializer is required. Instead, the serializer is defined by the base class (ALambdaFunction). This change was made to ease the transition to the new System.Text.Json serializer in a future release.

Finally, the SerializeJson(...) and DeserializeJson<T>(...) have been marked as obsolete. Instead, use LambdaSerializer.Serialize(...) and LambdaSerialize.Deserialize<T>(...), respectively.

New LambdaSharp Module Syntax

CloudWatch EventBridge Source

Lambda functions can now subscribe to a CloudWatch event bus. The EventBus notation is straightforward. Multiple event bus subscriptions can be active at the same time.

Sources:
  - EventBus: default
    Pattern:
      source:
        - Sample.Event
      detail-type:
        - MyEvent
      resources:
        - !Sub "lambdasharp:tier:${Deployment::Tier}"

Package Build Command

The Package declaration now supports and optional Build attribute, which specifies a command to run before the zip package is created. This enables creating packages from files that are generated by another project. For example, the output folder when publishing a Blazor WebAssembly application.

- Package: MyBlazorPackage
  Build: dotnet publish -c Release MyBlazorApp
  Files: MyBlazorApp/bin/Release/netstandard2.1/publish/wwwroot/

New Module Variables

New module variables have been introduced that relate to the deployment. These include Deployment::BucketName, Deployment::Tier, and Deployment::TierLowercase. For more details, see the Module Global Variables documentation.

New LambdaSharp CLI Features

The CLI remains mostly unchanged from the previous release.

Misc.

  • Updated embedded CloudFormation spec to 14.3.0.
  • Enhanced API Gateway V2 WebSocket logging to show error messages.
  • Enabled detailed CloudWatch metrics for API Gateway deployments.
  • Enhanced lash init to highlight deployment tier name during stack updates.
  • Enhanced lash init for LambdaSharp contributors to automatically force build and force publish.
  • Enhanced lash nuke to only empty the deployment and logging buckets if they were created by the LambdaSharp.Core module.
  • Added --no-ansi option to util delete-orphan-logs, util download-cloudformation-spec, and util create-invoke-methods-schema.
  • Added util validate-assembly command.

Fixes

  • Fixed an issue were recreating a LambdaSharp.Core deployment from scratch would not update existing deployed modules with the new deployment bucket name.
  • Let CloudFormation determine the name for AWS::ApiGateway::Model resources.
  • Fixed an issue where the --aws-region command option didn't always work as expected.

New LambdaSharp SDK Features

CloudWatch Metrics

Several Lambda function base classes have been enhanced with custom CloudWatch metrics to augment existing AWS metrics. In addition, the ALambdaFunction base class has new LogMetric(...) methods to emit custom CloudWatch metrics using the embedded metric format.

The MetricSample module shows how to use the new LogMetric(...) methods to emit custom CloudWatch metrics using the embedded metric format.

CloudWatch Events

The ALambdaFunction base class has a new LogEvent(...) method to emit CloudWatch Events to the default event bus on Amazon EventBridge.

The EventSample module shows how to use the new LogEvent(...) method to emit CloudWatch Events to the default event bus on Amazon EventBridge method for sending CloudWatch Events.

Debug Logging

The ALambdaFunction has a new LogDebug(string format, params object[] arguments) method to make debug logging easier. In addition, when debug logging is enabled, the base class logs the request and response streams to CloudWatch logs. See the documentation on Lambda Debugging for more details.

New LambdaSharp Core Services Features

The LambdaSharp.Core module now uses Amazon Kinesis Firehose for ingesting CloudWatch Log streams. During the ingestion process, the logs are converted into queryable JSON documents.

In addition, LambdaSharp.Core now emits operational CloudWatch events to the default event bus, which can be used to observe and track deployed modules.

Finally, the LambdaSharp.Core module emits its own performance metrics to provide quick insight into its operations.

Misc.

Part of this release, LambdaSharp.Core functions were ported to .NET Core 3.1 with null-aware code, and the modules were published with ReadyToRun for shorter cold-start times.

Fixes

  • Fixed an issue with processing the Lambda report lines in the CloudWatch logs.

Releases

(v0.8.3.5) - TBD

Features

  • Syntax

    • Added Module::RestApi::LoggingLevel pragma override to set the logging level for the REST API.
  • SDK

    • Updated package referenecs to latest compatible versions.
      • NOTE: System.Text.Json has been updated to 6.0.2, which has obsoleted the IgnoreNullValues property in favor of DefaultIgnoreCondition in the JsonSerializerOptions class.

(v0.8.3.4) - 2021-07-15

Fixes

  • SDK
    • Fixed an issue in LambdaSharp.DynamoDB.Native with TransactWriteItems operation.

(v0.8.3.3) - 2021-07-14

BREAKING CHANGES

  • CLI
    • The module WebSocket resources now use the API Gateway v2 auto-deploy mechanism instead of generating a new deployment each time. This technique is more reliable and requires less code generation.
    • The Module::WebSocket::Deployment global variable no longer exists since the WebSocket deployment is now automatic.

Features

  • CLI

    • Added ability to override Module::WebSocket to allow a WebSocket to be defined in another module.
    • Enhanced the default WebSocket logging settings to include more diagnostics information.
  • Syntax

    • Added Origin to module declaration syntax, which sets the name of the S3 origin bucket. The --module-origin option can be used to override this value. When omitted, the module origin defaults to the S3 bucket the module is being published to.
  • SDK

    • Added LambdaSharp.DynamoDB.Native assembly to simplify working with DynamoDB tables.
  • Samples

    • Added Samples/DynamoDBNativeSample module showing how to use the new LambdaSharp.DynamoDB.Native assembly.

(v0.8.3.2) - 2021-06-17

Fixes

  • CLI

    • Fixed an issue where init would not respect the --version argument for selecting the LambdaSharp.Core module to deploy.
  • Modules

    • LambdaSharp.Core
      • Fixed a regression in parsing project information from the Rollbar API.

(v0.8.3.1) - 2021-05-28

Features

  • CLI

    • Simplified the mechanism for dynamically allowing operations on KMS keys passed in via Secrets parameter.
  • Samples

    • Added Samples/SecretSample module showing how to use KMS encrypted values with Secret Manager and the access it from a Lambda function.

Fixes

  • CLI
    • Fixed a regression in the parameters file processing.
    • Fixed a circular dependency when the DecryptSecretFunction was used to initialize a resource that was then scoped to a Lambda function.

(v0.8.3.0) - 2021-05-18

Features

  • All

    • Updated Amazon.Lambda.* assembly references to v2.0.*
    • Updated AWSSDK.* assembly references to v3.7.*
  • CLI

    • Improved error/warning message to distinguish outdated vs. unexpected references to the LambdaSharp assembly.
  • Modules

    • LambdaSharp.Twitter.Query
      • Updated TweetinviAPI assembly references to v5.0.4

Fixes

  • Modules
    • LambdaSharp.App.EventBus
      • Corrected Lambda memory to use 1769 MB.
    • LambdaSharp.Core
      • Corrected Lambda memory to use 1769 MB.

(v0.8.2.4) - 2021-04-30

Features

  • CLI

    • Added DependsOn property for Function declarations.
  • Modules

    • LambdaSharp.S3.Subscriber
      • Added ResourceHandlerRole as export value from module to allow dependent stacks to import it and add policies to it when needed.

Fixes

  • CLI

    • Fixed a regression that caused the Beep sound not to be played anymore after a long operation.
  • SDK

    • Fixed a possible NullReferenceException when module info is not set for a Lambda function.
  • Modules

    • LambdaSharp.S3.Subscriber
      • Fixed an issue where buckets in another region or inaccessible would cause an internal error rather than respond with an informative message.
  • Samples

    • Enabled debug output for Sample.Debug module.

(v0.8.2.3) - 2021-04-01

Features

  • CLI

    • Added --from-bucket as alias for --from-origin to make the intent clearer (--from-origin is still supported for backwards compatibility).
  • Syntax

    • Added stack as a scope keyword to make an item available from a nested stack, but not publicly available for import.
    • Added Module::RestApi::CorsOrigin as a referenceable variable to the module environment.

Fixes

  • CLI

    • Fixed an issue where cached module versions were not refreshed when importing a new module to a bucket.
    • Fixed an issue where --existing-s3-bucket-name was not respected when --quick-start was used.
    • Fixed an issue where performance statistics were no longer shown for externally invoked tools.
    • Fixed an issue where the $default WebSocket route could not respond with a custom payload.
  • Modules

    • LambdaSharp.App.Api
      • Use stack scope outputs variables instead of public scope to prevent them being accidentally imported.
    • LambdaSharp.App.Bucket
      • Use stack scope outputs variables instead of public scope to prevent them being accidentally imported.
    • LambdaSharp.App.EventBus
      • Enforce stricter adherence to protocol with client.
      • Respond to unknown actions with an error instead of silently ignoring them.
      • Use stack scope outputs variables instead of public scope to prevent them being accidentally imported.
      • Added WebSocketApiId as output value so that the WebSocket API can be referenced from the parent stack.

(v0.8.2.2) - 2021-03-17

BREAKING CHANGES

  • SDK
    • Renamed LambdaSharp.CloudWatch assembly to LambdaSharp.EventBridge to align with new AWS branding for CloudWatch Events.

Features

  • CLI
    • Added automatic, daily refresh of CloudFormation specification to surface latest capabilities. Use --force-refresh option to check for new CloudFormation specification more frequently.
    • Added caching of AWS profile information used for building, publishing, and deploying modules. Use --force-refresh option to bypass cache.
    • Removed util download-cloudformation-spec command since it is no longer needed to CloudFormation specification.
    • Changed behavior for deploy to allow importing dependencies when no build policy is provided.

(v0.8.2.1) - 2021-02-17

Fixes

  • CLI
    • Fixed an issue with ReadyToRun Lambda function compilation.

(v0.8.2.0) - 2021-02-15

BREAKING CHANGES

  • SDK
    • LambdaSharp base classes for Lambda functions now require the JSON serializer to be provided. The JSON serializer must derive from LambdaSharp.Serialization.ILambdaJsonSerializer. The preferred JSON serializer is LambdaSystemTextJsonSerializer.
    • Renamed LambdaJsonSerializer to LambdaNewtonsoftJsonSerializer to make it clear this JSON serializer is based on Newtonsoft.Json.
    • Moved LambdaNewtonsoftJsonSerializer to its own NuGet package LambdaSharp.Serialization.NewtonsoftJson to remove dependency on the Newtonsoft.Json NuGet package for LambdaSharp assembly.
    • Changed ALambdaFunction.LambdaSerializer property type to ILambdaJsonSerializer.
    • Changed target framework for LambdaSharp project to netcoreapp3.1 which is required by the Amazon.Lambda.Serialization.SystemTextJson assembly.
    • Changed target framework for LambdaSharp.Slack project to netcoreapp3.1 which is required by the LambdaSharp assembly.
    • Updated AWSSDK.Core dependencies to version 3.5
    • Changed method signatures in ALambdaCustomResourceFunction:
      • Added System.Threading.CancellationToken parameter to ProcessCreateResourceAsync, ProcessUpdateResourceAsync, and ProcessDeleteResourceAsync.
    • Changed method signatures in ALambdaFinalizerFunction:
      • Renamed CreateDeployment to CreateDeploymentAsync, CreateDeployment to CreateDeploymentAsync, and DeleteDeployment to DeleteDeploymentAsync.
      • Added System.Threading.CancellationToken parameter to CreateDeploymentAsync, CreateDeploymentAsync, and DeleteDeploymentAsync.
    • Moved the LambdaSharp namespaces to specialized assemblies:
      • LambdaSharp.ApiGateway
      • LambdaSharp.CloudWatch
      • LambdaSharp.CustomResource
      • LambdaSharp.Finalizer
      • LambdaSharp.Schedule
      • LambdaSharp.SimpleNotificationService
      • LambdaSharp.SimpleQueueService
NuGet Package Migration Guide
Base Class NuGet Package
ALambdaApiGatewayFunction<TRequest,TResponse> LambdaSharp.ApiGateway
ALambdaCustomResourceFunction<TProperties,TAttributes> LambdaSharp.CustomResource
ALambdaEventFunction LambdaSharp.CloudWatch
ALambdaFinalizerFunction LambdaSharp.Finalizer
ALambdaFunction LambdaSharp
ALambdaFunction<TRequest,TResponse> LambdaSharp
ALambdaQueueFunction LambdaSharp.SimpleQueueService
ALambdaScheduleFunction LambdaSharp.Schedule
ALambdaTopicFunction LambdaSharp.SimpleNotificationService

Features

  • CLI

    • Added support for self-contained .NET 5 Lambda functions.
    • Updated Blazor WebAssembly app template to target .NET 5.
    • Removed dependency on Amazon.Lambda.Tools. Amazon.Lambda.Tools is no longer requires to build, publish, or deploy LambdaSharp modules.
    • Updated CloudFormation to v22.0.0.
    • Allowed resource types to have an empty or omitted Attributes section.
  • SDK

    • Added new ALambdaEventFunction<TMessage> base class for handling CloudWatch events.
    • Optimized cold-start times for by deserializing Amazon Lambda data structures by using LambdaSystemTextJsonSerializer, which is built on System.Text.Json. This change avoids jitting the heavy Newtonsoft.Json assembly unless required by the end-user code.
    • Added constructor to customize serializer settings for LambdaSystemTextJsonSerializer.
    • Added constructor to customize serializer settings for LambdaNewtonsoftJsonSerializer.
    • Added null-aware annotations to LambdaSharp assembly.
    • Added MD5 algorithm implementation from Mono in LambdaSharp.Logging since it is not supported in .NET 5 WebAssembly currently.
    • Added logic in ALambdaCustomResourceFunction and ALambdaFinalizerFunction to trigger the System.Threading.CancellationToken 500ms before the function times out.
    • Added TerminateLambdaInstance() method, which forces the Lambda instance to terminate and perform a cold start on next invocation. This method should only be used when the processing environment has become corrupted beyond repair.
  • Syntax

    • Added Module::RestApi::CorsOrigin pragma override to specify an expression as the CORS Origin header value. The CORS Origin header value is automatically added to all REST API responses.
    • Added Stack as the declaration keyword for nested stacks. Previously the keyword was Nested, which remains supported for backwards compatibility.
  • Samples

    • Added Samples/JsonSerializerSample module showing how to specify and customize the JSON serializer for a Lambda function.
    • Added Samples/LambdaSelfContainedSample module showing how to build a Lambda function using .NET 5.

(v0.8.1.6) - 2020-12-28

Features

  • CLI
    • Updated embedded CloudFormation spec to 22.0.0.

Fixes

  • Modules
    • Fixed a critical issue in LambdaSharp.Core where the CloudWatch Logs analyzer would get overwhelmed at times. This would cause the same batch of log events to be processed repeatedly causing a storm of CloudWatch event notifications until the batch finally failed. Failed batches can be found in the logging bucket under the logging-failed/ prefix.

(v0.8.1.5) - 2020-12-26

Features

  • CLI
    • Enhanced lash new command to prompt for type of file to create (app, function, or resource). Defaults to module when no Module.yml file is present.
    • Enhanced lash util list-modules command to show a message when pre-release modules were omitted from the list.

Fixes

  • CLI
    • Fixed a NRE in lash util list-modules when the bucket name was passed in as an option instead of an argument.

(v0.8.1.4) - 2020-11-20

Fixes

  • CLI
    • Fixed an issue where the nuke command did not delete all stacks as expected.
    • Fixed an issue where interactive commands would cause an audible alert for short running operations.

(v0.8.1.3) - 2020-10-21

Fixes

  • SDK
    • Fixes a broken package reference in the LambdaSharp.App package.

(v0.8.1.2) - 2020-10-20

BREAKING CHANGES

  • CLI
    • Removed support for Scala-based Lambda functions.

Features

  • CLI

    • Enhanced the EventBus pattern parsing to insert a default LambdaSharp tier constraint for resources when not specified. Use resources: null to omit the default constraint.
    • Enhanced the EventBus pattern parsing to convert Source to source, DetailType to detail-type, Detail to detail, and so on for better consistency with the SDK. Note the renaming is only applied to top-level properties.
    • Added audible cue when lash command finishes after running for more than 10s. The audible cue can be suppressed with --no-beep option.
    • Enhanced lash init --quick-start to work with the --core-services enabled option to allow creating a deployment tier without interactive prompts.
    • Added support for recognizing APIGatewayHttpApiV2ProxyRequest request parameter in API Gateway proxy functions.
  • Modules

    • LambdaSharp.App.Api
      • Added EventSource parameter to override the CloudWatch event source specified by the app request.
      • Enhanced CloudWatch event integration by explicitly populating the Resources section of the app request.
    • LambdaSharp.App.EventBus
      • Added module for subscribing apps to CloudWatch events.
  • SDK

    • Enhanced emitted CloudWatch events to include app identifier in resources section.
    • Added ForceLambdaColdStart() method in ALambdaFunction base class. This method forces the Lambda runtime to error out and restart the app domain, forcing the global environment to be reinitialized.
    • Added LogEvent<T>(T, IEnumerable<string>) that omits the source name by default to ${Module::FullName}::${AppOrFunctionName}
    • Added LambdaSharpEventBusClient for Blazor apps to connect to the LambdaSharp App EventBus.

Fixes

  • CLI

    • Fixed an issue with --build-policy option affecting the publish and deploy phases.
    • Fixed an issue with detecting APIGatewayHttpApiV2ProxyResponse as an API Gateway proxy request data type.
    • Fixed an issue with environment variables set in the Lambda function properties section being overwritten by the tool.
    • Fixed an issue with built-in WebSocket routes being reported as asynchronous API Gateway invocations when they are not.
  • SDK

    • Fixed an issue where Logging:LogLevel was not properly recognized for Blazor apps in appsettings.json file.

(v0.8.1.1) - 2020-08-31

Features

  • CLI
    • Added util list-modules command to list published modules and versions.
    • Added --build-policy option for build, publish, and deploy commands to control which module dependencies are allowed during the build phase.

(v0.8.1.0) - 2020-08-28

This release introduce support for Blazor WebAssembly apps at the syntax and SDK level. Similar to Lambda functions, Blazor apps have access to the ILambdaSharpLogger to log messages, metrics, and events to CloudWatch. This capability is accomplished by generating a REST API that enables the front-end Blazor app to securely integrate with CloudWatch Logs, Metrics, and EventBridge. By default, Blazor apps are served from an S3 bucket configured as a website. Optionally, the S3 bucket can be configured for integration with CloudFront.

BREAKING CHANGES

  • SDK
    • Moved logging related functionality from LambdaSharp assembly to LambdaSharp.Logging.
    • Renamed ILambdaLogLevelLogger to ILambdaSharpLogger.
    • Renamed ALambdaRecord to ALambdaLogRecord.
    • Base class is now based on .NET Standard 2.0 for broader compatibility.

Features

  • CLI

    • Added new app command to add a Blazor WebAssembly app to a module.
    • Added util extract-assembly-metadata command to extract version metadata from a Blazor app assembly.
    • Enhanced util create-invoke-methods-schema to support System.Text.Json attributes on [FromBody] and [FromUri] parameters.
    • Updated embedded CloudFormation spec to 18.0.0.
  • Modules

    • Added LambdaSharp::Registration::App resource type to register deployed apps.
    • Added LambdaSharp.App.Site module for hosting app packages.
    • Added Lambdasharp.App.Api module for creating a CloudWatch Logs and Events proxy API.
    • Enhanced RollbarProjectPattern parameter in LambdaSharp.Core to allow {ModuleId} and {ModuleIdNoTierPrefix} as pattern variables for Rollbar project names.
    • Added support in LambdaSharp.Core for categorizing Lambda exit errors with Runtime.ExitError as fatal.
  • SDK

    • Enhanced error report platform description to include .NET Core framework description (e.g. "AWS Lambda [.NET Core 3.1.1] (Unix 4.14.177.104)")
    • Added ALambdaComponent class for use with Blazor WebAssembly components.

Fixes

  • CLI
    • Fixed an issue in util show-kinesis-failed-logs where logs with multiple entries were not parsed properly.
    • Fixed an issue where a Finalizer would not run when only stack parameters are changed.
    • Fixed an issue with resource timings being updated twice.
    • Fixed an issue where the single-quote character (') was incorrectly escaped by some API Gateway integrations.

(v0.8.0.9) - 2020-08-31

Features

  • CLI
    • Added util list-modules command to list published modules and versions.
    • Added --build-policy option for build, publish, and deploy commands to control which module dependencies are allowed during the build phase.

Fixes

  • CLI
    • Fixed an issue in util show-kinesis-failed-logs where logs with multiple entries were not parsed properly.
    • Fixed an issue where a Finalizer would not run when only stack parameters are changed.
    • Fixed an issue with resource timings being updated twice.
    • Fixed an issue where the single-quote character (') was incorrectly escaped by some API Gateway integrations.

(v0.8.0.8) - 2020-08-03

Fixes

  • CLI
    • Fixed a regression in lash init --quick-start that failed to create the initial S3 bucket.

(v0.8.0.7) - 2020-07-28

BREAKING CHANGES

  • CLI
    • Renamed new bucket command to new public-bucket to make it clear the created S3 bucket is publicly accessible.

Features

  • CLI
    • Added new expiring-bucket command to create a self-deleting S3 bucket.
    • Enhanced publish and deploy commands to allow omitting the version number to automatically use the latest published module version.
    • Enhanced publish and deploy command by adding --from-origin option to import modules from specified origin instead the module origin. Dependencies must be published explicitly.
    • Enhanced deploy command by adding --no-import option to prevent module artifacts or dependencies from being imported. All artifacts must already exist in the deployment tier bucket.
    • Enhanced deploy to automatically upgrade shared dependencies when deploying a module. This behavior can be turned off with the --no-dependency-upgrades option.
    • Enhanced output for tier version command. The command now also returns status code 2 when the deployment tier does not exist.

Fixes

  • CLI
    • Fixed an issue in util show-kinesis-failed-logs where logs with multiple entries were not parsed properly.
    • Fixed an issue in init where --existing-s3-bucket-name would not convert a S3 bucket name to a S3 bucket ARN.
    • Fixed an issue in tier coreservices --enabled would fail without an explanation when the deployment tier was created without Core Services.
    • Use AWS::Partition instead of hard-coding aws when constructing ARNs.
    • Fixed an issue where the Finalizer was not taking a dependency on conditional custom resources.

(v0.8.0.6) - 2020-07-14

Features

  • CLI

    • Enabled detailed CloudWatch metrics for WebSocket deployments.
    • Added lambdasharp:moduleinfo:$MODULE_INFO and lambdasharp:origin:$MODULE_ORIGIN metadata to emitted CloudWatch events.
    • Added support for !Ref function in parameter files to read built-in variables.
    • Added Deployment::BucketName, Deployment::Tier, Deployment::TierLowercase, Deployment::TierPrefix, Deployment::TierPrefixLowercase as built-in variables for parameter files.
    • Updated embedded CloudFormation spec to 16.1.0.
  • Syntax

    • Added pragma for overriding Module::WebSocket.ApiKeySelectionExpression.
    • Added Deployment::TierPrefix and Deployment::TierPrefixLowercase as module variables.

Fixes

  • CLI
    • Fixed an issue where references to missing environment variables in the parameters.yml file were not reported as errors.
    • Fixed an issue where an API Gateway deployment (REST API and WebSocket) was not updated properly when an authorizer was changed.

(v0.8.0.5) - 2020-07-02

Features

  • CLI
    • Enhanced validation in new command for function and resource names.

Fixes

  • CLI

    • Fixed an output alignment issue with retained resources that show the DELETE_SKIPPED state.
    • Fixed an issue where the timing of resource creation/update operations was miscalculated.
    • Fixed an issue where invalid resource names were not properly reported.
  • SDK

    • Fixed an issue where the DEBUG_LOGGING_ENABLED value was case-sensitive, instead of case-insensitive.

(v0.8.0.4) - 2020-07-01

Features

  • CLI

    • Enhanced info command to show the name of the logging S3 bucket for the deployment tier.
    • Enhanced CloudFormation parameter prompts by showing min/max value and min/max length constraints.
    • Enhanced CloudFormation resource creation/update tracking to show how long the operation took.
    • Enhanced nuke command to delete retained S3 buckets from LambdaSharp.Core.
    • Added util show-kinesis-failed-logs command to list CloudWatch log entries that failed to be processed by LambdaSharp.Core.
    • Added check for !If [ condition, ifTrue, ifFalse ] on publicly scoped variables to make CloudFormation output conditional on condition.
    • Added tier list command to list all available deployment tiers.
    • Added confirmation prompt when detecting potential replacement/deletion of resources during lash deploy instead of erroring.
    • Added util show-parameters command to show the processed parameters YAML file.
    • Added support for !Sub function in parameter files.
    • Updated embedded CloudFormation spec to 16.0.0.
  • Syntax

    • Added pragmas for overriding Module::RestApi::StageName and Module::WebSocket::StageName.
    • Added support for DeletionPolicy attribute on resource and parameter declarations.
  • Modules

    • Migrated LambdaSharp.Twitter.Query function implementation to null-aware C#.
    • Added DeletionPolicy: Retain to the LambdaSharp.Core S3 logging bucket.
  • Misc.

    • Migrated all Lambda function implementations to sealed classes since they are never inherited from.

Fixes

  • CLI

    • Fixed an issue when processing parameter files where the encryption key in !GetParam required the "alias/" prefix.
  • Modules

    • Increased memory limit for LambdaSharp.S3.Subscriber resource handler to 256MB.

(v0.8.0.3) - 2020-06-19

Features

  • CLI

    • Added a check for asynchronous API Gateway method invocations to report when they are used with HTTP GET/OPTIONS.
    • Added lash tier version command to show or check the deployment tier version against a minimum expected version.
    • Updated embedded CloudFormation spec to 15.2.0.
  • SDK

    • Added publishing of debugging symbols information for LambdaSharp nuget package.

Fixes

  • CLI

    • Fixed an issue where a function was not recompiled when only its API mappings were modified, which led the function to have an out-of-date mappings file.
    • Fixed an issue where an invalid function schema was saved after the build.
  • Modules

    • Fixed an issue in LambdaSharp.Core that caused function registrations not to be updated.
    • Fixed an issue in LambdaSharp.Core that caused near out-of-memory Lambda usage reports to trigger an an out-of-memory error notification instead of a warning.
  • Samples

    • Fixed VpcFunctionSample to use CommaDelimitedList instead of CommaDelimitedString. Issue #147

(v0.8.0.2) - 2020-06-02

Features

  • CLI

    • Added --skip-apigateway-check to lash init to bypass API Gateway role creation/update operation during deployment tier initialization.
  • SDK

    • Added the virtual DebugLoggingEnabled property to ALambdaFunction as the preferred way to check if debug logging is enabled.
  • Syntax

    • Added pragma for overriding Module::Role.PermissionsBoundary (contributed by @yurigorokhov).
  • Modules

    • Added Encoding property for LambdaSharp::S3::IO to enable compression encoding for content before it is deployed to an S3 bucket.
    • Added Content-MD5 checksum header for S3 uploads performed by LambdaSharp::S3::Unzip to ensure end-to-end data integrity.
  • Samples

    • Added DebugSample showing how to use LogDebug() and DebugLoggingEnabled.

Fixes

  • CLI

    • Added support to all commands for --no-ansi, --quiet, and --verbose options.
  • Modules

    • Removed unnecessary S3 access policy from LambdaSharp.Core that granted read access to serverlessrepo.amazonaws.com for deployment buckets.

(v0.8.0.1) - 2020-05-18

Fixes

  • CLI
    • Added fixes from v0.7.0.17 release.
In This Article
Back to top Generated by DocFX