Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration with AWS Lambda #33

Open
akahen opened this issue Dec 11, 2018 · 55 comments
Open

Integration with AWS Lambda #33

akahen opened this issue Dec 11, 2018 · 55 comments
Assignees
Labels
Roadmap: Accepted We are planning on doing this work.

Comments

@akahen
Copy link

akahen commented Dec 11, 2018

No description provided.

@bcelenza
Copy link
Contributor

Hey @akahen, thanks for opening an issue for this. Would love to hear more about how you would use App Mesh with Lambda:

  • Would you use the Lambda as a service, an ad-hoc/scheduled (mesh-aware) task, both?
  • Do you use API Gateway with Lambda for service request routing, AuthN/AuthZ, etc.? For a similar service in App Mesh, would you would want to keep it in place for ingress at the edge (i.e. Requests -> APIG -> Lambda -> Envoy -> Other Lambda/ECS VirtualNodes)?
  • Something entirely different?

@augustorosa
Copy link

I would love a use case of APIgateways and lambdas to give you the answer above. Many api gateways against many lambdas with S3 /cloudfront frontend. This is a pretty common pattern.

@Vittoriusly
Copy link

Mainly APIGateway + Lambdas and AppSync.

Are you planning to add a wrapper like X-Ray? Or go really down-level and talk with the Nitro/Hyperplane team (the "Mesh everything" world)?

@bcelenza
Copy link
Contributor

We'd love to hear more customer use cases before narrowing down on the approach, but both ideas are interesting!

@charles-d-burton
Copy link

I think giving Appmesh the ability to directly invoke a lambda would be extremely powerful. For instance I've used Kong in the past to invoke Lambda on an HTTP request and used it as an arbiter between services that run in lambda and those that run in docker or some other long running process. The implications of having a mesh that can interface EKS/Docker/ECS directly with Lambda are huge.

@kennovak-zy
Copy link

We have an API server with many endpoints. It's currently implemented as a monolithic service, and we are transitioning it into a set of micro-services, each of which handles a subset of the API's routes. Some of the micro-services are implemented in containers, and many will be implemented as lambdas. So having requests routed to both containers and lambdas is super-useful.

@QAnders
Copy link

QAnders commented Jan 8, 2019

We have a ton of Lambdas running in basically three "layers". External (API's, datatransformation, validation), Internal (backe-end) and "workers" (schedulers, calling other API's, etc.).
We trigger Lambdas through APIGW and SQS mostly but a lot of Lambda Invoke and some S3 as well.
Our main problem is that it is becoming "messy" and difficult with versioning as we really have no way of handling versions other than creating multiple SQS queues and/or S3 buckets (or in some cases write a "µService Lambda" to handle the routing.

So, for us it would be mostly about triggering µServices (=Lambdas) and Tasks, but as we are very familiar with (and love!) Lambdas we'd be happy if it is implemented in all parts (as a choice).
Being able to fire Request->APIGW->Envoy would also be a good case for us as we have quite a few "ANY" API's where we handle Auth/Authz in the APIGW Authorizer Lambda so that would need to stay and trigger prior to the Envoy...

@bcelenza bcelenza changed the title integration with lambda Integration with AWS Lambda Jan 13, 2019
@coultn coultn transferred this issue from aws/aws-app-mesh-examples Mar 28, 2019
@rhermes62
Copy link

Our team currently has API Gateway that routes to several different lambdas that have several nested layers. We are migrating some of those lambdas to Fargate/ECS and would love to use App Mesh with to manage all of the communication between the microservices.

In order to do that though, we need to be able to have APIGW -> Envoy and APIGW -> Lambda -> Envoy support. As QAnders@ mentioned, having API Gateway in the mix allows us to perform authentication (via custom authorizers, Cognito user pools, or vanilla IAM) and integrate with our existing system.

Given the general "newness" of Fargate and App Mesh, I expect many teams like ours would be coming out of the woods to migrate from Lambda -> Fargate/ECS to mitigate some of Lambdas current pitfalls (cold start times especially in VPCs, concurrent request handling and deduping due to container request level isolation, difficulty of change management for larger more complex systems, etc).

@rverma-nikiai
Copy link

We are looking for solutions to call a virtual service in app mesh directly through aws lambda. Is this usecase a subset of this request?
If there are existing approach, can the team please share the same.

@johnculkin
Copy link

Would love to see something that fixes the issues that Charles described.

@alvarow
Copy link

alvarow commented Apr 26, 2019

+1 on having it invoke Lambda

@bostrowski13
Copy link

we could definiitely see a use case for lambda's behind an API Gateway

@mikebaum
Copy link

+1 for this feature. Currently our application uses both Lambdas and Containerized microservices. I have been searching for a framework that would allow service discovery across both these types of microservices. What I have found so far is a framework called, Gloo. This framework pretty much solves the problem (also using envoy by the way), but introduces a third party API Gateway into the mix. I'd be very interested to use stock AWS Services to achieve the same result as I am leery to introduce a third party mesh into our application. I'm glad to see that this is in the roadmap, if only in the researching phase.

@darionalanya
Copy link

+1. We have a lot of workloads in containers today that really are either static content or simple stateless microservices that could easily run in Lambda. It would be great to have a service mesh across functions and containers so we can provide the same security tools/layer regardless of where the code runs.

@dvins
Copy link

dvins commented Jul 15, 2019

Really disappointing this does not have higher priority after six months. :-(

@badgerparade
Copy link

badgerparade commented Aug 15, 2019

+1 We have a mix on fargate containers and lambdas and it'd be great to have service mesh that covers both.

@rts-gordon
Copy link

@akahen Is there any new messages of App Mesh Integration with AWS Lambda?

@bigdefect
Copy link
Contributor

@Chcp Thanks for your continued interest. Our roadmap project continues to be up to date on the features we're actively working on. If you have any additional input on your use case, please do let us know here so we can incorporate it into our research.

@rts-gordon
Copy link

Hi @efe-selcuk , thanks for your reply.
We have launched many microservices in AWS lambda, they need service call with each other. The best way is use AppMesh in Lambda, otherwise use APIGateway or Step Functions for service call, it is not good enough. So would you like to let me know: when AppMesh available in Lambda? Thank you very much.

@shubharao
Copy link

Hi @Chcp we will update here when we start working on this, we are targeting this feature for next year at this point. Can you please elaborate on what features you need beyond what you can get with API Gateway?

@rts-gordon
Copy link

rts-gordon commented Sep 23, 2019

Hi @shubharao ,
I want some features with "AppMesh in Lambda" such as: service registry, service discovery, Circuit Breaker. It is enough in the early. Thank you very much.

@shubharao shubharao added the Roadmap: Accepted We are planning on doing this work. label Sep 27, 2019
@shubharao shubharao self-assigned this Sep 28, 2019
@isaac-mj
Copy link

Hi @shubharao, do you guys have an update for us in terms of when you will start working on this feature OR the app mesh features that will support?

@canagey
Copy link

canagey commented Feb 9, 2020

Does anyone know a date when the feature will be launched where AppMesh can directly trigger a Lambda?

@turiphro
Copy link

I'm a bit confused, since some AWS-authored posts mention AWS Lambda as one of the supported use cases. For example:

"App Mesh dynamically scales to hundreds of thousands of pods, tasks, EC2 instances, and Lambda functions, adjusting configuration changes accordingly as instances scale up, down, and restart."
https://aws.amazon.com/blogs/compute/learning-aws-app-mesh/

Are these blog posts wrong?

@barbaraokupna
Copy link

here is a roadmap - maybe useful : https://github.com/aws/aws-app-mesh-roadmap/projects/1

@clearwaterstream
Copy link

clearwaterstream commented Aug 27, 2020

The issue is tagged with "Phase: working on it"

As per the FAQ on https://github.com/aws/aws-app-mesh-roadmap:

  • Coming soon - coming up. Think a couple of months out, give or take.
  • We're working on it - in progress, but further out. We might still be working through the implementation details, or scoping stuff out.

So it's "couple of month out" + "give" (i'm presuming) + "further out". Fingers crossed for seeing this released before the end of the year, or Q1 of next :)

If you need something now I would look at other options ...

@gvasquez95
Copy link

Any further progress on this subject?

@dvins
Copy link

dvins commented Dec 14, 2020

It's not just this, #111 is a key part too.

@Stevef-aa
Copy link

Stevef-aa commented Jan 14, 2021

With the introduction on Lambda Extensions I would expect this task to be simplified. Looking at the comments above there is a lot of pent-up demand for this capability so please can we have an update?

@CarlosDomingues
Copy link

@marcomagdy

The App Mesh -> Lambda is the one we're currently working on and will be launched first.

Could you share with us a little more detail on how that's going to work? Are we going to need an API Gateway or will a Virtual Gateway be able to trigger a Lambda directly?

Right now the API Gateway 30 seconds call limit is a huge deal breaker for AWS managed serverless adoption in my company, so if the second case could be supported that would be awesome.

@marcomagdy
Copy link

@CarlosDomingues I don't work at AWS anymore, so I can't comment much. I can tell you, however, that most likely it will use a virtual gateway and won't take a dependency on API Gateway.

@isaac-mj
Copy link

Hello folks, I just noticed that this issue was moved from Researching to Accepted. What does this mean for the feature? Are you not working on it anymore?

@dvins
Copy link

dvins commented Oct 2, 2021

Six months and not a peep from anyone at AWS and going on three years since this ticket was introduced…

@michaelbrewer
Copy link

I am hoping for a ReInvent announcement on this one?

@vishnuvisnu
Copy link

Any update on this issue??

@herrhound
Copy link
Contributor

No specific date yet, but this is definitely on App Mesh roadmap. Building the right experience for mesh to Lambda and Lambda to mesh communication is not straightforward. The next step for us is to post a proposed API design here to collect feedback.

@tomaszdudek7
Copy link

Any updates?

@dvins
Copy link

dvins commented Nov 29, 2021

Find it rather astonishing, this issue, to integrate with AWS's own preeminent serverless Lambda capabilities is now three years old. On the roadmap itself (https://github.com/aws/aws-app-mesh-roadmap/projects/1#card-19515381) it has more upvotes than all of the items in We're Working On It, and is only a few dozen upvotes shy of having more votes than everything in the Researching column too. Yet it still languishes in Accepted.

@beam-freshket
Copy link

When will this one get worked on? I saw it on the roadmap with very high upvotes but it's not in the current work yet.

@herrhound
Copy link
Contributor

@beam-freshket – it's not on our immediate roadmap, and we don't anticipate to release Lambda integration this year. The public roadmap is just one of the tools that we use to collect customer feedback on features. At every moment in time, we work on the top priority projects for our customers, and Lambda integration is not one of them right now.

@G31st
Copy link

G31st commented Jun 1, 2022

The year is 2022... we have survived COVID... dodged WW3... heading into hyper inflation BUT still no lambda support ? PS there is still time to make reInvent:2022 !

@dvins
Copy link

dvins commented Jul 15, 2022

Been following this critical feature request for a long time. After THREE YEARS of waiting for AWS to get into gear on this but seeing nothing other than waffling and often outright lack of response we finally gave up in May, and have since moved forward with a wholly different approach.

@koresar
Copy link

koresar commented Jul 21, 2022

When an AWS architect suggested us the AppMesh it turned out to be... poor experience. One of the reasons is - missing features like this one.

To some extent we can use the newly released AWS feature - Lambda URLs instead.
https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/

@coffeedome
Copy link

Hi there! Any luck with native lambda integration? 🥺

@CarlosDomingues
Copy link

I haven't tried that yet, but during reInvent:2022 they announced VPC Lattice, which looks like a simpler version of App Mesh that also supports Lambda Functions.

Check this Reddit thread for some discussion.

@ar3s3ru
Copy link

ar3s3ru commented Feb 3, 2023

Been following this critical feature request for a long time. After THREE YEARS of waiting for AWS to get into gear on this but seeing nothing other than waffling and often outright lack of response we finally gave up in May, and have since moved forward with a wholly different approach.

What different approach did you decide to move forward with? (If you don't mind me asking)

@pfremm
Copy link

pfremm commented Feb 3, 2023

I was following this issue but seems like vpc lattice will be a better long-term approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Roadmap: Accepted We are planning on doing this work.
Projects
None yet
Development

No branches or pull requests