All guides
IntermediateSelf-pacedFree GuideSection 12/20

Cloud Functions Python et scheduling

Explore Make, Zapier and n8n workflows, data pipelines and their checks. Test a limited automation before expanding it.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 12.3.4 : Cloud Functions Python et scheduling

🎯 Objectif pédagogique

Déployer des Cloud Functions Python (Google Cloud) pour exécuter du code à la demande ou sur un schedule : ETL custom, enrichissement IA, alertes automatiques.


Cloud Functions : du Python dans le cloud

Les Cloud Functions sont des morceaux de code qui s'exécutent dans le cloud sans serveur à gérer. Idéal pour :

  • →Traitement de données planifié (chaque matin à 8h)
  • →Webhooks (répondre à un événement)
  • →ETL custom (extraction/transformation de données)
  • →Enrichissement IA (appeler GPT sur un dataset)

Exemple : enrichissement IA planifié

import functions_framework
from google.cloud import bigquery
from openai import OpenAI
import os

client_bq = bigquery.Client()
client_ai = OpenAI(api_key=os.environ['OPENAI_API_KEY'])

@functions_framework.http
def enrich_leads(request):
    """Enrichit les leads non qualifiés avec GPT."""
    
    # 1. Récupérer les leads non enrichis
    query = """
        SELECT id, company, industry, website
        FROM analytics.leads
        WHERE ai_summary IS NULL
        LIMIT 50
    """
    leads = list(client_bq.query(query))
    
    # 2. Enrichir chaque lead avec GPT
    for lead in leads:
        prompt = f"""
        Analyse cette entreprise et produis un résumé de 2 lignes 
        sur son potentiel comme client pour une solution IA B2B.
        
        Entreprise: {lead.company}
        Secteur: {lead.industry}
        Site: {lead.website}
        """
        
        response = client_ai.chat.completions.create(
            model="gpt-4o-mini",
            messages=[{"role": "user", "content": prompt}],
            max_tokens=100
        )
        
        summary = response.choices[0].message.content
        
        # 3. Mettre à jour BigQuery
        update = f"""
            UPDATE analytics.leads 
            SET ai_summary = '{summary.replace("'", "''")}'
            WHERE id = {lead.id}
        """
        client_bq.query(update)
    
    return f"Enriched {len(leads)} leads"

Déploiement et scheduling

# Déployer la Cloud Function
gcloud functions deploy enrich_leads \
    --runtime python312 \
    --trigger-http \
    --set-env-vars OPENAI_API_KEY=sk-xxx

# Planifier l'exécution quotidienne (Cloud Scheduler)
gcloud scheduler jobs create http enrich-daily \
    --schedule "0 8 * * *" \
    --uri "https://REGION-PROJECT.cloudfunctions.net/enrich_leads" \
    --http-method GET
Quick Check

Quel est l'avantage principal des Cloud Functions pour le traitement de données ?

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.