适用于s3存储桶的AWS Api Gateway代理与无服务器框架

时间:2019-09-13 12:48:21

标签: amazon-s3 proxy aws-api-gateway serverless-framework

我正在使用Serverless框架部署一个项目,该框架包括不同的资源(lambda函数,cognito用户池,cognito身份池等)

对于以前的项目,我们从控制台(手动)创建了第二个Api网关的配置(除了在lambda上使用Serverless配置的配置之外),仅作为s3存储桶的代理,因此我们无需使用lambda就可以从存储桶中添加和获取文件。

现在,我想对这个新项目进行精确的修改,但是要从控制台手动创建第二个Api网关,有一种方法可以直接从无服务器配置中声明此代理?

我搜索了不同的解决方案,但是我没有找到任何指导。

我要在配置中进行的操作是amazon guide所解释的。

1 个答案:

答案 0 :(得分:1)

您可以使用this插件,该插件可以非常轻松地设置API网关服务代理(我是合作者之一)。

serverless.yml示例:

service: s3-proxy

provider:
  name: aws
  runtime: nodejs10.x

plugins:
  - serverless-apigateway-service-proxy    

custom:
  apiGatewayServiceProxies:
    - s3:
        path: /s3/{key}
        method: post
        action: PutObject
        bucket:
          Ref: S3Bucket
        key:
          pathParam: key
        cors: true

resources:
  Resources:
    S3Bucket:
      Type: 'AWS::S3::Bucket'