在Sam中部署Lambda

目录 (mù lù)

・Sam的安装
・初始化Sam
・构建Sam
・创建samconfig.toml文件
・部署Sam

山姆的引进 de

使用brew进行安装

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

或者通过pip安装

$ pip install aws-sam-cli

使用sam init

我会以对话形式来创建项目。

$ sam init
Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
Choice: 1
What package type would you like to use?
        1 - Zip (artifact is a zip uploaded to S3)
        2 - Image (artifact is an image uploaded to an ECR image repository)
Package type: 1

Which runtime would you like to use?
        1 - nodejs14.x
        2 - python3.8
        3 - ruby2.7
        4 - go1.x
        5 - java11
        6 - dotnetcore3.1
        7 - nodejs12.x
        8 - nodejs10.x
        9 - python3.7
        10 - python3.6
        11 - python2.7
        12 - ruby2.5
        13 - java8.al2
        14 - java8
        15 - dotnetcore2.1
Runtime: 1

Project name [sam-app]: Test

Cloning from https://github.com/aws/aws-sam-cli-app-templates

AWS quick start application templates:
        1 - Hello World Example
        2 - Step Functions Sample App (Stock Trader)
        3 - Quick Start: From Scratch
        4 - Quick Start: Scheduled Events
        5 - Quick Start: S3
        6 - Quick Start: SNS
        7 - Quick Start: SQS
        8 - Quick Start: Web Backend
Template selection: 1

    -----------------------
    Generating application:
    -----------------------
    Name: Test
    Runtime: nodejs14.x
    Dependency Manager: npm
    Application Template: hello-world
    Output Directory: .

    Next steps can be found in the README file at ./Test/README.md

用本地环境调用sam

因为启动了一个简易的项目,所以我会立刻试着运行它。

$ sam local invoke
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}

您可以通过使用Docker在本地环境进行验证。

$ sam local invoke -e path/event.json

当您指定-e时,可以指定lambda在执行时要使用的事件信息进行执行。

创建samconfig.toml。

$ sam deploy --guided

我们将使用对话形式创建部署设置文件samconfig.toml。

部署Sam

$ cd .aws-sam/build
$ sam deploy

如果部署成功,那就没问题了。

您可以从CloudFormation的管理控制台中确认部署情况。
此外,在Lambda中您也可以对函数进行测试执行。

因为可以尝试许多不同的事情,所以一旦有了信息的整理,我会进行更新。

广告
将在 10 秒后关闭
bannerAds