Get started with AWS SAM

I am going to point you to a few resources to help you standup a hello world serverless app using AWS Lambda using AWS Serverless Application Model (SAM).

Serverless is an architecture style, where you leverage a service offering without having to provision or manage underlying infrastructure; and benefit from the service automatically scaling to your needs.

Serverless app platforms (like AWS Lambda or other similar FaaS services) are a particular type of Serverless offering that can take your code, host it in an execution environment and make it available as a (scalable) runtime service to your consumers.

Some Reading & Setup

  1. More details on Serverless – Read up
  2. What is SAM?
    • The AWS Serverless Application Model (AWS SAM) is an open-source framework that you can use to build serverless applications on AWS. – (from AWS site)
    • Read up
    • SAM consists of
      • AWS SAM Template – specification to define your serverless application
      • AWS SAM CLI – command line tool to build serverless applications that are defined by AWS SAM templates
    • SAM integrates with the rest of the AWS ecosystem, thus relieving you off other mundane activities.
  3. Install SAM CLI
  4. Setup AWS Credentials –¬†

The Hello World app itself

To get a sample hello world app running follow

    • sam init – stands-up a simple hello world app with an AWS SAM template
    • sam build – to build the project and generate deployment artifacts
    • sam local invoke – to run the code once locally within a docker container
    • sam local start-api – brings up your code in a hosted http server
    • sam package – uploads deployment artifacts to S3
    • sam deploy – deploys the application using Cloudformation changesets

The example application implements a customary hello world application that is a Lambda function and is fronted by an API Gateway.

Run locally

    • sam build (to build the code)
    • sam invoke local (to perform one-off invocations)
    • sam local start-api (to run a local http server that runs your code)

Screenshots here…


To run on AWS Cloud

  • sam deploy –guided