无服务器框架-在AWS API Gateway中将现有应用程序从REST切换到HTTP

阿米特

AWS刚刚宣布了对Amazon API Gateway的HTTP API支持。这个新版本有一些非常令人印象深刻的价格和性能数字。最重要的是,AWS表示,使用v2的一般成本将比v1便宜70%,延迟降低50%。我很想在我现有的项目中尝试一下。

我在应用程序中使用无服务器框架。如何转换现有的API以使用此新功能?这是我的serverless.yml文件的样子:

service: amitsn-blog-api

# Use the serverless-webpack plugin to transpile ES6
plugins:
  - serverless-webpack
  - serverless-offline

# serverless-webpack configuration
# Enable auto-packing of external modules
custom:
  webpack:
    webpackConfig: ./webpack.config.js
    includeModules: true

provider:
  name: aws
  runtime: nodejs10.x
  stage: prod
  region: ap-south-1

  # 'iamRoleStatements' defines the permission policy for the Lambda function.
  # In this case Lambda functions are granted with permissions to access DynamoDB.
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:DescribeTable
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
      Resource: "arn:aws:dynamodb:ap-south-1:*:*"
    - Effect: Deny
      Action:
        - logs:CreateLogGroup
        - logs:CreateLogStream
        - logs:PutLogEvents
      Resource: "*"

functions:
  # Defines an HTTP API endpoint that calls the main function in create.js
  # - path: url path is /posts
  # - method: POST request
  # - cors: enabled CORS (Cross-Origin Resource Sharing) for browser cross
  #     domain api call
  # - authorizer: authenticate using the AWS IAM role
  options:
    handler: options.main
    events:
      - http:
          path: posts
          method: options
          cors: true
  create:
    handler: create.main
    events:
      - http:
          path: posts
          method: post
          cors: true
          authorizer: aws_iam
  get:
  # Defines an HTTP API endpoint that calls the main function in get.js
  # - path: url path is /posts/{id}
  # - method: GET request
    handler: get.main
    events:
      - http:
          path: posts/{id}
          method: get
          cors: true
  list:
    # Defines an HTTP API endpoint that calls the main function in list.js
    # - path: url path is /posts
    # - method: GET request
    handler: list.main
    events:
      - http:
          path: posts
          method: get
          cors: true
          integration: lambda
          request:
            template:
              application/json: '{ "postType" : "$input.params(''postType'')" }'
  update:
    # Defines an HTTP API endpoint that calls the main function in update.js
    # - path: url path is /posts/{id}
    # - method: PUT request
    handler: update.main
    events:
      - http:
          path: posts/{id}
          method: put
          cors: true
          authorizer: aws_iam
  delete:
    # Defines an HTTP API endpoint that calls the main function in delete.js
    # - path: url path is /posts/{id}
    # - method: DELETE request
    handler: delete.main
    events:
      - http:
          path: posts/{id}
          method: delete
          cors: true
          authorizer: aws_iam

# Create our resources with separate CloudFormation templates
resources:
  # API Gateway Errors
  - ${file(resources/api-gateway-errors.yml)}
亚伦·斯图文伯格

无服务器框架尚不支持HTTP API,尽管我们目前正在研究它!您可以在此处跟踪工作情况:https : //github.com/serverless/serverless/issues/7052

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将带有无服务器框架的AWS Lambda的查询请求发送到AppSync GraphQL API?

来自分类Dev

在无服务器框架中设置 AWS API 网关自定义授权方

来自分类Dev

使用无服务器框架(AWS Lambda / Gateway),Express,Mongoose / MongoDB Atlas的应用频繁超时

来自分类Dev

在无服务器中将AWS HTTP API创建为资源

来自分类Dev

AWS Lambda和API Gateway是否不使用服务器?为什么将它们称为“无服务器”?

来自分类Dev

如何在无服务器框架中将AWS账户ID作为自定义变量?

来自分类Dev

AWS无服务器:基于请求或HTTP API参数强制并行执行lambda

来自分类Dev

REST API 的服务器与无服务器

来自分类Dev

AWS无服务器框架使用GIT进行协作

来自分类Dev

AWS无服务器框架使用GIT进行协作

来自分类Dev

通过结合使用无服务器框架和AWS,Sequelize的自动生成的表别名会根据环境(脱机与Lambda)而有所不同。

来自分类Dev

找不到.NET Core AWS无服务器应用程序所需的* .deps.json

来自分类Dev

在 AWS 上的无服务器后端为移动应用程序添加用户登录

来自分类Dev

无法使用无服务器使用AWS Lambda和DynamoDB Rest API发送GET请求

来自分类Dev

如何使用无服务器框架在AWS Aurora无服务器中自动创建表

来自分类Dev

带有节点MySQL的无服务器框架

来自分类Dev

分别上载AWS无服务器应用程序lambda吗?(没有ApiGateway设置)

来自分类Dev

具有Cognito / OIDC的Visual Studio AWS无服务器应用程序获取ERR_TOO_MANY_REDIRECTS

来自分类Dev

无服务器框架 AWS 跨账户自定义授权器

来自分类Dev

Nestjs在lambda函数上运行,而没有创建与AWS API Gateway结合的实际服务器?

来自分类Dev

使用无服务器框架时如何从AWS Lambda访问DynamoDB?

来自分类Dev

使用graphql,aws lambda和无服务器框架的多个URL路径选项错误

来自分类Dev

如何引用使用无服务器框架创建的Arn和AWS lambda函数的名称

来自分类Dev

如何使用适用于AWS Lambda的无服务器框架获取最新的Layer版本

来自分类Dev

psycopg2不适用于AWS Lambda上的无服务器框架部署

来自分类Dev

无服务器框架如何创建AWS SQS DeadLetter队列?

来自分类Dev

适用于AWS Code Pipleline中无服务器框架的Buildspec.yaml

来自分类Dev

无服务器框架和多个 AWS 配置文件

来自分类Dev

使用来自 aysnc Javascript http 请求的数据?(aws 无服务器)

Related 相关文章

  1. 1

    如何将带有无服务器框架的AWS Lambda的查询请求发送到AppSync GraphQL API?

  2. 2

    在无服务器框架中设置 AWS API 网关自定义授权方

  3. 3

    使用无服务器框架(AWS Lambda / Gateway),Express,Mongoose / MongoDB Atlas的应用频繁超时

  4. 4

    在无服务器中将AWS HTTP API创建为资源

  5. 5

    AWS Lambda和API Gateway是否不使用服务器?为什么将它们称为“无服务器”?

  6. 6

    如何在无服务器框架中将AWS账户ID作为自定义变量?

  7. 7

    AWS无服务器:基于请求或HTTP API参数强制并行执行lambda

  8. 8

    REST API 的服务器与无服务器

  9. 9

    AWS无服务器框架使用GIT进行协作

  10. 10

    AWS无服务器框架使用GIT进行协作

  11. 11

    通过结合使用无服务器框架和AWS,Sequelize的自动生成的表别名会根据环境(脱机与Lambda)而有所不同。

  12. 12

    找不到.NET Core AWS无服务器应用程序所需的* .deps.json

  13. 13

    在 AWS 上的无服务器后端为移动应用程序添加用户登录

  14. 14

    无法使用无服务器使用AWS Lambda和DynamoDB Rest API发送GET请求

  15. 15

    如何使用无服务器框架在AWS Aurora无服务器中自动创建表

  16. 16

    带有节点MySQL的无服务器框架

  17. 17

    分别上载AWS无服务器应用程序lambda吗?(没有ApiGateway设置)

  18. 18

    具有Cognito / OIDC的Visual Studio AWS无服务器应用程序获取ERR_TOO_MANY_REDIRECTS

  19. 19

    无服务器框架 AWS 跨账户自定义授权器

  20. 20

    Nestjs在lambda函数上运行,而没有创建与AWS API Gateway结合的实际服务器?

  21. 21

    使用无服务器框架时如何从AWS Lambda访问DynamoDB?

  22. 22

    使用graphql,aws lambda和无服务器框架的多个URL路径选项错误

  23. 23

    如何引用使用无服务器框架创建的Arn和AWS lambda函数的名称

  24. 24

    如何使用适用于AWS Lambda的无服务器框架获取最新的Layer版本

  25. 25

    psycopg2不适用于AWS Lambda上的无服务器框架部署

  26. 26

    无服务器框架如何创建AWS SQS DeadLetter队列?

  27. 27

    适用于AWS Code Pipleline中无服务器框架的Buildspec.yaml

  28. 28

    无服务器框架和多个 AWS 配置文件

  29. 29

    使用来自 aysnc Javascript http 请求的数据?(aws 无服务器)

热门标签

归档