问题标签 [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.
amazon-web-services - 如何确保仅针对特定路径调用 API Gateway 令牌授权方
我们有一个使用自定义令牌授权者的 API 网关。我们有 2 个 lambdas - Greetings和GenerateToken。
我们只希望Greetings lambda 在授权者之后 - 需要使用 SAM 以下列方式调用:
我们如何实现GenerateToken路径不需要 HTTP 令牌进行身份验证?
amazon-web-services - 如何写入特定的 CloudWatch 组
我有一个名为myTestLogGroupcloudwatch
的日志组,它有一个名为myTestLogStream的日志流。
我还有一个名为myTestLambda的 lambda ,代码如下:
我想在指定的myTestLogGroup中看到“Hello World”,而不是默认的 lambda cloudwatch 日志组。
我怎样才能做到这一点?有 SAM 模板吗?
visual-studio - API Gateway 的 SAM 模板在 Visual Studio 中存在错误(作为无服务器应用程序解决方案的一部分)
我正在尝试在 Visual Studio 中创建一个 SAM 模板(serverless.template)来发布我的 API 网关。我在模板验证(在 Visual Studio 中)中产生了一些我无法解决的错误。发布时,堆栈部署,但没有创建使用计划或 api 密钥(或者更确切地说,它们已创建但在控制台中不可见,如果您尝试查看,它们会显示为“无效参考”它们通过 Cloudformation > Resources,它们根本不会出现在 API Gateway 控制台中)。
错误是:
ServerlessRestApiDeployment26aad1646f 是未知参考
和
ServerlessRestApiProdStage 是此引用的无效类型
完整的 SAM 模板如下所示。
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。
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
aws-lambda - 我可以在 AWS Lambda 中指定 Node.js 命令行选项吗?
我正在使用 AWS SAM 并针对 Node 10.x 运行。
很乐意为实验模块和顶级等待传递标志。
谢谢!
amazon-web-services - 为 HTTP_PROXY 集成配置 AWS::Serverless::Api 资源
使用控制台,我能够配置 API 网关方法以将带有路径参数的 HTTP 请求传递到另一个 URI。
这将使我的请求https://example.com
使用相同的(贪婪)路径参数转发到。
尽管这已经足够成功,但我需要能够在 cloudformation 模板中将其指定为 AWS::Serverless::Api 资源。据我所知,无服务器应用程序模型的文档没有提及如何实现这一点。
它可以在无服务器资源上完成,还是我需要使用传统的 AWS::ApiGateway::Resource/Method's?
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
amazon-web-services - 无法上传 HelloWorldFunction 资源的 CodeUri 参数引用的工件无
这是我的代码:
模板.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
.
amazon-web-services - 如何将 SAM(无服务器应用程序模型)模板中的 CRUD 策略定义为多个表以用于 lambda 函数?
我正在使用 SAM(无服务器应用程序模型)并为 dynamo 的 lambda 函数创建策略。默认情况下, AmazonDynamoDBFullAccess在那里,但我想为使用多个表的 lambda 函数提供DynamoDBCrudPolicy 。
在 aws sam docs 中,一张桌子的政策不超过一张
这是一张桌子的 CRUD 政策,我想要一张以上的桌子。