Skip to content

Releases: aws/aws-sam-cli

Build Java functions using Maven

11 Mar 22:08
d88100f
Compare
Choose a tag to compare

You can now use the sam build command to create deployment packages for AWS Lambda functions written in Java using the Maven build tool.

In addition, sam init was expanded to support creating projects with different dependency managers. You can now create a Maven example by running sam init --runtime java --dependency-manager maven. See sam init --help for other supported values for the --dependency-manager Option.

Huge shoutout to @zoewangg for contributing the Maven builder

Changelog
Chore: Bump aws-sam-translator to 1.10.0 (#1043)
feat(init): gradle init support (#1040)
feat(build): Support building Java8 functions through Maven (#1044)
feat(publish): Add --semantic-version option to sam publish command (#1020)

Build Java functions using Gradle

01 Mar 01:13
7ddb5e4
Compare
Choose a tag to compare

What's New?

You can now use the sam build command to create deployment packages for AWS Lambda functions written in Java using the Gradle build tool.

Huge shoutout to @dagnir for contributing the Gradle builder

Changelog

  • Accept non-integer statusCode JSON values (#1013)
  • feat(build): Support for building Java functions using Gradle (#1007)
  • tests(integ): adding integ test for aws config and profile env vars (#1004)
  • feat: allow sam to be invoked as a module (#987)
  • refactor(build): Move workflow config information into its own file (#1001)
  • chore: Bump aws-sam-transform to 1.9.1 (#990)
  • docs: Fix Nodejs references in Python Cookiecutter README (#986)
  • fix(init): Make template spacing consistent (#962)
  • docs(init): typo fix in Go README.md (#971)

Simpler quickstarts, doc updates, and bug fixes

05 Feb 23:34
b23d425
Compare
Choose a tag to compare

What's New?

This release contains numerous improvements throughout the CLI, including simpler hello world quickstarts, doc updates, removing unnecessary compression when building a layer image for invoking, and cleaning up build containers.

Changelog

  • fix(publish): fix integ test metadata and templates (#982)
  • fix(publish): fix failing integ tests due to .rst to .md file changes (#981)
  • chore(release): Bump version to 0.11.0 (#979)
  • refactor(logging): Add additional information when function not found (#977)
  • fix: update license key in setup() to expected value by PyPi (#966)
  • chore: add required options for package and deploy (#961)
  • feat(layers): remove compression of docker context (#862)
  • docs: remove maxage off badges (#943)
  • fix: translate paths in SAR metadata during sam build (#935)
  • docs: update sam package command in cookiecutter docs (#919)
  • fix(build): cleanup build containers (#929)
  • refactor: simplify built-in quickstarts to a simple hello world (#849)
  • feat(invoke): reading Metadata adding to Resources in a template (#907)
  • docs(design): Debugging .NET Core Lambda Functions (#759)
  • refactor: fix grammar in log statement (#800)
  • docs(design): sam publish command (#844)
  • fix links to .md files (#915)
  • chore: remove dangling rst file (#905)
  • fix: formatting to md from rst (#891)

Build Ruby functions and publish apps to the AWS Serverless Application Repository

21 Dec 19:43
afce048
Compare
Choose a tag to compare

What's new?

You can now use sam build to compile deployment packages for AWS Lambda functions written in supported Ruby runtimes. Huge shout-out to @awood45 for this contribution!

You can now also use the new sam publish command to publish your serverless application to the AWS Serverless Application Repository, a managed repository for serverless applications. The AWS Serverless Application Repository enables teams, organizations, and individual developers to store and share reusable applications, and easily assemble and deploy serverless architectures in powerful new ways. To publish an application using SAM CLI, first define necessary application details like application name, description, semantic version, and license information using the AWS::ServerlessRepo::Application Key in the Metadata section of your SAM template. Then, use the sam publish command to make your application available in the AWS Serverless Application Repository for others to consume. To learn more, please visit the sam publish documentation. Huge shout-out to @paoptu023 for this contribution!

Changelog

  • Implement sam publish app command (#852)
  • Add Ruby to Supported Runtime Enum (#866)
  • fix: Flush stdout and stderr on each write when debugging (#843)
  • chore(version): bump version to 0.10.0 (#881)

SAM build for Node.js and .NET Core Debugging goodness!

12 Dec 22:06
7e08351
Compare
Choose a tag to compare

What's new?

You can now use the sam build command to compile deployment packages for AWS Lambda functions written in supported Node.js runtimes. Huge shout-out to @gojko for this contribution!

You can now debug Lambda functions written in .NET Core using Visual Studio Code. To get started, check out the documentation: Debugging .NET Core functions. Huge shout-out to @ndobryanskyy for this contribution!

Changelog

docs: Update Slack invite link (#781)
fix: Create Layer Cache during building image (#823)
docs: list Ruby2.5, Python3.7 and Provided as supported runtime (#822)
fix: Making hello world java sample more idiomatic (#802)
fix: Update to .NET Core init template (#705)
fix: Stop html encoding of options for generate-event (#824)
docs: Issue templates for bug and feature requests (#726)
fix: Fix Makefile typo (#829)
Feature: .NET Core 2.0/2.1 debugging support (#825)
refactor: Move checking Docker connectivity to ContainerManager (#828)
fix: Update functional tests to work (#841)
Feature: Support building Node.js functions (#845)

Locally test and debug functions that use Lambda Layers

30 Nov 17:53
b493394
Compare
Choose a tag to compare

What's New

Lambda functions in a serverless application typically share common dependencies such as SDKs, frameworks, and runtimes. Lambda Layers are a new type of artifact that can contain arbitrary code and data, and may be referenced by multiple functions at the same time. With layers, you can centrally manage common components across multiple functions enabling better code reuse. You can now use AWS SAM and AWS SAM CLI to locally test, deploy and manage serverless applications that leverage Layers.

When you invoke a function (AWS::Lambda::Function or AWS::Serverless::Function) that uses Layers, SAM CLI downloads the layer and makes it available in the container for your function code to use.

Changelog:

fix: AWS CLI on windows can be called aws.cmd or aws.exe (#786)
fix: typo in development guide doc (#791)
fix: astroid version (#795)
fix: Allow local paths for AWS::Lambda::Function (#808)
chore: Update aws-lambda-builders (#808)
feat: Support Python3.7, Ruby2.5, and Provided Runtimes (#808)
feat: Support local testing and debugging of functions that use Layers (#808)
fix: Don't set default value for --region (#811)

Locally test and debug functions that use Lambda Layers

29 Nov 21:11
b428871
Compare
Choose a tag to compare

What's New

Lambda functions in a serverless application typically share common dependencies such as SDKs, frameworks, and runtimes. Lambda Layers are a new type of artifact that can contain arbitrary code and data, and may be referenced by multiple functions at the same time. With layers, you can centrally manage common components across multiple functions enabling better code reuse. You can now use AWS SAM and AWS SAM CLI to locally test, deploy and manage serverless applications that leverage Layers.

When you invoke a function (AWS::Lambda::Function or AWS::Serverless::Function) that uses Layers, SAM CLI downloads the layer and makes it available in the container for your function code to use.

Changelog:

fix: AWS CLI on windows can be called aws.cmd or aws.exe (#786)
fix: typo in development guide doc (#791)
fix: astroid version (#795)
fix: Allow local paths for AWS::Lambda::Function (#808)
chore: Update aws-lambda-builders (#808)
feat: Support Python3.7, Ruby2.5, and Provided Runtimes (#808)
feat: Support local testing and debugging of functions that use Layers (#808)

Introducing the `sam build` command 👷

19 Nov 21:39
3f9c638
Compare
Choose a tag to compare

What's New

You can now use the sam build command to compile deployment packages for AWS Lambda functions written in Python 2.7 and 3.6. If you write code that uses python packages, such as a graphics library for image processing, you need to create a deployment package that will work on the Amazon Linux AMI. The sam build command allows you to easily create deployment artifacts that target AWS Lambda's execution environment, so the functions you build locally will run in a similar environment in the cloud.

The sam build command iterates through the functions in your application, looks for a manifest file (such as requirements.txt) that contains dependencies, and automatically creates deployment artifacts that you can deploy to Lambda using the sam package and sam deploy commands. If your functions depend on packages that have natively compiled programs, you can also use the sam build command with the --use-container flag. This flag builds your functions in a Lambda-like environment locally so they are in the correct format when you deploy them to the cloud.

As part of this release, we have also updated the sam local invoke and sam package commands to work on built artifacts to streamline the build -> test -> package -> deploy workflow. For example, you can execute sam local invoke right after executing sam build and sam local invoke will use the built artifacts. This makes it easier to operate on the template and source code without dealing with intermediate templates.

Changelog

fix: Attempt to recover/invoke function when docker connectivity is poor (#764)
feat: Implementation of "sam build" CLI command (#766)
feat: "sam package" defaults to built template (#775)
feat: Adding a sam --info command (#776)

🐿 New! Easier ways to install SAM CLI (Brew on Mac/Linux, and MSI on Windows)

07 Nov 19:07
5febb4e
Compare
Choose a tag to compare

Brew for Mac and Linux

You can now install SAM CLI using brew, a popular package manager for installing the packages you need. Installation is as simple as:

brew tap aws/tap
brew install aws-sam-cli

Note: On a Mac you use Homebrew, and on Linux you use Linuxbrew (a fork of the Homebrew package manager).

MSI for Windows

You can now download an MSI to install SAM CLI on Windows. Get the MSI you need here:

Changelog:

This release also contains the following bug fixes:

  • chore(version_bump): bump to 0.6.2
  • Fix: Travis times out when running Integ tests (#739)
  • fix: upgrade requests to 2.20.0 (#740)
  • Fix typo
  • chore: Version bump aws-sam-translator to 1.8.0 (#732)
  • Update README.rst
  • docs: add instructions for using local version of SAM Transformer (#688)
  • docs: Update Docker command to docker (#725)
  • fix: Iterate over query param list
  • chore: Enable Travis to run integ tests
  • fix: Support attaching to host network

🐿 Use SAM CLI on Windows 7/8 and now !Ref template parameters locally

19 Oct 18:40
aa611aa
Compare
Choose a tag to compare

Windows 7 and 8 support

SAM CLI now works with Docker Toolbox, so you can now use SAM CLI to test and debug your Lambda functions locally on Windows 7 and 8.

!Ref template parameters locally

We added support for resolving !Ref of template parameters anywhere within a SAM template. You can now provide values for template parameters using the --parameter-overrides CLI option, and reference those within the template. You can also automatically pick up default values of parameters. For example, SAM CLI assigns defaults for CloudFormation pseudo-parameters like AWS::Region.

This release also contains plenty of bug fixes and documentation updates! 🎉

Changelog

add pytest-mock for testing (#703)
fix: allow for stdout and stderr streams to be unbufferred directly. (#708)
docs: Add installation instructions for linux (Centos) (#670)
fix: Updated isBase64Encoded value to bool (#699)
fix: correct launch.json for nodejs debugging through VSCode (#704)
docs(usage): Update how to debug Python functions using VS Code (#694)
docs(Cloud9): Reset bash cache on Cloud9 (#693)
docs: Updated virtualenv alias name for 3.7 in guide. (#706)
chore: update aws-sam-translator to 1.7.0 (#682)
feat: travis CI support for Python 3.7 (#679)
docs: Update generate-sample-event-payloads link (#702)
Fix: Raise error for invalid environment variables file (#675)
fix: remove dependency on pystache (#684)
feat(init): .Net Core 2.1 support for init command (#665)
feat(generate-event): Add Kinesis Analytics events (#667)
feat(intrinsics): Support !Ref of template parameters (#657)
fix: conditionally install enum34 based on python version (#671)
fix: Update test format for Nodejs8.10 runtime. (#662)
fix: Removed dual line in init help text (#664)
docs: Update usage.rst to render code inline (#661)
fix(path): change windows style path to unix (#633)
fix(docs): fixed macOS name (#651)
Fix(generate-event): SubCommand help text to be short-text. (#652)
feat(generate-event): Support dns_suffix and partition variables (#650)
docs: Consistent packaged template naming (#647)
docs(installation): Upgrade instructions for AWS Cloud9 (#643)
fix(init): Fix camelCase vs snakeCase issue in NodeJS tests (#640)
docs(usage): Update generate-event command structure (#638)