I’m doing this right now. I’m using the new clj-cdk lib which makes it really easy to upload a shadow-cljs zip as part of a generated cloudformation template. really nice experience
happy to talk you through it if you want
TLDR; it creates an API gateway with a Lambda proxy automatically attached with all the necessary perms etc. In my case they are deployed into a Datomic VPC as well but maybe you don’t need that
https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html
I can run this locally using node, no need for SAM
I haven’t done CI yet but the sdk CLI “works on my machine” so should go well in a docker container
@steveb8n Thanks, that’s very interesting, I hadn’t heard of CDK. I’ll read up on that and let you know if I have questions.
the conj video is a quick way to pick it up
Ohhh… this is the one with the funky imports
yes, that’s the one 🙂
Haha, your chance of getting support added to Cursive just went way up 🙂
there’s a few rough edges but works really well. I owe them a blog post once I get it fully working but, for now, I’m happy to help a fellow Kiwi
Ok, let me do some reading/watching and playing around, I’ll let you know if I have questions.
Here is a leiningen template I made for creating clojure lambdas with http://serverless.com. You are using clojurescript but it might be helpful anyways: https://github.com/jsyrjala/aws-lambda-serverless with this: https://www.npmjs.com/package/serverless-scriptable-plugin
clj-sdk
looks really cool! However here’s yet another (minimal but simple) example how to use shadow-cljs
with Serverless Framework https://github.com/vharmain/serverless-healthcheck
Basically npm run deploy
boils down to just npx shadow-cljs release :lib && npx serverless deploy
I've previously used Terraform to deploy Lambdas, it also has a nice support for uploading the code as zip artifact, based of sha of the file
and you can do other necessary infrastructure configuration with Terraform too (Intelli Idea has nice Terraform support)
of course it depends on how one wants to do things, Terraform is a broad avenue to other IaC too, which might be more than just serverless thing, but comes handy if you end up configuring other infrastructure too :)
Any news on https://github.com/cognitect-labs/aws-api/issues/5 ?