问题标签 [aws-sam-cli]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9013 浏览

amazon-web-services - How do I destroy a aws SAM Local lambda?

Follow the read for an example it says:

Now what is the sam local command to delete the whole stack including s3 bucket and CF stack?

0 投票
1 回答
1711 浏览

amazon-web-services - 将 lambda 部署到 s3 存储桶文件夹?

这是部署 lambda 的命令:

但是我可以指定一个桶前缀吗?所以它被部署到子文件夹而不是存储桶的根目录?

0 投票
1 回答
6298 浏览

amazon-web-services - 如何从 sam deploy 命令中排除文件夹?

我运行它来部署我的 lambda:

这可行,但此代码受版本控制,并且 sam 也在上传 .git 文件夹。我如何让 sam 像使用 gitignore 一样忽略一些文件夹?

0 投票
1 回答
349 浏览

aws-lambda - 来自 Lambda 函数的主机上的 AWS SAM 本地访问服务

我正在使用 SAM Local 测试 Lambda 函数。该函数调用 REST API。在本地,我有一个模拟休息服务来测试呼叫。为了连接,我目前在 Lambda 函数中使用主机的 IP 地址。这一直有效,直到我的 IP 更改或其他人尝试运行该功能。我想使用环境变量将主机名/IP 地址传递给 Lambda 函数。一旦部署,这应该很容易做到,但我还没有找到在我的本地模板中设置它的好方法。有没有很好的方法来设置它?

0 投票
2 回答
1729 浏览

aws-sam-cli - AWS-SAM-LOCAL 单元测试策略

我一直在寻找 aws-sam-local 单元测试策略,但没有找到太多。只是在寻找建议?

0 投票
0 回答
183 浏览

amazon-web-services - 如何使用现有的 Cloud Formation 模板生成 SAM Local 环境

我正在研究涉及 AWS 无服务器数据湖的数据湖项目。 https://github.com/awslabs/aws-data-lake-solution 当我尝试创建 SAM 本地模板文件时,我在配置现有资源(API 网关、Coginto 用户池)时遇到了一些问题。我可以使用现有的云形成模板来生成 SAM 本地环境吗?请让我知道我必须对现有模板进行哪些更改。

云形成模板 https://github.com/awslabs/aws-data-lake-solution/tree/master/deployment

0 投票
1 回答
1237 浏览

amazon-web-services - 如何在 SAM 模板上指定现有的 FunctionName

我正在尝试使用 SAM 部署 AWS Lambda 函数。我想要做的是通过部署本地源代码来更新现有的 lambda 函数。

为此,我在 template.yaml 中将现有的 lambda 函数名称指定为“FunctionName”,如下所示。但是,'FunctionName' 只支持创建新功能,不支持更新到现有功能。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname

是否有任何方法可以在 SAM 中指定函数名称以更新 lambda 函数?

[模板.yaml]

0 投票
1 回答
286 浏览

aws-lambda - 使用 Cloud9 部署 Lambda

您好,这是我的项目结构: -AppName -Common -common.js //Global module which i'm using in all functions -Func1 -index.js -Func2 -index.js -template.yaml 这是 template.yaml 内容:

AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Description: An AWS Serverless Specification template describing your function. Resources: Func1: Type: 'AWS::Serverless::Function' Properties: Handler: Func1/index.handler Runtime: nodejs6.10 MemorySize: 512 Timeout: 10 Func2: Type: 'AWS::Serverless::Function' Properties: Handler: Func2/index.handler Runtime: nodejs6.10 MemorySize: 512 Timeout: 10

当我部署例如 Func2 时,结果包包含应用程序内的所有文件夹,而只有 Func2。是否可以通过 yaml 文件进行配置,结果包中会包含哪些文件?例如,如果我部署 Func2,我想在下一个包中查看:

-Common -common.js -Func2 -index.js

0 投票
0 回答
405 浏览

python-3.x - AWS(SAM 本地)Lambda 读/写关闭管道错误

我有一个非常简单的函数(py3.6),我正在sam-local通过它运行它start-api,我正在使用一个充满curl帖子的 shell 脚本进行测试:

validate_json该测试在大约 95% 的时间在正确的用例中运行良好,但在引发 anException尽管被捕获,或者当post_to_dynamo_db_local短路并提前返回(对象已经在 DB 中,返回)时失败(不一致)。
*我说正确的用例在大约 95% 的情况下都有效,因为有时我触摸东西但它失败了,但我触摸东西很可能是原因。虽然未经证实!

根据sam-local控制台,该函数似乎正确返回:

但是curl直到请求超时才收到响应:

大约在同一时间sam-local控制台响应:

有任何想法吗?对于这样一个简单的任务,函数运行时间似乎异常高,我认为这里的内存不应该是一个问题......

失败案例流程:
开始->检查输入(字符串)->引发异常->捕获异常->返回响应(字符串)

补充:有几件事有帮助:

  • 在卷发之间睡觉(最多尝试 10 秒,但偶尔仍会出错
  • 不缓存对表的引用(因此现在应该很快收集它们
0 投票
7 回答
23397 浏览

amazon-web-services - 在 docker 中将 AWS SAM Local 与 dynamodb 连接

我已经使用 AWS sam local 设置了一个 api gateway/aws lambda 对,并确认我可以在运行后成功调用它

sam local start-api

然后,我在 docker 容器中添加了一个本地 dynamodb 实例,并使用 aws cli 在其上创建了一个表

但是,将代码添加到 lambda 以写入我收到的 dynamodb 实例:

2018-02-22T11:13:16.172Z ed9ab38e-fb54-18a4-0852-db7e5b56c8cd 错误:无法写入表:{"message":"connect ECONNREFUSED 0.0.0.0:8000","code":"NetworkingError", "errno":"ECONNREFUSED","syscall":"connect","address":"0.0.0.0","port":8000,"region":"eu-west-2","hostname":"0.0 .0.0","re​​tryable":true,"time":"2018-02-22T11:13:16.165Z"} 从命令写入事件:{"name":"test","geolocation":"xyz"," type":"createDestination"} END RequestId: ed9ab38e-fb54-18a4-0852-db7e5b56c8cd

我在网上看到您可能需要连接到同一个 docker 网络,所以我创建了一个网络docker network create lambda-local并将启动命令更改为:

sam local start-api --docker-network lambda-local

docker run -v "$PWD":/dynamodb_local_db -p 8000:8000 --network=lambda-local cnadiminti/dynamodb-local:latest

但仍然收到相同的错误

sam local 正在打印2018/02/22 11:12:51 Connecting container 98b19370ab92f3378ce380e9c840177905a49fc986597fef9ef589e624b4eac3 to network lambda-local

我正在使用以下方法创建 dynamodbclient:

并检查我的代码正在创建的 dynamodbclient 节目

这个设置应该工作吗?我如何让他们互相交谈?

- - 编辑 - -

基于 Twitter 对话,值得一提(也许)我可以在 CLI 和 web shell 中与 dynamodb 交互

CLI 上的 dynamo db

dynamodb 网页外壳