* We've been running a private early access preview/alpha since last August.
* This was our first compiled language on Cloud Functions, which came with its own set of challenges.
* It took us a while to find the right approach for supporting dependencies (both Go Modules and vendoring are supported). Unlike other providers, when you deploy your source code, Cloud Functions will automatically install dependencies listed in your go.mod file.
* Our testers gave us a ton of feedback that helped us polish the developer experience -- we identified and fixed many rough edges related to error messages during deployment/build and errors at runtime. Serverless products can be a bit opaque (since you can't just ssh into a machine), so getting this right is important.
I'd like to say that there was one big, interesting challenge that we had to tackle. But the reality is that we worked through many small details that only became apparent during testing. We wanted to address these so that we could offer a high quality experience for our public beta launch. We owe our alpha testers major credit for helping us find and solve issues.
Speaking of testers -- if you have feedback on the runtime, we'd love to hear from you in our Cloud Functions Beta Tester group [1].
[1] https://cloud.google.com/functions/docs/getting-support#beta...
For what it's worth, if you have an onUpdate trigger on a Firestore database, the event you receive has the before & after state of the change, which would include field-level changes: https://firebase.google.com/docs/functions/firestore-events#...
Is there a specific use-case that this doesn't handle for you?
Note: Work at GCP, not on Functions.
My use-case is simple. Want to get my CF triggered if the value of a particular field in a doc changes. Thanks.
Why wouldn't the binary be the deployed unit in this case?
We're working on arbitrary binary deployments, you can sign up for that here: g.co/serverlesscontainers
Disclaimer: I work on GCP.
As for making that an actual product, we're working on that, too. Sign up for the alpha here:
g.co/serverlesscontainers
Disclaimer: I work on GCP.
https://cloud.google.com/blog/products/application-developme...
If you didn't mean Go, specifically, then the alpha I linked above might be up your alley.
For long-term support of various languages, see the GCP deprecation policy: https://cloud.google.com/terms/deprecation
Especially this sentence: "excluding [...] support for a programming language version that is no longer publicly supported by, or receiving security updates from, the organization maintaining that programming language"
So, that means we're committed to supporting the two most recent major version releases of Go, as per the Go release policy: https://github.com/golang/go/wiki/Go-Release-Cycle#release-m...
Disclaimer: I work on GCP and used to work on Go language releases.
If you just want to execute your function, create another package main and start an HTTP server, as you'd normally do.
There are some examples on this page: https://cloud.google.com/functions/docs/bestpractices/testin...
We're thinking about ways to improve the local development/testing story, and are keen to hear any ideas/feedback.
Disclaimer: I work at Google, and worked on this product.
I work at GCP and on this project.