Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

Cloud Run functions gebruiken voor Workspace-automatisering

Bouw serverless automatisering rond Workspace met Cloud Run functions (voorheen Cloud Functions): getriggerd door Pub/Sub, HTTP of Cloud Storage, met keyless authenticatie.

Niet elke automatisering verdient een eigen server. Voor losse taken die reageren op een gebeurtenis is een serverless functie ideaal: hij draait alleen wanneer nodig, schaalt vanzelf en kost niets als er niks gebeurt. Cloud Run functions zijn de perfecte lijm tussen Workspace-events en je eigen logica.

In dit artikel zie je hoe je ze inzet voor Workspace-automatisering.

info

Cloud Functions heet nu Cloud Run functions

Sinds 2024 heeft Google "Cloud Functions (2nd gen)" hernoemd naar Cloud Run functions, ondergebracht bij Cloud Run. "Cloud Functions (1st gen)" heet nu "Cloud Run functions (1st gen)". Het event-gedreven model uit dit artikel blijft hetzelfde; je krijgt er de extra schaal- en netwerkinstellingen van Cloud Run bij. Kom je de oude naam nog tegen in de console of docs, dan gaat het over dezelfde dienst.

Waarom serverless

Een Cloud Run function is een stukje code dat draait als reactie op een trigger. Je beheert geen server, geen schaling en geen patches.

  • Geen infrastructuur om te onderhouden.
  • Automatische schaling van nul naar veel en weer terug.
  • Betalen per uitvoering, niet per draaiuur.
  • Ingebouwde identiteit, dus geen sleutelbestanden nodig.
info

Keyless authenticatie ingebouwd

Omdat een functie binnen Google Cloud draait, gebruikt hij de ingebouwde service-identiteit voor authenticatie. Je hoeft geen JSON-sleutel mee te leveren; je kent de functie-identiteit gewoon de juiste rechten toe. Dat is veiliger dan zelf een sleutel beheren, omdat er niets is dat kan uitlekken.

De drie triggers die ertoe doen

Voor Workspace zijn drie triggertypes het meest relevant. Kies op basis van waar de gebeurtenis vandaan komt.

Wil je dit? Gebruik deze trigger
Reageren op een Workspace-event, zoals een nieuwe e-mail Pub/Sub-trigger gekoppeld aan een topic
Een endpoint voor een webhook, bijvoorbeeld een Chat-app HTTP-trigger
Reageren zodra een bestand of export in Cloud Storage verschijnt Cloud Storage-trigger

Een Pub/Sub-getriggerde functie

Dit is het werkpaard voor event-gedreven automatisering. De functie ontvangt het bericht dat Workspace publiceerde, bijvoorbeeld een Gmail-pushmelding.

Zo zet je een Pub/Sub-functie op

  1. Zet een Pub/Sub-topic op en koppel je Workspace-bron eraan met een watch-aanvraag (zoals users.watch in de Gmail API).
  2. Schrijf een functie die de event-payload uit het Pub/Sub-bericht haalt.
  3. Verwerk de gebeurtenis, bijvoorbeeld een nieuw mailbericht ophalen en classificeren.
  4. Deploy de functie met de Pub/Sub-trigger op dat topic.
  5. Ken de functie-identiteit de benodigde Workspace-scopes toe.
import base64, json

def verwerk_event(event, context):
    payload = json.loads(base64.b64decode(event['data']).decode())
    history_id = payload.get('historyId')
    # haal gewijzigde berichten op en verwerk ze
warning

Gmail-watch verloopt

Een Gmail watch is maximaal zeven dagen geldig. Vernieuw hem periodiek, bijvoorbeeld met een dagelijkse Cloud Scheduler-taak, anders stopt je automatisering stilletjes.

Een HTTP-getriggerde functie

Voor webhooks of een Chat-app-endpoint gebruik je een HTTP-trigger. De functie ontvangt een request en stuurt een response terug.

dangerous

Beveilig je endpoint altijd

Een HTTP-functie is publiek bereikbaar tenzij je hem beveiligt. Valideer altijd de afzender: controleer bij een Chat-app het bearer-token van Google, en bij eigen webhooks een gedeeld geheim of een handtekening. Een open endpoint is een uitnodiging voor misbruik.

Authenticatie naar Workspace

De functie heeft een eigen service-identiteit. Voor toegang tot Workspace-gebruikersdata stel je domain-wide delegation in voor die identiteit, net als bij een gewoon service-account, maar zonder dat je ooit een sleutel downloadt.

lightbulb

Hou je aan minste privilege

Beperk de functie-identiteit tot de minimale rechten en scopes. Een functie die alleen mail leest, hoeft geen schrijfrechten te hebben. Met het principe van minste privilege beperk je de schade als de functie ooit gecompromitteerd raakt.

Veelgestelde vragen

Welke talen ondersteunen Cloud Run functions?

Onder andere Python, Node.js, Go, Java, .NET, Ruby en PHP, met recente major-versies die in 2026 algemeen beschikbaar zijn. Kies de taal waarin je je Workspace-client het prettigst gebruikt.

Hoe lang mag een functie draaien?

Dat hangt af van de trigger. Een HTTP-functie kan tot 60 minuten draaien, terwijl event-gedreven functies (zoals Pub/Sub via Eventarc) tot 9 minuten krijgen. Voor langere of zware taken splits je het werk op of gebruik je een Cloud Run-service.

Wat gebeurt er bij een fout?

Bij een Pub/Sub-trigger wordt het bericht opnieuw aangeboden als je een fout teruggeeft. Maak je verwerking daarom idempotent, zodat een herhaalde levering niet dubbel werk doet.

Kan ik geheimen veilig gebruiken?

Ja. Koppel Secret Manager aan je functie zodat geheimen als omgevingsvariabele of gemount bestand beschikbaar zijn, zonder ze in je code te zetten.

Wat is het verschil met een gewone Cloud Run-service?

Een function is een enkel stukje code rond een trigger; een service is een volledige container die je zelf inricht. Sinds de samenvoeging draaien beide op hetzelfde Cloud Run-platform, dus je kunt later opschalen naar een service zonder van omgeving te wisselen.

Met Cloud Run functions bouw je lichtgewicht, veilige en schaalbare automatisering die naadloos op Workspace-events reageert, zonder ooit een server te beheren.