问题标签 [serverless-application-model]

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 投票
3 回答
246 浏览

amazon-web-services - 使用 IAM 策略文档对象列表作为 AWS::Serverless::Function 策略

根据无服务器应用程序模型中的文档,可以为资源的属性AWS::Serverless::Function指定 IAM 策略文档对象 (PDO) 列表。Policies

但是,当我尝试定义 IAM PDO 时,AWS Toolkit for Visual Studio 会标记语法错误: 在此处输入图像描述

这是我的Resources部分的完整示例:

"Resources": { "Example" : { "Type" : "AWS::Serverless::Function", "Properties": { "Handler": "Example::Example.Controllers.ExampleController::ExampleAction", "Runtime": "dotnetcore2.0", "CodeUri": "", "MemorySize": 256, "Timeout": 30, "Policies": [{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" } }], "Events": { "PutResource": { "Type": "Api", "Properties": { "Path": "/{id}", "Method": "GET" } } } } } }

我有什么问题吗,还是 SAM 或 AWS Toolkit 语法验证有问题?

0 投票
1 回答
3826 浏览

amazon-web-services - 适用于 SSM 获取参数的 AWS SAM 托管策略

是否有任何类似于Lambda 函数权限的DynamoDBReadPolicy托管策略?ssm:GetParameter*我正在使用 aws-sam-cli 并尝试遵循this,但是当我尝试在 using 时获取参数时sam local start-api,出现以下错误:

InvalidAction: The action or operation requested is invalid. Verify that the action is typed correctly.

这是我尝试获取参数的片段:

相关的模板部分如下。谢谢!

0 投票
1 回答
763 浏览

amazon-web-services - 将自定义域添加到 lambda 的最佳方法?

我正在尝试使用 SAM 创建一个 lambda 函数,但是我不知道如何向其中添加自定义域。我是否需要将整个 ApiGateway 添加到我的 CloudFormation 模板只是为了更改域还是有更简单的方法?

我的域在 Route53 中,并且我在 ACM 中有它的证书。

我的模板目前如下:

0 投票
1 回答
14117 浏览

amazon-web-services - Lambda 无法访问 KMS 密钥

当我运行我的 lambda 代码时,我收到以下错误:

The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access.

我主要是按照这个来使用 aws-sam-cli 创建堆栈,模板的相关部分位于代码下方。

相关代码为:

template.yaml 文件的相关部分是:

KMSDecryptPolicy不允许使用密钥吗?我错过了什么?谢谢!

编辑:将模板更改为下面的作品,但如果可能的话,我真的很想KMSDecryptPolicy在 lambda 定义中使用。

0 投票
1 回答
524 浏览

amazon-web-services - 如何为我的 api 添加有关 AWS SAM 模板的更多详细信息

我是 AWS 无服务器世界和 SAM 的新手。我刚刚做了一个实际上功能齐全的小型机器人,但是当我开始做一个 SAM 模板来定义它时,我怀疑我无法弄清楚。我有一个 api 网关,它有一个特定的映射模板。我需要 sam 模板包含这个,但它没有,请检查模板:

所以说完这些,我想展示我如何管理 api 上的映射:

我需要弄清楚如何为我的模板详细说明该映射,以便在更新 CloudFormation 上的堆栈时创建它。

也许如果我的方法不好,请告诉我应该怎么做。

0 投票
10 回答
29812 浏览

aws-lambda - 由于配置错误,执行失败:Lambda 函数的权限无效

我正在通过 Visual Studio 使用 AWS Lambda 和 API Gateway 构建无服务器应用程序。我正在使用 C#,并使用无服务器应用程序模型 (SAM) 来部署我的 API。我在 Visual Studio 中构建代码,然后通过发布部署到 Lambda。这是有效的,除了每次我进行新构建并尝试执行 API 调用时,我都会收到以下错误:

由于配置错误,执行失败:Lambda 函数的权限无效

做一些研究后,我发现其他地方提到了这个修复(通过 AWS 控制台完成):

修复:转到 API Gateway > API 名称 > 资源 > 资源名称 > 方法 > 集成请求 > Lambda 函数并重新选择我现有的函数,然后用小复选标记“保存”它。

现在这对我有用,但它破坏了使用 serverless.template (JSON) 构建我的 API 的自动化。有谁知道如何在 serverless.template 文件中解决这个问题?这样我就不需要在控制台中采取行动来解决?这是 serverless.template 文件中我的一种方法的示例

0 投票
2 回答
1916 浏览

node.js - SAM Node.js hello world 应用缺少 axios 模块

我是 Node.js 和 SAM 的新手。

我在此处在线遵循 AWS 快速入门指南,但我使用的是 Node.js。具体来说,我运行了这些命令:

版本:

建造:

这一切都很好地部署了堆栈和函数,但是当我测试它时它被破坏了,因为 axios 模块不存在:

Axios 模块似乎确实在构建目录中,但是:

但不是在 Lambda 中:

AWS 控制台

我已经看到另一个 SO 答案,但它没有帮助,因为我认为 SAM 应该打包它的所有依赖项。

有谁知道出了什么问题?

0 投票
1 回答
3195 浏览

amazon-web-services - 使用 SAM 创建 API Gateway 代理资源

我有一个显然很简单的要求,即在 SAM(亚马逊的无服务器应用程序模型)中创建代理资源。实际上如此简单,以至于亚马逊的文档似乎将此作为练习留给读者!

我想创建一个 AWS API Gateway 包罗万象的端点,以将所有内容代理到另一个 HTTP 服务。

在 AWS 控制台中,我尝试构建的配置如下所示:

在此处输入图像描述

我在这里看到了 Christian Johansen 的这篇出色的帖子和他相关的 Stack Overflow 问题了解如何在 CloudFormation 中做同样的事情。我想我可以在 SAM 中使用该代码,但是,SAM 有其隐式和显式 API,因此如果“正确方法”是引用隐式资源,我想避免创建显式资源。

有谁知道如何做到这一点?

0 投票
0 回答
125 浏览

amazon-web-services - AWS SAM 模板,无法设置 KmsKeyArn

为什么这甚至是一个问题?我设置了一个 aws SES(简单电子邮件服务)来加密我的消息。所以在我的模板中我创建了 ReceiptRule。

上面的代码工作正常!但我当然不想硬编码我的 KmsKeyArn。那么为什么不能像这样设置一个 ref:

这对我不起作用......我还有很多其他地方可以参考KmsMasterKeyArn。它就在这里,在 S3Action 中它不起作用。有人有解决方案吗?

0 投票
1 回答
612 浏览

python - SAM 命令失败:ImportError: cannot import name AliasedEventEmitter

我正在使用一个buildspec.yml文件通过 AWS CodeBuild 运行 SAM 模板,我相信这个问题是由 pip 安装aws-sam-cli包的默认 python 2.7 版本引起的。我不太熟悉如何查看软件包pip installpython3版本。这是我的一个片段buildspec.yml

有没有人遇到过这个问题?