问题标签 [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 回答
1391 浏览

amazon-web-services - 如何确保仅针对特定路径调用 API Gateway 令牌授权方

我们有一个使用自定义令牌授权者的 API 网关。我们有 2 个 lambdas - GreetingsGenerateToken

我们只希望Greetings lambda 在授权者之后 - 需要使用 SAM 以下列方式调用:

我们如何实现GenerateToken路径不需要 HTTP 令牌进行身份验证?

0 投票
1 回答
346 浏览

amazon-web-services - 如何写入特定的 CloudWatch 组

我有一个名为myTestLogGroupcloudwatch的日志组,它有一个名为myTestLogStream的日志流。

我还有一个名为myTestLambda的 lambda ,代码如下:

我想在指定的myTestLogGroup中看到“Hello World”,而不是默认的 lambda cloudwatch 日志组。

我怎样才能做到这一点?有 SAM 模板吗?

0 投票
1 回答
906 浏览

visual-studio - API Gateway 的 SAM 模板在 Visual Studio 中存在错误(作为无服务器应用程序解决方案的一部分)

我正在尝试在 Visual Studio 中创建一个 SAM 模板(serverless.template)来发布我的 API 网关。我在模板验证(在 Visual Studio 中)中产生了一些我无法解决的错误。发布时,堆栈部署,但没有创建使用计划或 api 密钥(或者更确切地说,它们已创建但在控制台中不可见,如果您尝试查看,它们会显示为“无效参考”它们通过 Cloudformation > Resources,它们根本不会出现在 API Gateway 控制台中)。

错误是:

ServerlessRestApiDeployment26aad1646f 是未知参考

ServerlessRestApiProdStage 是此引用的无效类型

完整的 SAM 模板如下所示。

0 投票
2 回答
2066 浏览

swagger - AWS API Gateway api 密钥在部署后未设置为“true”

我有一个 .NET 解决方案,它使用 SAM 模板生成 cloudformation 来部署堆栈。我期望部署(一旦完成)至少在其中一种方法上具有 API Key Required = true 。但是部署后,创建了密钥和使用计划,但在控制台中所需的 api 密钥仍然设置为 false?

见下文:

在此处输入图像描述

我的 SAM 模板:

我对 swagger 的定义不是很熟悉,我只知道 SAM 和 CloudFormation 的基础知识。我在这里想念什么?我已经查看了有关堆栈溢出的其他答案,并相信我已正确复制了配置。

当我检查生成的 CloudFormation 时,我关于 x-api-key 的条目甚至没有出现在模板中?

编辑:这是我所做的,但是一旦部署完成,API 中所需的 API 密钥仍然没有设置为 true。

0 投票
2 回答
2345 浏览

amazon-web-services - 如何使用 yaml 格式文件在 serverless.yml 中编写嵌套 IF,同时将其用于云形成?

我正在尝试通过 SSM(系统管理器- https://docs.aws.amazon.com/systems-manager/latest 访问在秘密管理器( https://aws.amazon.com/secrets-manager/ )创建的秘密/userguide/systems-manager-parameter-store.html ) 即 AWS 参数存储,并将其存储在 serverless.yml 文件中的自定义 YAML 变量中?我正在尝试通过无服务器框架(https://serverless.com/)实现云形成,并且我正在尝试在云形成中实现嵌套的 if 语句,以便使用下面的代码实现上述功能。

我已经尝试过云形成内在函数 Fn::If 为此但面临这个错误: Fn::If requires a list argument with the first element being a condition

0 投票
1 回答
1058 浏览

aws-lambda - 我可以在 AWS Lambda 中指定 Node.js 命令行选项吗?

我正在使用 AWS SAM 并针对 Node 10.x 运行。

很乐意为实验模块和顶级等待传递标志。

谢谢!

0 投票
1 回答
179 浏览

amazon-web-services - 为 HTTP_PROXY 集成配置 AWS::Serverless::Api 资源

使用控制台,我能够配置 API 网关方法以将带有路径参数的 HTTP 请求传递到另一个 URI。

结果如下所示 在此处输入图像描述

这将使我的请求https://example.com使用相同的(贪婪)路径参数转发到。

尽管这已经足够成功,但我需要能够在 cloudformation 模板中将其指定为 AWS::Serverless::Api 资源。据我所知,无服务器应用程序模型的文档没有提及如何实现这一点。

它可以在无服务器资源上完成,还是我需要使用传统的 AWS::ApiGateway::Resource/Method's?

0 投票
1 回答
1830 浏览

amazon-web-services - SAM API Gateway 使用带有查询参数的方法进行缓存

使用以下 SAM 模板:

现在 /getData 接受查询参数,例如 -/getData?path=abcd/efgh带有响应1234

当我使用路径触发 API 时/getData?path=abcd/efgh,它会被正确缓存 - 以1234.

但是,在我使用不同的查询参数触发 api 之后——例如/getData?path=uvw/xyz,期待789响应,为第一个请求缓存的响应被返回—— 1234

如何确保将缓存应用于具有查询参数的路径?

一系列已发出请求及其各自响应的示例:

/getData?path=abcd/efgh->1234在 11:01:01 返回并缓存

/getData?path=uvw/xyz->789在 11:01:02 返回并缓存

/getData?path=abcd/efgh->1234在 11:01:20 从缓存中返回

/getData?path=uvw/xyz -> 789 is returned from the cache at 11:01:31

EDIT

I am trying to utilise the RequestParameters and then map them to CacheKeyParameters as explained in these 2 articles - https://medium.com/@dougmoscrop/i-set-up-api-gateway-caching-here-are-some-things-that-surprised-me-7526d954fbe6 & https://theburningmonk.com/2016/04/serverless-enable-caching-on-query-string-parameters-in-api-gateway/, but both of these use the serverless framework I am unable to figure out how this would fit into my template

0 投票
8 回答
13973 浏览

amazon-web-services - 无法上传 HelloWorldFunction 资源的 CodeUri 参数引用的工件无

我正在按照本教程学习如何使用SAM

这是我的代码:

模板.yml

index.js

当我跑

我得到错误说Unable to upload artifact None referenced by CodeUri parameter of HelloWorldFunction resource. An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

为什么会这样?

我已经brian-test-sam在我的 AWS 账户上创建了 S3 存储桶。我已检查我的 IAM 用户是否具有AmazonS3FullAccess权限。

命令

说错误是由aws cloudformation package --output-template-file package.yml --s3-bucket brian-test-sam --template-file /path/to/my/files/helloworld/template.yml

我的 cloudformation 有什么问题?

我的 aws cli 版本是aws-cli/1.16.169 Python/3.7.3 Darwin/18.6.0 botocore/1.12.159. 我的npm版本是6.10.1.

0 投票
1 回答
3206 浏览

amazon-web-services - 如何将 SAM(无服务器应用程序模型)模板中的 CRUD 策略定义为多个表以用于 lambda 函数?

我正在使用 SAM(无服务器应用程序模型)并为 dynamo 的 lambda 函数创建策略。默认情况下, AmazonDynamoDBFullAccess在那里,但我想为使用多个表的 lambda 函数提供DynamoDBCrudPolicy 。

在 aws sam docs 中,一张桌子的政策不超过一张

这是一张桌子的 CRUD 政策,我想要一张以上的桌子。