问题标签 [aws-sam]

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 投票
2 回答
2283 浏览

aws-sam - AWS SAM 模板中的 Auth 部分出错

为了启用 AWS_IAM auth 和 CORS,我制作了我的 sam 模板,如下所示。

但是,我收到一条错误消息

未能创建变更集:Waiter ChangeSetCreateComplete 失败:Waiter 遇到终端故障状态状态:FAILED。原因:转换 AWS::Serverless-2016-10-31 失败,原因是:无服务器应用程序规范文档无效。发现的错误数: 1. id 为 [ListFunction] 的资源无效。ID 为 [ListFunctionCors] 的事件无效。无法在路径 [/list] 的 API 方法 [options] 上设置 Authorizer [NONE],因为相关 API 未定义任何 Authorizer。

这里有什么问题?

0 投票
1 回答
1950 浏览

amazon-web-services - 如何向 AWS SAM local 提供全局环境变量

在本地运行 sams 以测试我的 api 网关并传递环境变量时,我可以运行命令

当环境变量与这样的特定函数绑定时,这很有效

但是,我目前有这样的全局环境变量

如何使用 将自定义全局环境变量传递给 SAMS env-var.json?我希望能够为我的env-var.json文件做这样的事情

不幸的是,这不起作用,我在网上找不到任何资源来显示实现此行为的正确语法。

0 投票
0 回答
1419 浏览

aws-api-gateway - 使用 AWS SAM 嵌套应用程序构建大型 API 网关的正确方法是什么?

我有一个包含大约 150 个端点的 API。当我尝试在一个 SAM(无服务器应用程序模型)模板中部署整个东西时,它会失败(预期),因为它想要创建的 744 个资源大于允许的最大值 200。

我将应用程序分解为一个默认模板,该模板创建无服务器 API 和一个默认路由和 Lambda 函数,并将分组的函数放在它们自己的模板中,上传到 S3 并在 aws::serverless::application (嵌套堆栈)中引用它们传入对在默认模板中创建的 API 网关的引用。

令我惊讶的是,它失败并出现错误:

RestApiId 必须是对同一模板中“AWS::Serverless::Api”资源的有效引用

在同一个模板中?!是否无法使用嵌套应用程序来绕过 200 个资源限制并且不被迫创建多个 API 网关实例?

更新:

SAM 开发人员似乎已注意到此问题,并且有一个问题和 RFC 正在解决中(截至 2019 年 5 月 5 日,这两个问题都未解决):

https://github.com/awslabs/serverless-application-model/issues/349 https://github.com/awslabs/serverless-application-model/issues/866

2021 年 10 月更新:

两年多后,GitHub 中的上述问题仍然存在

0 投票
1 回答
306 浏览

amazon-web-services - AWS Toolkit for Visual Studio Code 使用 AWS 无服务器应用程序模型 AWS SAM

我按照使用 AWS Toolkit for Visual Studio Code 创建无服务器应用程序中描述的步骤操作: https ://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/create-sam.html

这是使用 AWS SAM 模型逐步构建 lambda 函数的过程。

当我在本地执行该函数时,我收到以下错误消息:

_endpoint_for_partition 中的文件“/usr/local/Cellar/aws-sam-cli/0.15.0/libexec/lib/python3.7/site-packages/botocore/regions.py”,第 135 行引发 NoRegionError() botocore.exceptions .NoRegionError:您必须指定一个区域。

我安装了 AWS Toolkit for Visual Studio Code 扩展,并且可以使用 AWS Explorer 连接到任何区域

任何帮助表示赞赏!

0 投票
1 回答
851 浏览

aws-sam - 原因:无效的模板属性或属性 [Api]

通过docker deploy_image后,我发现:

等待创建变更集..

未能创建变更集:Waiter ChangeSetCreateComplete 失败:Waiter 遇到终端故障状态状态:FAILED。

我的模板有什么问题:

我希望它会在 cloudformation 中创建一个堆栈。

0 投票
1 回答
165 浏览

aws-sam - API 网关通过 SAM 直接连接到 SNS

我想通过 sam 定义一个云形成模板。我想创建一个直接连接到由自定义授权方授权的 SNS 的 API 网关方法。SAM可以实现吗?

谢谢

0 投票
0 回答
301 浏览

amazon-web-services - 在 aws lambda 中访问 c​​ookie;SAM 模板和 sam local start-api

我希望能够在 aws lambda 中从浏览器请求中读取 cookie。我发现这个https://aws.amazon.com/blogs/compute/simply-serverless-using-aws-lambda-to-expose-custom-cookies-with-api-gateway/似乎有效。

但是,这在 aws-sam-cli 应用程序的开发中不是很有用。我不确定如何使用 SAM 模板格式使用以sam local start-api.

我已经阅读了模板文档,但是我还没有找到它。任何帮助,将不胜感激。

0 投票
3 回答
5100 浏览

amazon-web-services - 手动删除 SAM CloudFormation 堆栈中的函数后未找到函数

sam deploy用来部署 lambda 函数和 API 网关。它工作正常,但在我通过 AWS 控制台手动删除 lambda 函数后它不起作用。我收到以下错误:

删除 lambda 并进行刷新部署的正确方法是什么?如果发生这种情况,如何强制 SAM 创建缺少的 lambda 函数?

我在模板 yaml 中的 lambda 看起来像:

0 投票
1 回答
147 浏览

amazon-web-services - 如何在 ubuntu 上运行“AWS sam”命令?

我正在使用 AWSsam打包和部署我的 lambda 函数。但我发现该sam命令在 ubuntu linux 中效果不佳。

下面是sam package命令的输出ubuntu-16.04。它看起来像命令参数错误,但可以在 Mac 上运行相同的命令。我不知道这个命令有什么问题。

0 投票
1 回答
265 浏览

aws-lambda - 指定允许在其 AWS SAM 函数模板中调用函数的资源

TL; DR:我应该如何编辑下面的模板,以便它可以被用户池触发器触发?

我尝试为 Lambda 函数创建一个 CloudFormation 模板,定义该函数可以调用和从中调用的服务。它应该使用 Cognito 用户池触发器运行。

为此,我在模板类型中定义了一个资源,AWS::Serverless::Function如下所示。注意Policies部分:

我插入的用于限制资源的第二个策略可以调用我的函数在堆栈创建期间失败:

政策文件不应指定委托人。(服务:AmazonIdentityManagement;状态代码:400;错误代码:MalformedPolicyDocument;请求 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

当我使用 principal删除该策略时,通过用户池触发器访问该功能被拒绝。