Creating Workflows that pause and wait for events

In Workflows, it’s easy to chain various services together into an automated workflow. For some use cases, you might need to pause workflow execution and wait for some input. This input could be a human approval or an external service calling back with data needed to complete the workflow. ​​With Workflows callbacks, a workflow can create an HTTP endpoint and pause execution until it receives an HTTP callback to that endpoint. [Read More]

Worklows state management with Firestore

In Workflows, sometimes, you need to store some state, a key/value pair, in a step in one execution and later read that state in another step in another execution. There’s no intrinsic key/value store in Workflows. However, you can use Firestore as a key/value store and that’s what I want to show you here. If you want to skip to see some samples, check out workflow.yaml. If you want to learn more about it, keep reading. [Read More]

Applying a path pattern when filtering in Eventarc

You can now apply a path pattern when filtering in Eventarc. This is especially useful when you need to filter on resource names beyond exact match. Path pattern syntax allows you to define a regex-like expression that matches events as broadly as you like. Let’s take a look at a concrete example. Without path patterns Let’s say you want to listen for new file creations in a Cloud Storage bucket with an AuditLog trigger. [Read More]

Building APIs with Cloud Functions and API Gateway

Building APIs with Cloud Run If I want to build an API, I usually use Cloud Run. In Cloud Run, you run a container and in that container, you run a web server that handles a base URL in this format: https://<service-name>-<hash>-<region>.a.run.app You can then have the web server handle any path under that base URL such as: https://<service-name>-<hash>-<region>.a.run.app/hello https://<service-name>-<hash>-<region>.a.run.app/bye Building APIs with Cloud Functions In Cloud Functions, you only have access to a function (no web server) and that function can only handle the base path: [Read More]

.NET 6 support in Google Cloud Buildpacks and Cloud Run

I really like the idea of containers, a reproducible context that our apps can rely on. However, I really dislike having to create a Dockerfile to define my container images. I always need to copy & paste it from somewhere and it takes me some time to get it right. That’s why I like using Google Cloud Buildpacks to build containers without having to worry about a Dockerfile. I’m happy to announce that, as of yesterday, Google Cloud Buildpacks now supports . [Read More]

Auto-completion for Workflows JSON and YAML on Visual Studio Code

If you’re like me, you probably use VS Code to author your Workflows JSON or YAML. You also probably expect some kind syntax validation or auto-completion as you work on your workflow. Unfortunately, there’s no VS Code extension for Workflows and Cloud Code for VS Code does not support Workflows. However, there’s a way to get partial auto-completion for Workflows in VS Code. VS Code and JSON Schema VS Code has the ability to display auto-complete suggestions for JSON and YAML files out of the box. [Read More]

Get notified when an expensive BigQuery job executes using Eventarc and SendGrid

Events supported by Eventarc Last week, I put together a list of events supported by Eventarc in our eventarc-samples repo. Thanks to our docs team, this list is now part of our official docs under reference section. After looking at the full list, I started thinking about some use cases enabled by these events. I want to talk about one of those use cases today: How to get notified when an expensive BigQuery job executes? [Read More]

Introducing Eventarc in Pic-a-Daily Serverless Workshop

Pic-a-Daily Serverless Workshop As you might know, Guillaume Larforge and I have a Pic-a-Daily Serverless Workshop. In this workshop, we build a picture sharing application using Google Cloud serverless technologies such as Cloud Functions, App Engine, Cloud Run and more. We recently added a new service to the workshop. In this blog post, I want to talk about the new service. I also want to talk about Eventarc and how it helped us to get events to the new service. [Read More]

Knative v0.18.0 update

I got around to updating my Knative Tutorial from Knative v0.16.0 to the latest Knative Serving v0.18.0 release and Knative Eventing v0.18.1 release. In this short blog post, I want to outline a couple of minor issues I encountered during my upgrade. Note that I skipped v0.17 altogether, some of these changes might have happened in that release. Istio Installation The biggest change I encountered is how Istio is installed for Knative. [Read More]

Knative v0.16.0 update

I finally got around to updating my Knative Tutorial from Knative v0.14.0 to the latest Knative v0.16.0 release. Since I skipped v0.15.0, I’m not sure which changes are due to v0.15.0 vs. v0.16.0. Regardless, there have been some notable changes that I want to outline in this blog post. This is not meant to be an exhaustive list. Feel free to let me know in the comments if there are other notable changes that I should be aware of. [Read More]