
AWS Lambda Releases Go Support - cle
https://github.com/aws/aws-lambda-go
======
munns
Hi all, no Jeff Barr post for this one, but here is our launch post on the
Compute Blog: [https://aws.amazon.com/blogs/compute/announcing-go-
support-f...](https://aws.amazon.com/blogs/compute/announcing-go-support-for-
aws-lambda/)

~~~
fragmede
Hi Chris, Thanks for your post about Go Lambda, but... should we be worried?
Did something happen to Jeff Barr? Is it time to move to a different cloud
provider?

Your post about Go on Lambda is certainly helpful, but feels like it's aimed
towards at a difference audience than Jeff (Barr, not Bezos).

~~~
jeffbarr
I'm alive and well! Due to the number of launches we have to pick and choose a
subset for the main AWS Blog. Stay tuned for some cool stuff...

------
akerl_
Anybody dissected yet how they're invoking the handler?

Given that you have to compile the binary before pushing it up, it seems weird
to announce "golang support" and not "support for any binary that talks
$insert_serialization_scheme" over stdin/stdout or a network socket or some
such, unless they're doing fancier magic.

~~~
raidan
It looks like the compiled binary just gets exec'd by the Lambda function and
listens on a TCP port (specified by the environment variable
_LAMBDA_SERVER_PORT) which accepts RPC calls to execute the handler using
net/rpc.

The code: [https://github.com/aws/aws-lambda-
go/blob/master/lambda/entr...](https://github.com/aws/aws-lambda-
go/blob/master/lambda/entry.go)

------
EwanToo
I'm curious how heavily used Go is inside Google (as they are the core
developers), does anyone know the approximate ratio of languages used there?

Is Go one of the top 3 languages with Java and JavaScript, or is Python or
something else more significant.

~~~
oh-kumudo
Heard people are using Go for scripting in Google? Which is pretty counter-
intuitive for me.

~~~
tyingq
Hrm. That is stretching the definition of scripting quite a bit. No REPL and
clearly lower level than shell, Perl, Python, Ruby, no dynamic typing, etc.
Not knocking golang at all, but "scripting"?

I would agree that some problems solved by scripting could/should be replaced
with something more precise. But golang wouldn't be a great fill in for true
scripting needs.

------
GolDDranks
Wishing for Rust support too. At the moment we are doing some batch processing
stuff on AWS Lambda using Rust. We are wrapping the Rust binary in a Python
script, which is fiddly and annoying.

~~~
schlarpc
Looks like the "Go support" is just running a precompiled binary that starts a
TCP listener ([https://github.com/aws/aws-lambda-
go/blob/master/lambda/entr...](https://github.com/aws/aws-lambda-
go/blob/master/lambda/entry.go)), so might not be that hard to port...

~~~
raidan
It looks like it is exposing the handler over TCP using net/rpc. I would
imagine that would be quite difficult to port to a different language.

~~~
allan_s
yes basically you would have to implement at least part of this serialisation
format
[https://golang.org/pkg/encoding/gob/](https://golang.org/pkg/encoding/gob/)

if it's a "json" like data that is sent to you (i.e a structure made out of
only primitive types and list/dict) it may be not that hard, but I think it
will be a work with very few value outside of this very specific use case.

------
ctrlrsf
This is very exciting. I've been waiting for Go support for a long time now.
Thanks to the AWS Lambda team!

~~~
munns
Enjoy! We're very happy to bring this to everyone today!

~~~
jsjohnst
Curious if you can comment, but is it in the roadmap to define a standardized
language agnostic gateway interface for Lambda so a binary written in any
language could be deployed by simply implementing the interface?

~~~
munns
Hrmmm, can't talk about roadmap here, but shoot me an email munns @ amazon and
I'd like to understand what you are thinking of.

------
electricEmu
Had anyone had resounding success with serverless technologies?

The CLI tools work, but they're frequently more of an annoyance then running a
single process app. The logical layout and composition falls entirely on the
team. Composing related functions seems to be more troublesome than it's
worth.

Is Go on lambdas exciting because people use Go for cross cutting devops
operations? Is there demand for writing serverless Go?

I see containers and the single process model as much easier to test, lay out
and run. Honestly, I probably just do "get" serverless. What am I missing?

~~~
skywhopper
There are some narrow use cases where yes, stuff like Lambda works well.
Mainly for infrastructure glue and pasting over holes in AWS functionality. I
do not recommend it for any direct production usage.

~~~
methehack
Why?

~~~
skywhopper
I am on the go so I can’t type much, but basically lack of control and insight
into your service—why it’s firing or not, what is backing things up,
unexpected errors can fail near silently, there’s a lot of tooling we take for
granted on servers we control that you start to miss on lambda. Logging is a
lot more work. Scaling is completely invisible and outside of your control.
Weird OS or runtime bugs can surprise you. I don’t have a bullet list with
documentation of each downside, but from experience running at a large-ish
scale, it can be a lot more frustrating than you expect and the benefits in
cost are not necessarily there. But again it depends on the workload and the
use case. I’m not interested in making blanket statements about serverless
tech. It has a promising future but the tools are just not there yet, at least
not with Lambda. I don’t have experience with the competing services.

~~~
munns
This is all fair feedback and this is still early days for what Lambda and the
"serverless" application space will bring. From the AWS's side we've seen a
lot of customer success in various areas from companies moving from more
monolithic or 2/3 tier web apps to single page apps (SPA) + serverless
backend, moving to near real-time streaming with Kinesis+Lambda, processing
records/documents/images/video/etc with S3+Lambda. Alexa Skills are often
powered by it, etc. Bunch of customer stories here:
[https://aws.amazon.com/lambda/resources/#Customer_Case_Studi...](https://aws.amazon.com/lambda/resources/#Customer_Case_Studies)
and yes lots of work (such as this release) to keep making this be the default
compute platform of choice for the future. Disclaimer: AWS Serverless
Developer Advocate

------
dzhiurgis
Why is GCP so slow rolling out Functions? They have only one region so far,
only one nodejs and that still in beta.

Exposing Google's language in the main competitor cloud feels like a major
slap in a face.

~~~
pjmlp
They are used to it.

Only after Microsoft had a better Android emulator experience and C++ support
for Android development on VS, did they care to actually improve their own
tools.

------
Tehchops
Looking for an official announce from Jeff Barr/AWS Blog.

This just looks like a pretty basic Git repo.

~~~
fred256
For what it's worth, I do see "Go 1.x" as one of the choices when I try to
create a new Lambda function in the console.

~~~
Tehchops
Ah, well, that pretty much confirms it :)

------
crb002
Where is the C/C++ support!!!!

~~~
baybal2
I checked their website, and found out that there are none

------
paulmaddox
Blog post with more details:

[https://aws.amazon.com/blogs/compute/announcing-go-
support-f...](https://aws.amazon.com/blogs/compute/announcing-go-support-for-
aws-lambda/)

