I’ve just noticed that there is enough info in the Go run-time support for AWS Lambda to show you how to support any language in Lambda. The source for the Go run-time is here: https://github.com/aws/aws-lambda-go
When you make a Go function for AWS Lambda it actual compiles down to an x64 Linux binary. You can run that binary from the command line on your local machine. When you run it, the run-time implements a little server. That server does the request/response stuff with the main Lambda control system that enforces security, starts lambdas, etc. So, by looking at the source in aws-lambda-go you can see exactly how to implement the server.
I haven’t tried this, but it looks to me like you can upload any random x86 Linux binary and claim it is a Go lambda function. This should allow lambdas to be written in C or any other language. Might be a way to get docker based lambdas working too.
These are my observations from playing with Go for about a week. Next week I will convert some larger lambdas over to Go and see how they perform.