问题标签 [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 投票
4 回答
22422 浏览

amazon-web-services - 运行 AWS SAM Local 时如何指定模板参数?

使用AWS SAM Local我可以在本地测试我的无服务器应用程序,这很棒。

我还可以部署到 AWS,它显然采用与 相同的标志aws cloudformation deploy,因此我可以传递一个带有应用程序机密(API 密钥等)的参数文件。

但是,我在 Github 上的文档中或文档中找不到任何aws local start-api --help关于在本地测试时如何使用参数文件的内容。

运行时如何指向要与模板一起使用的参数文件sam local start-api

0 投票
1 回答
2005 浏览

amazon-web-services - 使用 samlocal 为 SNS 触发 lambda 函数

我是 SAM-Local 的新手,正在尝试使用它从 SNS 主题触发 Lambda 函数。当我像这样运行 SAM Local 时:

sam local invoke -t sam.yaml ServiceNowIncidentCreator -e sns_event.json

我的 Lambda 函数没有被触发。我只看到 docker 容器启动并像这样永远等待:

我的 sam.yml 看起来像这样:

..我的 event.json 看起来像这样:

我错过了什么?

0 投票
0 回答
2430 浏览

aws-api-gateway - Fn::Sub 中的嵌套 Fn::ImportValue 不适用于 SAM 模板

描述: 我正在尝试定义无服务器 API 资源。但是在使用函数 ImportValue 定义 swagger 规范文件的位置时遇到了麻烦。

重现问题的步骤: 我无法在 Location中定义AWS::Serverless::Api具有嵌套函数的资源。ImportValue我尝试了以下三种方法,它们都不起作用。

注意:堆栈参数已正确定义,并且存在从其他堆栈导出的值。为简洁起见,这里没有显示它们。

Cloudformation 显示以下错误。

FAILED - 转换 Include 下的参数 Location 的值必须解析为字符串、数字、布尔值或任何这些的列表。

但是,如果我不使用ImportValue它,它适用于嵌套Fn::Sub

是因为 Fn::Transform 还是 AWS::Include?

0 投票
1 回答
2436 浏览

aws-lambda - SAM 模板:多个微服务 lambda 共享一个 AWS::ApiGateway::DomainName

我的目标是允许多个独立的 lambda 资源(微服务)共享一个用于测试环境的通用自定义域。使用下面的模板,部署微服务 #1 没有问题。但是,在部署微服务 #2 时,CloudFormation 失败并回滚,因为域名已分配给微服务 #1。

肯定有可能在具有唯一路径的多个微服务之间共享一个通用的自定义域吗?

服务 #1 模板.yaml

服务 #2 模板是相同的,只是路径不同(例如/service_two.

0 投票
0 回答
1469 浏览

aws-lambda - AWS Cognito 和 AWS Lambda - SAM 本地

我正在本地电脑上构建和测试 Lambda 函数。Lambda 使用“sam local start-api”命令通过 SAM 公开,并通过 Javascript 调用。我现在已经在 AWS Cognito(在云中)上设置了一个用户池。我的应用程序正在针对用户池进行正确身份验证。但是,我现在想在本地 PC 上调用 Lambda 时将用户信息传递给它们。我想要实现的是:

  • 我的 JS Web 应用程序向我本地托管的 Lambda 发送带有授权标头的请求。
  • 我的 Lambda 通过 $context.authorizer.claims 访问声明

最重要的是:Lambda 代码不应特定于我的开发环境。我应该能够在不更改代码的情况下将我的 Lambda 部署到云中。

问题:是否可以在我的本地开发环境中将用户声明提供/注入到 Lambda 请求的上下文中?

0 投票
1 回答
717 浏览

amazon-web-services - 使用 npm 安装 aws-sam-local 后找不到 sam 二进制文件

我正在尝试使用官方 GitHub 存储库aws-sam-local中的 README.md 为 Windows 10安装。

但是在 npm 安装完成后,我找不到sam二进制文件。同样在安装目录bin文件夹中看起来是空的:

不幸的是,我的 PATH 变量与安装无关。

0 投票
1 回答
2273 浏览

amazon-web-services - 在另一个端口上运行 AWS SAM Local

我已经成功地使用以下命令在我的机器上的端口 3000 上运行 AWS SAM Local:

文档说有一个标志-d可以在不同端口上以调试模式运行服务器。我需要在端口 8080 上运行它。所以我尝试了这个:

并且服务器仍然在 3000 上启动:

有谁知道我在这里做错了什么?谢谢!

0 投票
1 回答
151 浏览

reactjs - Aws Mobile Hub:将前端与后端分开

我仍在发现awsmobile并且仍然需要阅读很多文档,但我不太明白为什么会在我的 React 项目中awsmobile init生成一个,因为:awsmobilejs/backend

1)我认为 FE 和 BE 不应该在同一个仓库中。

2) 我可能会在以后创建移动应用程序,也在单独的存储库中。那么它将如何运作?根据文档,我必须awsmobile init <project_id>再次运行,它也会在那里下载awsmobilejs/backend文件夹(重复)

将 FE 和 BE 分开对我来说是有意义的,尤其是如果您有多个前端(WEB 和移动应用程序)。Aws 移动中心甚至允许您在控制台中创建多个“应用程序”(android、iOS、web 和 react-native)。我如何将所有内容分开?并稍后“连接”它们?

奖金问题:awsmobile(cloud-api)与aws SAM有何不同 他们似乎为后端实现了类似的事情

谢谢

0 投票
1 回答
776 浏览

lambda - 无法从外部访问 sam local start-api

我正在使用本地 aws sam 来开发一些 lambdas/nanoservices

我启动 lambda 容器:

其中 db-pros 是数据库容器

当我转到 127.0.0.1:3000/ lambda-name时,一切正常,但是当我尝试从测试设备(连接到 WiFi 的 Android 手机)连接时,我不能。

尝试使用来自的 IP(以太网和 docker0)ifconfig,但我仍然无法连接。

我不知道这是否可能,如果可以,如何。

0 投票
1 回答
3573 浏览

amazon-web-services - 使用 SQS、SNS 和 APIGW 进行无服务器或 SAM 和本地开发

我正在评估无服务器 v AWS SAM CLI。我试图了解在使用以下开发时如何促进本地开发工作流程:-

  • Lambda 是用 python 编写的
  • 由带有 SES 邮件有效负载的 SNS 通知触发
  • 读取 S3 对象
  • 读写dynamodb
  • 写入 SQS
  • 写入 SNS 主题

我可以从文档中看到无服务器具有以下本地选项:-

  • S3
  • 动态数据库
  • SNS 事件入站

是否有解决方案并不明显:-

  • API Gateway 本地支持 python lambdas
  • 写入 SQS
  • 写入 SNS

我可以从 SAM 文档中看到,可以针对本地 DynamoDB 测试 python Lambdas。不清楚还有什么可能,或者您是否必须将其指向实际的 AWS 实例以供其余实例(S3、SQS 等)使用

任何指针?