标签: serverless-plugins

serverless-aws-documentation模型定义和可选字段?

我想定义请求和响应模型.我在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

18
推荐指数
1
解决办法
1742
查看次数

如何从AWS Lambda函数+无服务器框架的URL中删除阶段?

我正在使用无服务器框架在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端点中的部分以及函数中的部分.这devstage配置文件中参数的默认值.

stage: somethingserverless.yml文件中指定将/something在URL 中作为后缀,并作为函数的一部分.

问题:如何从生成的URL端点中删除阶段规范,或者:如何防止该阶段规范成为生成的URL的一部分?

(该阶段是该功能的一部分,很好.这将很容易在AWS Lambda仪表板中分离stagingproduction运行.)

amazon-web-services aws-lambda serverless-framework serverless-plugins

15
推荐指数
5
解决办法
4076
查看次数

无服务器框架AWS 403仅限域的禁止错误

我正在为一个项目进行无服务器设置,并遇到了一个奇怪的错误.在我不得不删除旧证书并创建一个新证书之前,这工作正常.

简而言之,我在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

7
推荐指数
1
解决办法
2648
查看次数

MinimizeSizeCompression 不适用于无服务器

我正在使用新的无服务器压缩选项,最小压缩大小 = 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://medium.com/@OneMuppet_/gzip-deflate-content-from-aws-api-gateway-using-serverless-36e208da4270

并尝试了官方文档中的内容: https://serverless.com/framework/docs/providers/aws/events/apigateway#compression

在此输入图像描述

serverless-framework serverless-plugins aws-serverless

5
推荐指数
1
解决办法
1408
查看次数

使用现有S3存储桶触发Lambda函数时如何避免授予`iam:CreateRole`权限?

我正在尝试部署一个 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

5
推荐指数
2
解决办法
3963
查看次数

无服务器框架,API网关URL何时更改?

我正在使用无服务器框架在AWS上部署带有http端点的lambda。这可以正常工作并返回API网关端点。

我想知道端点URL在什么情况下会更改。我需要URL保持不变,知道删除和重新部署服务将更改URL。

在其他情况下,URL会更改吗?

aws-cloudformation aws-lambda serverless-framework serverless-plugins aws-serverless

4
推荐指数
1
解决办法
328
查看次数

在开发过程中,如何在本地运行我的 cloudflare worker 无服务器功能?

我设法根据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

3
推荐指数
1
解决办法
1683
查看次数

Serverless dynamodb 支持连续备份

使用无服务器框架时如何为 DynamoDB 表启用连续备份?

理想情况下,我会定义一些serverless.yml可以启用自动 DynamoDB 备份的内容

amazon-dynamodb serverless-framework serverless-plugins aws-serverless

2
推荐指数
1
解决办法
809
查看次数