How to integrate API Gateway directly to other AWS services?

enhancement

#1

As I understand Jets the routes.rb file is the API Gateway abstraction. This works beautifully when connecting API Gateway endpoints to lambda functions. However unless I’m mistaken there is no functionality for integrating routes directly to other AWS services (SQS, Kinesis stream etc) without putting a lambda function in between, even though this functionality is available on AWS itself (eg. https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-kinesis.html).

Is there any way of doing this kind of integration with jets currently? If not are there any plans to add such functionality?


#2

@dbackeus

This may help:

It’s a little different between because this is a job event vs TUTORIAL: Create a REST API as an Amazon Kinesis Proxy in API Gateway Currently no plans to implement Kinesis as an API Gateway Resource yet. Curious to play with it though and will have to dig into that in time.


#3

Thanks for the reply.

I’ve figured out how to create a Kinesis stream using “shared resources” as well as how to subscribe to events via kinesis_event. However proxying requests from API Gateway directly to the Kinesis stream is the missing piece of the puzzle.

At my company we have a serverless based app which currently uses this approach to scale more effectively. Essentially it allows us to invoke a lamba once per 100 requests instead of once per single request.

I’m currently looking at Jets::Resource::ApiGateway::Method to see if I can hack something in there which would allow this functionality. But I feel a bit out of my depth considering I’m trying to learn both the basic functionality of the AWS services, the Cloudformation syntax and Jets all at the same time :slight_smile:


#4

That’s an interesting advantage of having API gateway directly proxying to kinesis. Unsure how to integrate. Will let it simmer.