4 ms·
Cloud Functions PM here. I can give some insight: * We've been running a private early access preview/alpha since last August. * This was our first compiled l
by stewart27 8y ago
Cloud Functions PM here. I can give some insight:
* 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_tester_group https://cloud.google.com/functions/docs/getting-support#beta...
- vira28 8y agoThanks for the response. Would like to see more granular triggers (event types). Especially with Firebase. Also, would like to see more examples with firestore.
- stewart27 8y agoWhich ones would you like to see? We're always looking for new use cases to support.
- vira28 8y agoThese are not specific to Go. firebase authentication -> user account from disabled to enabled. firebase authentication -> when a new phone number is associated. Firestore -> field level triggers. Right now we have only document level trigger.
- elithrar 8y ago> Firestore -> field level triggers. Right now we have only document level trigger. 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#handle_event_data 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.
- vira28 8y agowell, if I have onUpdate trigger, which means my function is going to be triggered for every update on the document (even for the fields that I don't care) You can say that triggering functions shouldn't cost you much, but thats not the way to do right. Correct me if I am wrong. My use-case is simple. Want to get my CF triggered if the value of a particular field in a doc changes. Thanks.
- sjeanpierre 8y agoIs there a reason dependency management happens like this? We currently deploy Go Lambda functions in AWS with the help of the Serverless Framework and it just uploads the cross compiled Binary and not the whole project. Why wouldn't the binary be the deployed unit in this case?
- pstuart 8y agoMaybe Google Native Client support? https://github.com/golang/go/wiki/NativeClient https://github.com/golang/go/wiki/NativeClient
- chrisbroadfoot 8y agoNo, it's not related to this. GOOS=linux and GOARCH=amd64 for GCF deployments. The sandboxing technology used is based on gVisor. We're working on arbitrary binary deployments, you can sign up for that here: g.co/serverlesscontainers Disclaimer: I work on GCP.
- ehsankia 8y agoWhile it's a lot more work for them, and some may already have the infrastructure setup for deploying their own binary, I think having GCP handle the end-to-end there is more user friendly in general. I can quickly write a Cloud Function from any computer, without having to deal with setting up the tool chains. If you want to just run binaries, sounds like Cloud Functions isn't what you're looking for.
- askver 8y agoDoes this effort take you closer to the (supposed) goal of running arbitrary X86/ARM Linux binaries as cloud functions, or is that a completely different direction?
- chrisbroadfoot 8y agoAt the sandboxing level, it's already possible (you can upload any binary and fork/exec it from one of the supported languages). That's made possible by gVisor, which is the underlying sandbox technology used in GAE and GCF. 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.
- askver 8y agoNice!
- wasd 8y agoDo you know of any alphas running for App Engine? I'm interested in testing.
- chrisbroadfoot 8y agoThere's a beta for Go 1.11 on App Engine... https://cloud.google.com/blog/products/application-development/go-1-11-is-now-available-on-app-engine 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.