• [AWS] Lab: CloudFormation and SAM to deploy a Serverless fuction


    Task Breakdown

    1. Install the AWS SAM CLI on your local machine
    2. Create an S3 bucket
    3. Use `sam package` to package our code and save it in S3
    4. Use `sam deploy` to deploy a Lambda function using CloudFormation

    Install SAM CLI

    Guide

    Create an S3 bucket

    Make user your IAM user has access to S3

    aws iam get-user

    Then find the user in IAM to make sure it has 

    `AmazonS3FullAccess`

    Create an S3 bucket

    aws s3 mb s3://<bucket-name> --region us-esat-1

    Resource files:

    Lambda.yml

    AWSTemplateFormatVersion: "2010-09-09"
    Transform: AWS::Serverless-2016-10-31
    Resources:
      TestFunction:
        Type: AWS::Serverless::Function
        Properties:
          Handler: index.handler
          Runtime: nodejs12.x
          Environment:
            Variables:
              S3_BUCKET: <YOUR_BUCKET_NAME>

    index.js

    exports.handler = (event, context, callback) => {
        // TODO implement
        const response = {
            statusCode: 200,
            body: JSON.stringify('Hello Cloud Gurus, This Lambda Function was deployed using SAM!')
        };
        callback(null, response);
    };

    SAM package

    Make sure put those two files in the same folder and run cmd:

    sam package --template-file ./Lambda.yml --output-template-file sam-template.yml --s3-bucket <YOUR_BUCKET_NAME> 

    Replacae <Your_BUCKET_NAME>.

    That cmd will package our code and output `sam-template.yml` file in our folder.

    SAM deploy

    Now it's time to deploy:

    sam deploy --template-file sam-template.yml --stack-name <STACK_NAME> --capabilities CAPABILITY_IAM

    Make sure you have permission to deploy the CloudFormation. If you have AdminAccess then it is fine. Otherwise, you need to give `EC2, CloudFormation, S3, Lambda, IAM full access`.

     

    Lambda

    Last, you can go to Lambda, find newly create lambda, run the test, to make sure, SAM has deploy a Lmabda by using CloudFormation.

    Summary

    If you want to deploy a serverless function, you can use SAM CLI.

    1. It create bucket on S3 and save the CloudFormation template
    2. sam package & sam deploy cmds.
  • 相关阅读:
    shell脚本
    正则表达式和文本处理工具二
    正则表达式和文本处理工具
    Linux基础实操六
    Linux基础实操五
    caffe 试运行MNIST
    转 Windows+VS2013爆详细Caffe编译安装教程
    python一
    VS2008 C++ 调用MATLAB 2009b 生成的DLL .
    MFC抓网页
  • 原文地址:https://www.cnblogs.com/Answer1215/p/14638539.html
Copyright © 2020-2023  润新知