我想定义请求和响应模型.我在AWS中使用无服务器框架,我所看到的一切建议使用无服务器aws文档
README说我需要有这条线 custom.documentation.models.MODELNAME
schema: ${file(models/error.json)}
Run Code Online (Sandbox Code Playgroud)
但是他们没有models/error.json用作基线的示例文件.
在实际的例子中,serverless.yml有一个这样的定义:
-
name: DoSomethingRequest
contentType: "application/json"
schema:
type: array
items:
type: string
Run Code Online (Sandbox Code Playgroud)
这没有为我正在尝试做的事情提供足够的细节.
我的目标是为字符串对象,消息和状态代码数组定义模式.但是,消息和状态代码是可选的.这些也可能是其他模型的一部分,如果可能的话,我不想重复每个模型的定义.
我目前的尝试是:
-
name: ReturnArrayResponse
contentType: "application/json"
schema:
type: array
itemsArray:
type: string
message:
type: string
statusCode:
type: number
Run Code Online (Sandbox Code Playgroud)
我认为这会做我想要的,但我怎么能拥有message并可statusCode选择并在我的其他模特中重复这两个项目?
我很满意我可以放入我的serverless.yml文件或我可以引用的json文件的yml解决方案.
amazon-web-services aws-api-gateway serverless-framework serverless-plugins
我正在使用无服务器框架在AWS Lambda中部署功能,但我无法找到从创建的URL端点中删除阶段说明符的位置/方式.文档似乎没有涉及这一部分.
例如,这是我的serverless.yml(省略了不相关的部分):
service: cd-mock
provider:
name: aws
runtime: python3.6
region: eu-west-1
package:
include:
- handler.py
functions:
index:
handler: handler.index
events:
- http:
path: /
method: get
Run Code Online (Sandbox Code Playgroud)
在a之后serverless deploy,返回以下服务信息:
service: cd-mock
stage: dev
region: eu-west-1
stack: cd-mock-dev
api keys:
None
endpoints:
GET - https://ab1cd2ef3g.execute-api.eu-west-1.amazonaws.com/dev/
functions:
index: cd-mock-dev-index
Run Code Online (Sandbox Code Playgroud)
注意/devURL端点中的部分以及函数中的部分.这dev是stage配置文件中参数的默认值.
stage: something在serverless.yml文件中指定将/something在URL 中作为后缀,并作为函数的一部分.
问题:如何从生成的URL端点中删除阶段规范,或者:如何防止该阶段规范成为生成的URL的一部分?
(该阶段是该功能的一部分,很好.这将很容易在AWS Lambda仪表板中分离staging和production运行.)
amazon-web-services aws-lambda serverless-framework serverless-plugins
我正在为一个项目进行无服务器设置,并遇到了一个奇怪的错误.在我不得不删除旧证书并创建一个新证书之前,这工作正常.
简而言之,我在serverless-stack.com上关注教程系列以供参考,在运行apig-test命令时,我收到以下错误.
{ status: 403,
statusText: 'Forbidden',
data: { message: 'Forbidden' } }
Run Code Online (Sandbox Code Playgroud)
这尖叫对我来说是政策错误.所以我去检查我的策略以确保它允许执行AuthRole,事实上确实如此.我在角色下的IAM部分验证了这一点,并查看了我在设置Cognito时创建的服务Auth_Role.
我不想在这里给出信息过载,但如果有人对下一步的观点有任何想法,我会非常感激,我会提供你想在这里看到的任何细节.
我要注意的一件事是,如果我使用直接URL运行apig-test命令而不是我的域,它可以正常工作.
这证明我的代码没有任何问题,但更多关于我如何设置域的策略设置.
我相应地运行了sls create_domain,我看到了Route53和API网关中的条目,他们已经在很多小时前完成了40分钟.我保证使用正确的证书,因为我擦掉了另一个.
我的自定义域名在过去有效,这要归功于我在这里找到的插件和本教程(https://serverless.com/blog/serverless-api-gateway-domain/),它最近才发现当我意识到我时它停止了工作需要在我的SSL证书中添加更多域名.
所以我假设政策错误在某处,但不知道在哪里看?
amazon-web-services amazon-cognito aws-lambda serverless-framework serverless-plugins
我正在使用新的无服务器压缩选项,最小压缩大小 = 1KB。在有效负载 > 1KB 上一切正常,但有效负载 <1KB 也会被压缩。
无论我选择什么值,minimumCompressionSize 都保持为 0(见下图)
这是我的 serverless.yml:
name: aws
runtime: nodejs8.10
region: eu-west-1
apiGateway:
minimumCompressionSize: 1024
...
Run Code Online (Sandbox Code Playgroud)
你遇到过这个问题吗?如何在不手动更新 aws 上的 api-gateway 配置的情况下解决该问题?
先感谢您。
并尝试了官方文档中的内容: https://serverless.com/framework/docs/providers/aws/events/apigateway#compression
我正在尝试部署一个 AWS Lambda 函数,当 AVRO 文件写入现有 S3 存储桶时,该函数会被触发。
我的serverless.yml配置如下:
service: braze-lambdas
provider:
name: aws
runtime: python3.7
region: us-west-1
role: arn:aws:iam::<account_id>:role/<role_name>
stage: dev
deploymentBucket:
name: serverless-framework-dev-us-west-1
serverSideEncryption: AES256
functions:
hello:
handler: handler.hello
events:
- s3:
bucket: <company>-dev-ec2-us-west-2
existing: true
events: s3:ObjectCreated:*
rules:
- prefix: gaurav/lambdas/123/
- suffix: .avro
Run Code Online (Sandbox Code Playgroud)
当我运行时serverless deploy,出现以下错误:
ServerlessError: An error occurred: IamRoleCustomResourcesLambdaExecution - API: iam:CreateRole User: arn:aws:sts::<account_id>:assumed-role/serverless-framework-dev/jenkins_braze_lambdas_deploy is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::<account_id>:role/braze-lambdas-dev-IamRoleCustomResourcesLambdaExec-1M5QQI6P2ZYUH.
Run Code Online (Sandbox Code Playgroud)
由于 CloudFormation 的工作原理,我看到一些提到需要无服务器,iam:CreateRole但如果我想使用,谁能确认这是否是唯一的解决方案existing: true?除了使用框架添加对配置的支持之前使用的旧无服务器插件之外,还有其他方法吗 …
amazon-iam serverless-framework serverless-plugins aws-serverless
我正在使用无服务器框架在AWS上部署带有http端点的lambda。这可以正常工作并返回API网关端点。
我想知道端点URL在什么情况下会更改。我需要URL保持不变,知道删除和重新部署服务将更改URL。
在其他情况下,URL会更改吗?
aws-cloudformation aws-lambda serverless-framework serverless-plugins aws-serverless
我设法根据https://serverless.com/framework/docs/providers/cloudflare/guide/使用无服务器框架部署了我的第一个 cloudflare 工作器, 并且当我到达云端时它正在工作。
在开发过程中,希望能够在http://localhost:8080/ *上进行测试
使用 serverless.yml 中指定的函数启动本地 http 服务器并处理我的请求的最简单方法是什么?
我查看了https://github.com/serverless/examples/tree/master/google-node-simple-http-endpoint 但没有“开始”脚本。
https://github.com/serverless/上似乎没有关于 cloudflare 的例子
cloudflare serverless-framework serverless serverless-plugins cloudflare-workers
使用无服务器框架时如何为 DynamoDB 表启用连续备份?
理想情况下,我会定义一些serverless.yml可以启用自动 DynamoDB 备份的内容
amazon-dynamodb serverless-framework serverless-plugins aws-serverless