-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[Exploration] Plugins #3265
Comments
Option 3 would be quite useful for me to address problems like aws/serverless-application-model#2150. |
Option 2 does not seem as useful to me because of the discrepancies between local emulators and |
This is great, waiting for it so much, dreaming of being able to extend and make it able to:
For all above my current solution is a custom sam local emulator, built on flask, but I needed to implement a custom cloudformation parser, far from what real sam supports. And it just lives in my own world instead of sharing with others. Great ideea and hope it shapes up! |
@iongion Great list! |
I see Lambda Layer optimizers as another pertinent example of option 3. |
I can see benefits for all 3 options. I am especially interested in option 3 as it would allow a neat way for us to emulate our own downstream services that might be consumed by the current SAM application and simplify local testing. Custom build actions would also be useful, we use monorepos and custom build steps could allow us to add integration back to our mono-repo framework we use. |
We just announced SAM accelerate which does exactly this. Here is a helpful video to learn more about it, and here is the installation instructions for the beta version. Try it out and let us know if this is helpful! |
Option 2 is most useful to us, because we use AppSync and we have no simulator support otherwise, since the earlier PR to add it was turned down. (We have built our own on Apollo Server, for example) Option 1 is least useful to us: any good IaC system like Terraform will have myriad ways to exec commands and take content-addressed input packages, not do deploys that aren't necessary etc. etc.. So, there's no need for SAM to try to coordinate those; that seems the wrong way around: IaC tools would coordinate SAM instead (or the wider CI/CD system will), if they wanted to use the SAM build? (And can already, today?) So, it's not clear to me what this brings exactly: probably more a question for the thread at #3154 to answer first, before the value would be clear to me. An aside: SAM accelerate is not useful for us because of shared resources, not being near the target region, and we just fundamentally find the local development experience to be much better than any sort of watch-deploy, even with good low-latency internet connections. So, we vastly prefer simulators, and are happy to take a knock in the small details where they might fail to simulate correctly: those almost never cause problems. Primary advantage of Option 2 IMO: then Lambda development can "work in the same way as everything else" (that you can "just start up on localhost:3000", for example, i.e. traditional web backends - we have this already for API GW, but nothing for AppSync, as I understand it) |
I need the ability to run AppSync locally. I don't care about the VTL junk but being able to hit my GraphQL API locally and call lambda functions would be a huge boost to developer productivity, instead of having to do a deployment each time we make a change. |
Option 2 for me. There are a few things that would be handy if SAM could do/help with when running locally:
The first one is most important, the other 3 can be worked around, but something more nicely integrated would avoid the need for extra scripts. Out of the others, I'm personally only using CloudFormation so option 1 not that interesting.
Sorry about the random brain splurge - just a few things that come to mind. Annything in sam that allows us to tweak any behaviour would be great. It might be that option 2 and 3 are really the same - a sort of pipeline where we can transform data on its way through that can be applied to various places in the sam workflow inc local. |
Just a comment on plugins in general... Part of the reason I stopped using serverless.com framework and switched to SAM was the reliance on 3rd party plugins to provide functionality. A few of these plugins were slow at fixing bugs or just stopped being maintained at all. It's been a few years so I don't remember exactly what features these plugins provided. I do remember thinking that the features these plugins provided should have been core functionality. Or perhaps any plugin that became widely used should in some way (monetary or developer resources) be supported by serverless.com. |
Option 3 for me. We have a couple of projects in our organization, where local testing can really help developers and increase developer productivity. |
Option 2 for us at Guild...we are leaning into GraphQL + serverless across our platform and not being able to emulate AppSync locally with SAM is a big pain point |
Moved to Discussions: #4692 Closing |
|
Currently we are exploring ways to extend SAM CLI’s (Serverless Application Model Command Line Interface) functionality by allowing developers to build plugins. We are considering three kinds of plugins -
build
andpackage
steps to be run on IaC frameworks that are not currently supported.Of the three options above, which is the most useful to you and why? Which is the least useful?
The text was updated successfully, but these errors were encountered: