-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1258 from awslabs/develop
release: Version 0.18.0 (#1206)
- Loading branch information
Showing
30 changed files
with
889 additions
and
1,509 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,6 +10,11 @@ python: | |
- "2.7" | ||
- "3.6" | ||
- "3.7" | ||
- "3.8-dev" | ||
|
||
matrix: | ||
allow_failures: | ||
- python: 3.8-dev | ||
|
||
addons: | ||
apt: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,119 +1,92 @@ | ||
<p align="center"> | ||
</p> | ||
|
||
SAM CLI (Beta) | ||
============== | ||
# AWS SAM (Beta) | ||
|
||
![Build | ||
Status](https://travis-ci.org/awslabs/aws-sam-cli.svg?branch=develop) | ||
![Apache-2.0](https://img.shields.io/npm/l/aws-sam-local.svg) | ||
![Contributors](https://img.shields.io/github/contributors/awslabs/aws-sam-cli.svg) | ||
![GitHub-release](https://img.shields.io/github/release/awslabs/aws-sam-cli.svg) | ||
![PyPI version](https://badge.fury.io/py/aws-sam-cli.svg) | ||
|
||
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/aws-sam-cli) | ||
|
||
[Join the SAM developers channel (\#samdev) on | ||
Slack](https://join.slack.com/t/awsdevelopers/shared_invite/enQtMzg3NTc5OTM2MzcxLTdjYTdhYWE3OTQyYTU4Njk1ZWY4Y2ZjYjBhMTUxNGYzNDg5MWQ1ZTc5MTRlOGY0OTI4NTdlZTMwNmI5YTgwOGM/) | ||
to collaborate with fellow community members and the AWS SAM team. | ||
|
||
`sam` is the AWS CLI tool for managing Serverless applications written | ||
with [AWS Serverless Application Model | ||
(SAM)](https://github.com/awslabs/serverless-application-model). SAM CLI | ||
can be used to test functions locally, start a local API Gateway from a | ||
SAM template, validate a SAM template, fetch logs, generate sample | ||
payloads for various event sources, and generate a SAM project in your | ||
favorite Lambda Runtime. | ||
|
||
Main features | ||
------------- | ||
|
||
- Develop and test your Lambda functions locally with `sam local` and | ||
Docker | ||
- Invoke functions from known event sources such as Amazon S3, Amazon | ||
DynamoDB, Amazon Kinesis Streams, etc. | ||
- Start local API Gateway from a SAM template, and quickly iterate | ||
over your functions with hot-reloading | ||
- Validate SAM templates | ||
- Get started with boilerplate Serverless Service in your chosen | ||
Lambda Runtime `sam init` | ||
|
||
Get Started | ||
----------- | ||
|
||
Learn how to get started using the SAM CLI with these guides: | ||
|
||
- [Installation](https://aws.amazon.com/serverless/sam/): Set up your macOS, Linux or | ||
Windows Machine to run serverless projects with SAM CLI. | ||
- [Introduction to SAM and SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-quick-start.html) What is | ||
SAM and SAM CLI, and how can you use it to make a simple hello-world | ||
app. | ||
- [Running and debugging serverless applications | ||
locally](docs/usage.md): Describes how to use SAM CLI for invoking | ||
Lambda functions locally, running automated tests, fetching logs, | ||
and debugging applications | ||
- [Packaging and deploying your | ||
application](docs/deploying_serverless_applications.md): Deploy | ||
your local application using an S3 bucket, and AWS CloudFormation. | ||
- [Advanced](docs/advanced_usage.md): Learn how to work with compiled | ||
languages (such as Java and .NET), configure IAM credentials, | ||
provide environment variables, and more. | ||
- [Examples](https://github.com/awslabs/serverless-application-model/tree/master/examples/apps) | ||
|
||
Project Status | ||
-------------- | ||
|
||
- \[x\] Python Versions support | ||
- \[x\] Python 2.7 | ||
- \[x\] Python 3.6 | ||
- \[x\] Python 3.7 | ||
- \[ \] Supported AWS Lambda Runtimes | ||
- \[x\] `nodejs` | ||
- \[x\] `nodejs4.3` | ||
- \[x\] `nodejs6.10` | ||
- \[x\] `nodejs8.10` | ||
- \[x\] `nodejs10.x` | ||
- \[x\] `java8` | ||
- \[x\] `python2.7` | ||
- \[x\] `python3.6` | ||
- \[x\] `python3.7` | ||
- \[x\] `go1.x` | ||
- \[ \] `dotnetcore1.0` | ||
- \[x\] `dotnetcore2.0` | ||
- \[x\] `dotnetcore2.1` | ||
- \[x\] `ruby2.5` | ||
- \[x\] `Provided` | ||
- \[x\] AWS credential support | ||
- \[x\] Debugging support | ||
- \[x\] Inline Swagger support within SAM templates | ||
- \[x\] Validating SAM templates locally | ||
- \[x\] Generating boilerplate templates | ||
- \[x\] `nodejs` | ||
- \[x\] `nodejs4.3` | ||
- \[x\] `nodejs6.10` | ||
- \[x\] `nodejs8.10` | ||
- \[x\] `nodejs10.x` | ||
- \[x\] `java8` | ||
- \[x\] `python2.7` | ||
- \[x\] `python3.6` | ||
- \[x\] `python3.7` | ||
- \[x\] `go1.x` | ||
- \[x\] `dotnetcore1.0` | ||
- \[x\] `dotnetcore2.0` | ||
- \[x\] `ruby2.5` | ||
- \[ \] `Provided` | ||
|
||
Contributing | ||
------------ | ||
|
||
Contributions and feedback are welcome! Proposals and pull requests will | ||
be considered and responded to. For more information, see the | ||
[CONTRIBUTING](CONTRIBUTING.md) file. | ||
|
||
A special thank you | ||
------------------- | ||
|
||
SAM CLI uses the open source | ||
[docker-lambda](https://github.com/lambci/docker-lambda) Docker images | ||
created by [@mhart](https://github.com/mhart). | ||
![SAM CLI Version](https://img.shields.io/github/release/awslabs/aws-sam-cli.svg?label=CLI%20Version) | ||
|
||
|
||
The AWS Serverless Application Model (SAM) is an open-source framework for building serverless applications. | ||
It provides shorthand syntax to express functions, APIs, databases, and event source mappings. | ||
With just a few lines of configuration, you can define the application you want and model it. | ||
|
||
[![Getting Started with AWS SAM](./docs/get-started-youtube.png)](https://www.youtube.com/watch?v=1dzihtC5LJ0) | ||
|
||
## Get Started | ||
|
||
To get started with building SAM-based applications, use the SAM CLI. SAM CLI provides a Lambda-like execution | ||
environment that lets you locally build, test, debug, and deploy applications defined by SAM templates. | ||
|
||
* [Install SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) | ||
* [Build & Deploy a "Hello World" Web App](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-quick-start.html) | ||
* [Install AWS Toolkit](https://aws.amazon.com/getting-started/tools-sdks/#IDE_and_IDE_Toolkits) to use SAM with your favorite IDEs. | ||
|
||
|
||
**Next Steps:** Learn to build a more complex serverless application. | ||
* [Extract text from images and store in a database](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-example-s3.html) using Amazon S3 and Amazon Rekognition services. | ||
* [Detect when records are added to a database](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-example-ddb.html) using Amazon DynamoDB database and asynchronous stream processing. | ||
|
||
|
||
**Detailed References:** Explains SAM commands and usage in depth. | ||
* [CLI Commands](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) | ||
* [SAM Template Specification](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md) | ||
* [Policy Templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) | ||
|
||
## Why SAM | ||
|
||
+ **Single\-deployment configuration**\. SAM makes it easy to organize related components and resources, and operate on a single stack\. You can use SAM to share configuration \(such as memory and timeouts\) between resources, and deploy all related resources together as a single, versioned entity\. | ||
|
||
+ **Local debugging and testing**\. Use SAM CLI to locally build, test, and debug SAM applications on a Lambda-like execution environment. It tightens the development loop by helping you find & troubleshoot issues locally that you might otherwise identify only after deploying to the cloud. | ||
|
||
+ **Deep integration with development tools**. You can use SAM with a suite of tools you love and use. | ||
+ IDEs: [PyCharm](https://aws.amazon.com/pycharm/), [IntelliJ](https://aws.amazon.com/intellij/), [Visual Studio Code](https://aws.amazon.com/visualstudiocode/), [Visual Studio](https://aws.amazon.com/visualstudio/), [AWS Cloud9](https://aws.amazon.com/cloud9/) | ||
+ Build: [CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/) | ||
+ Deploy: [CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/), [Jenkins](https://wiki.jenkins.io/display/JENKINS/AWS+SAM+Plugin) | ||
+ Continuous Delivery Pipelines: [CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/) | ||
+ Discover Serverless Apps & Patterns: [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/) | ||
|
||
+ **Built\-in best practices**\. You can use SAM to define and deploy your infrastructure as configuration. This makes it possible for you to use and enforce best practices through code reviews. Also, with a few lines of configuration, you can enable safe deployments through CodeDeploy, and can enable tracing using AWS X\-Ray\. | ||
|
||
+ **Extension of AWS CloudFormation**\. Because SAM is an extension of AWS CloudFormation, you get the reliable deployment capabilities of AWS CloudFormation\. You can define resources by using CloudFormation in your SAM template\. Also, you can use the full suite of resources, intrinsic functions, and other template features that are available in CloudFormation\. | ||
|
||
## What is this Github repository? 💻 | ||
This Github Repository contains source code for SAM CLI. Here is the development team talking about this code: | ||
|
||
> SAM CLI code is written in Python. Source code is well documented, very modular, with 95% unit test coverage. | ||
It uses this awesome Python library called Click to manage the command line interaction and uses Docker to run Lambda functions locally. | ||
We think you'll like the code base. Clone it and run `make pr`! | ||
|
||
## Contribute to SAM | ||
|
||
We love our contributors ❤️ We have over 100 contributors who have built various parts of the product. | ||
Read this [testimonial from @ndobryanskyy](https://www.lohika.com/aws-sam-my-exciting-first-open-source-experience/) to learn | ||
more about what it was like contributing to SAM. | ||
|
||
Depending on your interest and skill, you can help build the different parts of the SAM project; | ||
|
||
**Enhance the SAM Specification** | ||
|
||
Make pull requests, report bugs, and share ideas to improve the full SAM template specification. | ||
Source code is located on Github at [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model). | ||
Read the [SAM Specification Contributing Guide](https://github.com/awslabs/serverless-application-model/blob/master/CONTRIBUTING.md) | ||
to get started. | ||
|
||
**Strengthen SAM CLI** | ||
|
||
Add new commands or enhance existing ones, report bugs, or request new features for the SAM CLI. | ||
Source code is located on Github at [awslabs/aws-sam-cli](https://github.com/awslabs/aws-sam-cli). Read the [SAM CLI Contributing Guide](https://github.com/awslabs/aws-sam-cli/blob/develop/CONTRIBUTING.md) to | ||
get started. | ||
|
||
**Update SAM Developer Guide** | ||
|
||
[SAM Developer Guide](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/index.html) provides comprehensive getting started guide and reference documentation. | ||
Source code is located on Github at [awsdocs/aws-sam-developer-guide](https://github.com/awsdocs/aws-sam-developer-guide). | ||
Read the [SAM Documentation Contribution Guide](https://github.com/awsdocs/aws-sam-developer-guide/blob/master/CONTRIBUTING.md) to get | ||
started. | ||
|
||
### Join the SAM Community on Slack | ||
[Join the SAM developers channel (#samdev)](https://join.slack.com/t/awsdevelopers/shared_invite/enQtMzg3NTc5OTM2MzcxLTdjYTdhYWE3OTQyYTU4Njk1ZWY4Y2ZjYjBhMTUxNGYzNDg5MWQ1ZTc5MTRlOGY0OTI4NTdlZTMwNmI5YTgwOGM/) on Slack to collaborate with fellow community members and the AWS SAM team. | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
version: 1.0.{build} | ||
image: Visual Studio 2017 | ||
build: off | ||
|
||
environment: | ||
AWS_DEFAULT_REGION: us-east-1 | ||
SAM_CLI_DEV: 1 | ||
|
||
matrix: | ||
- PYTHON_HOME: "C:\\Python27-x64" | ||
PYTHON_VERSION: '2.7' | ||
PYTHON_ARCH: '32' | ||
|
||
- PYTHON_HOME: "C:\\Python36-x64" | ||
PYTHON_VERSION: '3.6' | ||
PYTHON_ARCH: '64' | ||
|
||
# Testing on both 32bit and 64bit Windows only for Latest Python version, | ||
# because MSIs installers use Latest Python version | ||
- PYTHON_HOME: "C:\\Python37" | ||
PYTHON_VERSION: '3.7' | ||
PYTHON_ARCH: '32' | ||
|
||
- PYTHON_HOME: "C:\\Python37-x64" | ||
PYTHON_VERSION: '3.7' | ||
PYTHON_ARCH: '64' | ||
|
||
install: | ||
|
||
# Upgrade setuptools, wheel and virtualenv | ||
- "python -m pip install --upgrade setuptools wheel virtualenv" | ||
|
||
# Create new virtual environment and activate it | ||
- "rm -rf venv" | ||
- "python -m virtualenv venv" | ||
- "venv\\Scripts\\activate" | ||
- "python -c \"import sys; print(sys.executable)\"" | ||
|
||
# Actually install SAM CLI's dependencies | ||
- "pip install -e \".[dev]\"" | ||
|
||
test_script: | ||
- "pytest --cov samcli --cov-report term-missing --cov-fail-under 95 tests\\unit" | ||
- "flake8 samcli" | ||
- "flake8 tests\\unit tests\\integration" | ||
- "pylint --rcfile .pylintrc samcli" | ||
|
||
|
Empty file.
Oops, something went wrong.