如何销毁 aws SAM Local lambda?

Posted

技术标签:

【中文标题】如何销毁 aws SAM Local lambda?【英文标题】:How do I destroy a aws SAM Local lambda? 【发布时间】:2018-06-27 17:42:47 【问题描述】:

请阅读下面的示例:

# AWS SAM Hello World Example #

A simple AWS SAM template that specifies a single Lambda function.

## Usage ##

To create and deploy the SAM Hello World example, first ensure that you've met the requirements described in the [root README](../../README.md). Then
follow the steps below.

### Test your application locally ###

Use [SAM Local](https://github.com/awslabs/aws-sam-local) to run your Lambda function locally:

    sam local invoke "HelloWorldFunction" -e event.json

### Package artifacts ###

Run the following command, replacing `BUCKET-NAME` with the name of your bucket:

    sam package --template-file template.yaml --s3-bucket BUCKET-NAME --output-template-file packaged-template.yaml

This creates a new template file, packaged-template.yaml, that you will use to deploy your serverless application.

### Deploy to AWS CloudFormation ###

Run the following command, replacing `MY-NEW-STACK` with a name for your CloudFormation stack.

    sam deploy --template-file packaged-template.yaml --stack-name MY-NEW-STACK --capabilities CAPABILITY_IAM

This uploads your template to an S3 bucket and deploys the specified resources using AWS CloudFormation.

现在sam local命令是什么来删除整个堆栈,包括s3存储桶和CF堆栈?

【问题讨论】:

【参考方案1】:

目前没有删除所有这些资源的 sam 命令。您只需使用相关的 aws cli 命令,无论如何 sam-cli 只是一个包装器。删除 CFN 堆栈的示例。

aws cloudformation delete-stack --stack-name MY-NEW-STACK

【讨论】:

您也可以直接从 AWS 控制台转到 Cloudformation,如果忘记名称,请删除堆栈。 想补充一点,“sam deploy”没用。它是围绕“aws cloudformation deploy”的包装器,它做同样的事情并且实际上具有 less 功能。 Sam deploy 没有区域切换 想要添加 sam 本身是非常无用的,并且是 sls :/ 的错误副本。很抱歉 sam deploy 不是 sam invoke 并且它在它只是 cloudformation 命令的一个非常不稳定的包装器时(2 年前)毫无用处。现在不再是这种情况,因为当前的 sam 构建/打包/部署工作流程解决了大多数问题,但您仍然必须使用不同的命令 (cloudformation) 来清理/销毁 sam 应用程序,这有点不便

以上是关于如何销毁 aws SAM Local lambda?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Lambda 上的无服务器应用程序中存储和使用 HTML 模板(使用 AWS SAM)?

如何使用SAM通过API网关配置异步lambda调用?

AWS CDK - 如何在本地运行 API 和 Lambda?

在定义单个 AWS::Serverless::Function 的 SAM 模板中指定多个 API 阶段和 Lambda 别名

AWS SAM/Cloudformation 配置 API Gateway 指向 lambda 函数版本

AWS API Gateway 仅在使用 SAM 时支持 CORS for OPTIONS(没有 Lambda 代理集成)