Amazon s3 具有无服务器框架的s3 bucket的AWS Api网关代理

Amazon s3 具有无服务器框架的s3 bucket的AWS Api网关代理,amazon-s3,proxy,aws-api-gateway,serverless-framework,Amazon S3,Proxy,Aws Api Gateway,Serverless Framework,我正在部署一个包含不同资源(lambda函数、cognito用户池、cognito标识池等)的无服务器框架项目 对于上一个项目,我们从控制台(手动)创建了第二个Api网关的配置(除了我们在lambda上使用Serverless配置的那个)作为s3 bucket的代理,因此我们能够在不使用lambda的情况下从bucket添加和获取文件 现在,我想对这个新项目做一个精确的描述,但是不是从控制台手动创建第二个Api网关,而是有一种直接从无服务器配置声明这个代理的方法吗 我寻找了不同的解决方案,但没有

我正在部署一个包含不同资源(lambda函数、cognito用户池、cognito标识池等)的无服务器框架项目

对于上一个项目,我们从控制台(手动)创建了第二个Api网关的配置(除了我们在lambda上使用Serverless配置的那个)作为s3 bucket的代理,因此我们能够在不使用lambda的情况下从bucket添加和获取文件

现在,我想对这个新项目做一个精确的描述,但是不是从控制台手动创建第二个Api网关,而是有一种直接从无服务器配置声明这个代理的方法吗

我寻找了不同的解决方案,但没有找到任何指南

我试图在配置中做的就是这样解释的。

您可以使用允许非常轻松地设置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'

如果我使用的是python 3.7而不是nodejs,那么我是否也可以在项目的主serverless.yml文件中使用它?是的,您可以在main
serverless.yml
中使用它。您可以将其与python一起使用。该插件只是根据您提供的amazon指南将资源添加到您的CloudFormation模板中,因为如果您想自己动手,有很多样板文件。我在github项目中看到,该项目也支持SNS服务。。。但似乎只针对主题。。。我可以通过某种方式将其配置为将平台_端点发送到网关,以向单个设备发送通知,或者不支持它?我不确定我是否理解您关于SNS的问题。您介意在GitHub回购协议中描述您的场景吗?该插件允许您设置一个API网关,使用URL直接向SNS发布消息。如果您将订阅者连接到SNS主题,它将收到已发布的消息。我不想将消息发布到主题,而是发布到单个已注册设备(根据它注册到SNS服务的时间)