Comparer les fonctions Cloud Run

Ce guide compare les dernières options Google Cloud et les options d'origine pour le déploiement de fonctions. Cette page s'adresse aux utilisateurs qui ont déjà créé des fonctions avec l'API Cloud Functions et qui passent à l'API Cloud Run Admin. Cette page décrit les principales différences dans plusieurs domaines, tels que les concepts, la configuration, le déploiement, les déclencheurs et les nouvelles tentatives.

Comparaison

Il existe deux versions de Cloud Run Functions:

  • Fonctions Cloud Run, qui peuvent être créées de l'une des manières suivantes:

    • API Cloud Run Admin (recommandée): les fonctions créées avec cette API (par exemple, à l'aide de la console Google Cloud, de gcloud run, de l'API REST ou de Terraform) sont déployées en tant que service sur Cloud Run.
    • API Cloud Functions v2: les fonctions créées avec cette API (par exemple, à l'aide de gcloud functions, de l'API REST ou de Terraform) peuvent être gérées à l'aide de l'API Cloud Run Admin et de l'API Cloud Functions v2. Lorsque vous utilisez cette API, vous spécifiez le déclencheur lorsque vous déployez votre fonction. Découvrez comment détacher une fonction d'API v2 afin qu'elle puisse être gérée exclusivement à l'aide de l'environnement de l'API Cloud Run Admin.
  • Cloud Run Functions (1st gen), anciennement Cloud Functions (1re génération), est la version d'origine des fonctions avec des déclencheurs d'événements et une configuration limités.

En déployant des fonctions directement sur Cloud Run, elles seront automatiquement créées en tant que conteneurs et déployées en tant que service Cloud Run.

Concepts

Le tableau suivant récapitule les différences conceptuelles entre les fonctions.

Fonctions Cloud Run Cloud Run Functions (1st gen)
Ancien nom du produit Cloud Functions (2nd gen) Cloud Functions (1st gen)
Modèle de ressource Une fonction est un service Cloud Run déployé à partir du code source. Une fonction est déployée à partir du code source
Terminologie des types de fonctions
  • Fonctions HTTP
  • Les fonctions CloudEvents, également appelées fonctions basées sur des événements, sont compatibles avec tous les environnements d'exécution de langage.
  • Fonctions HTTP
  • Seuls les environnements d'exécution Ruby, .NET et PHP sont compatibles avec CloudEvents. Pour Node.js, Go, Python et Java, créez des fonctions basées sur des événements à l'aide de fonctions d'arrière-plan.
URL HTTPS attribuée run.app

Les fonctions créées avec l'API Cloud Functions v2 disposent également d'un point de terminaison cloudfunctions.net.
cloudfunctions.net
Registre d'images Artifact Registry seulement Artifact Registry ou Container Registry (obsolète)
Rôles IAM pour le déploiement
Infrastructure interne Cloud Run Réservé à Google
Modèle tarifaire Tarifs Cloud Run Tarifs de Cloud Run Functions (1re génération)

Configuration

Cloud Run compile des fonctions dans des conteneurs et les déploie en tant que services. Lorsque vous déployez une fonction sur Cloud Run, vous avez un accès et un contrôle complets sur son comportement. Par exemple, vous pouvez activer le VPC direct, configurer des GPU, utiliser des montages de volume, etc.

Le tableau suivant récapitule les différences de configuration pour les fonctions:

Fonctions Cloud Run Cloud Run Functions (1st gen)
Délai avant expiration de la requête
  • Jusqu'à 60 minutes pour les fonctions déclenchées par HTTP
  • Jusqu'à 9 minutes pour les fonctions CloudEvents créées avec l'API Cloud Functions v2
  • 9 minutes maximum
Taille de l'instance Jusqu'à 16 Gio de RAM avec 4 vCPU Jusqu'à 8 Go de RAM avec 2 vCPU
Simultanéité Jusqu'à 1 000 requêtes simultanées par instance de fonction 1 requête simultanée par instance de fonction
Répartition du trafic Compatible Non compatible

Déploiement

Depuis août 2024, vous pouvez utiliser Cloud Run pour déployer et gérer les fonctions créées avec l'API Cloud Functions V2. En conséquence:

  • Les métadonnées de fonction telles que l'ID d'exécution et les configurations de compilation sont stockées dans la définition du service Cloud Run.
  • Vous pouvez modifier votre fonction en toute sécurité à l'aide de l'API Cloud Run Admin.
  • Vous pouvez vous appuyer sur la définition du service Cloud Run comme source de vérité pour votre fonction.

Toutefois, notez que les fonctions créées avec l'API Cloud Run Admin ne peuvent pas être modifiées avec l'API Cloud Functions.

Le tableau suivant récapitule les différences entre les méthodes de création, de déploiement, de modification et de gestion des fonctions:

Fonctions Cloud Run Cloud Run Functions (1st gen)
Console Google Cloud Cloud Run Cloud Run Functions (1st gen)
SDK Cloud
API REST
  • run.googleapis.com (versions 1 et 2) pour les fonctions créées avec l'API Cloud Run Admin ou l'API Cloud Functions.
Terraform

Déclencheurs et nouvelles tentatives

Le tableau suivant compare les déclencheurs et les nouvelles tentatives pour les fonctions:

Fonctions Cloud Run Cloud Run Functions (1st gen)
Déclencher et appeler une fonction Pour les fonctions créées avec l'API Cloud Run Admin, vous spécifiez les déclencheurs lors du déploiement de la fonction dans la console Google Cloud ou après avoir déployé la fonction lorsque vous utilisez la gcloud CLI.

Pour les fonctions créées avec l'API Cloud Functions v2, vous spécifiez des déclencheurs lors du déploiement de la fonction.
Vous spécifiez des déclencheurs lors du déploiement de la fonction.
Types d'événement Compatibilité avec tous les types d'événements compatibles avec Eventarc, y compris plus de 90 sources d'événements via Cloud Audit Logs. Assistance directe pour les événements de sept sources
Tentatives Pour les fonctions créées avec l'API Cloud Run Admin, mettez à jour la règle de nouvelle tentative dans Eventarc et configurez le sujet de boîte aux lettres mortes dans Pub/Sub.

Pour les fonctions créées avec l'API Cloud Functions v2, vous spécifiez les nouvelles tentatives lors du déploiement de la fonction avec l'indicateur --retry.
Vous spécifiez les nouvelles tentatives lors du déploiement de la fonction avec l'option --retry.

Dissocier votre fonction

Les fonctions créées à l'aide de l'API Cloud Functions v2 (par exemple, à l'aide de gcloud functions, de l'API REST ou de Terraform) peuvent être dissociées de leur environnement d'API existant. Une fois qu'une fonction est dissociée, vous ne pouvez la gérer qu'à l'aide de l'API Cloud Run Admin. Vous pouvez le faire si vos charges de travail doivent rester dans la limite de l'API run.googleapis.com pour les charges de travail assurées, ou pour vous assurer qu'elles utilisent le SKU Cloud Run. Pour en savoir plus, consultez la section Gérer les fonctions dans la documentation de l'API Cloud Functions v2.

Étape suivante