Claudio
Claudio

Reputation: 123

AWS Api Gateway proxy for s3 bucket with Serverless Framework

I am deploying a project with the Serverless framework that includes different resources (a lambda function, cognito user pool, cognito identity pool, etc...)

For a previous project, we created from the console (so manually) the configuration for a second Api Gateway (in addition to the one that we configured with Serverless on the lambda) to just be the proxy for our s3 bucket, so we were able to add and get files from the bucket without using the lambda.

Now, I want to make the exact thing to this new project, but instead making the second Api Gateway manually from the console, there is a way to declare this proxy directly from Serverless configuration?

I searched for different solutions, but I didn't find any guide for this.

What I'm trying to make in the configuration is what this amazon guide explains.

Upvotes: 1

Views: 3088

Answers (1)

Erez
Erez

Reputation: 1750

You can use this plugin that allows setting up API Gateway service proxies very easily (I'm one of the collaborators).

serverless.yml example:

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'

Upvotes: 3

Related Questions