Google Cloud Functions
Service serverless de Google Cloud permettant d'exécuter du code événementiel sans gérer l'infrastructure serveur.
Mis à jour le 24 janvier 2026
Google Cloud Functions est la solution serverless de Google Cloud Platform (GCP) qui permet aux développeurs d'exécuter du code en réponse à des événements sans se soucier de l'infrastructure sous-jacente. Ce service entièrement géré s'intègre nativement avec l'écosystème Google Cloud et supporte Node.js, Python, Go, Java, .NET, Ruby et PHP. Google Cloud Functions offre une mise à l'échelle automatique, une facturation à l'utilisation réelle et une intégration transparente avec les services GCP.
Fondements de Google Cloud Functions
- Architecture événementielle basée sur des déclencheurs HTTP, Pub/Sub, Cloud Storage, Firestore et autres sources GCP
- Environnement d'exécution isolé avec provisionnement et mise à l'échelle automatiques de 0 à plusieurs milliers d'instances
- Deux générations disponibles : 1st gen (Cloud Functions) et 2nd gen (basée sur Cloud Run) avec des capacités étendues
- Modèle de facturation au centième de seconde près, facturant uniquement les ressources consommées pendant l'exécution
Avantages de Google Cloud Functions
- Zéro gestion d'infrastructure : concentration totale sur le code métier sans provisionnement ni configuration serveur
- Intégration native avec l'écosystème Google Cloud : BigQuery, Cloud Storage, Firestore, Pub/Sub, Cloud Scheduler
- Développement rapide avec déploiement en quelques secondes via CLI, console ou CI/CD intégrée
- Mise à l'échelle automatique instantanée pour gérer les pics de charge sans configuration préalable
- Rentabilité optimale grâce à la facturation à la milliseconde et l'absence de coûts d'inactivité
Exemple concret d'implémentation
import { CloudEvent } from '@google-cloud/functions-framework';
import { Storage } from '@google-cloud/storage';
import * as sharp from 'sharp';
const storage = new Storage();
/**
* Cloud Function déclenchée lors de l'upload d'une image
* Génère automatiquement des miniatures optimisées
*/
export async function generateThumbnail(cloudEvent: CloudEvent) {
const file = cloudEvent.data;
const bucketName = file.bucket;
const filePath = file.name;
// Ignorer les fichiers déjà traités
if (filePath.includes('thumb_')) {
console.log('Thumbnail already exists, skipping.');
return;
}
const bucket = storage.bucket(bucketName);
const originalFile = bucket.file(filePath);
const thumbnailPath = `thumbnails/thumb_${filePath}`;
try {
// Télécharger l'image originale
const [imageBuffer] = await originalFile.download();
// Créer la miniature avec Sharp
const thumbnail = await sharp(imageBuffer)
.resize(200, 200, {
fit: 'cover',
position: 'center'
})
.webp({ quality: 80 })
.toBuffer();
// Uploader la miniature
await bucket.file(thumbnailPath).save(thumbnail, {
metadata: {
contentType: 'image/webp',
metadata: {
originalFile: filePath,
generatedAt: new Date().toISOString()
}
}
});
console.log(`Thumbnail created: ${thumbnailPath}`);
} catch (error) {
console.error('Error generating thumbnail:', error);
throw error;
}
}# Configuration de déploiement (Cloud Functions 2nd gen)
runtime: nodejs20
entry_point: generateThumbnail
# Déclencheur Cloud Storage
event_trigger:
event_type: google.cloud.storage.object.v1.finalized
resource: projects/_/buckets/my-upload-bucket
# Configuration des ressources
resources:
memory: 512Mi
cpu: 1
timeout: 60s
max_instances: 100
min_instances: 0
# Variables d'environnement
environment_variables:
NODE_ENV: production
LOG_LEVEL: infoMise en œuvre de Google Cloud Functions
- Configuration du projet GCP : créer un projet, activer l'API Cloud Functions et configurer la facturation
- Installation des outils : Google Cloud CLI (gcloud) et configuration de l'authentification locale
- Développement de la fonction : créer le code avec les dépendances nécessaires et définir le point d'entrée
- Configuration du déclencheur : choisir entre HTTP, Pub/Sub, Cloud Storage, Firestore ou autres événements GCP
- Déploiement via CLI : utiliser gcloud functions deploy avec les paramètres de runtime, mémoire et timeout
- Configuration de la sécurité : définir les politiques IAM, les secrets via Secret Manager et les VPC Connector si nécessaire
- Monitoring et observabilité : activer Cloud Logging, Cloud Monitoring et configurer les alertes de performance
Conseil Pro : Optimisation des performances
Pour les Cloud Functions 2nd gen, utilisez les instances minimum (min_instances) pour réduire les démarrages à froid sur les fonctions critiques. Mettez en cache les connexions lourdes (bases de données, APIs) au niveau global plutôt que dans la fonction pour réutilisation entre invocations. Privilégiez Cloud Run pour les workloads nécessitant plus de 60 minutes d'exécution ou des ressources importantes (>16GB RAM).
Outils et services associés
- Cloud Run : alternative pour conteneurs avec plus de contrôle et de flexibilité
- Functions Framework : bibliothèque open-source pour développement et tests locaux
- Cloud Build : CI/CD natif pour déploiement automatisé depuis Git
- Secret Manager : gestion sécurisée des secrets et clés API
- Cloud Scheduler : déclenchement programmé de fonctions via Pub/Sub ou HTTP
- Eventarc : routage événementiel unifié pour plus de 100 sources d'événements Google Cloud
- Cloud Trace et Cloud Profiler : analyse de performance et optimisation du code
Google Cloud Functions représente une solution serverless mature et profondément intégrée à l'écosystème Google Cloud, particulièrement adaptée aux architectures événementielles et microservices. Sa facturation granulaire, son scaling automatique et son intégration native avec les services GCP en font un choix stratégique pour réduire la complexité opérationnelle tout en maintenant performance et fiabilité. Pour les organisations investies dans Google Cloud, Cloud Functions offre un excellent rapport valeur/coût pour traiter des workloads événementiels, automatiser des workflows et construire des APIs légères.
