Comparer les fonctions Cloud Run

Comprendre les différences entre les options de déploiement de fonctions de Google Cloudvous aide à transférer les charges de travail de l'API Cloud Functions vers l'API Cloud Run Admin. Ce document détaille les principales différences entre les concepts, la configuration, le déploiement, ainsi que les déclencheurs et les nouvelles tentatives.

Comparaison

Il existe deux versions de Cloud Run Functions :

  • Les fonctions Cloud Run sont la dernière version des fonctions, déployées en tant que service sur Cloud Run. Ils peuvent être créés de l'une des manières suivantes :

    • API Cloud Run Admin (recommandé) : les fonctions créées avec cette API (par exemple, à l'aide de la consoleGoogle Cloud , de gcloud run, de l'API REST ou de Terraform) peuvent être gérées exclusivement à l'aide de l'API Cloud Run Admin.
    • 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 avec l'API Cloud Run Admin ainsi qu'avec l'API Cloud Functions v2. Lorsque vous utilisez cette API, vous spécifiez le déclencheur lors du déploiement de votre fonction. Découvrez comment dissocier une fonction de l'API v2 afin qu'elle puisse être gérée exclusivement à l'aide de l'API Cloud Run Admin.
  • Cloud Run Functions (1re génération), anciennement Cloud Functions (1re génération), est la version d'origine des fonctions avec des déclencheurs d'événements, des environnements d'exécution et une configuration limités. Découvrez comment mettre à niveau vos fonctions de 1re génération vers Cloud Run.

En déployant des fonctions directement sur Cloud Run, vos fonctions sont automatiquement compilé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.

Cloud Run Functions Cloud Run Functions (1re génération)
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 Interne Google
Modèle tarifaire Tarifs de Cloud Run Tarifs de Cloud Run Functions (1re génération)

Configuration

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

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

Cloud Run Functions Cloud Run Functions (1re génération)
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 basées sur des événements créées avec l'API Cloud Functions v2
  • 9 minutes maximum
Taille de l'instance Jusqu'à 16 Gio de RAM avec 4 processeurs virtuels 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 des fonctions créées avec l'API Cloud Functions v2. En conséquence :

  • Les métadonnées de la 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 la création, le déploiement, la modification et la gestion des fonctions :

Cloud Run Functions Cloud Run Functions (1re génération)
ConsoleGoogle Cloud Cloud Run Cloud Run Functions (1re génération)
Cloud SDK
API REST
  • run.googleapis.com (v1 et v2) pour les fonctions créées avec l'API Cloud Run Admin ou l'API Cloud Functions.
Terraform

Déployer des fonctions créées avec l'API Cloud Functions v2

Comme décrit précédemment, vous pouvez utiliser les outils Cloud Run pour déployer et gérer les fonctions créées avec l'API Cloud Functions v2. Si vous devez déployer votre fonction à l'aide de l'API Cloud Functions v2 (par exemple, pour assurer la rétrocompatibilité), procédez comme suit :

  1. Assurez-vous de disposer du rôle IAM Développeur Cloud Functions ou d'un rôle comprenant les mêmes autorisations. Consultez également la section Configuration supplémentaire pour le déploiement.

  2. Exécutez la commande gcloud functions deploy pour déployer une fonction :

    gcloud functions deploy YOUR_FUNCTION_NAME \
       --region=YOUR_REGION \
       --runtime=YOUR_RUNTIME \
       --source=YOUR_SOURCE_LOCATION \
       --entry-point=YOUR_CODE_ENTRYPOINT \
       TRIGGER_FLAGS...
    

    Remplacez les éléments suivants :

    • YOUR_FUNCTION_NAME : nom de la fonction vers laquelle vous souhaitez effectuer le déploiement. Le nom de la fonction doit commencer par une lettre, suivie de 62 caractères au maximum (lettres, chiffres, traits d'union ou traits de soulignement), et doit se terminer par une lettre ou un chiffre. Le nom du service Cloud Run créé pour votre fonction remplacera les traits de soulignement par des traits d'union, et les lettres majuscules seront converties en minuscules. Par exemple, le nom Function_1 deviendra function-1 dans Cloud Run.

    • YOUR_REGION : Google Cloud région dans laquelle vous souhaitez déployer votre fonction. Par exemple, europe-west1.

    • YOUR_RUNTIME : langage utilisé par votre fonction. Pour obtenir la liste des environnements d'exécution compatibles, consultez Compatibilité des environnements d'exécution.

    • YOUR_SOURCE_LOCATION : emplacement du code source de votre fonction.

    • YOUR_CODE_ENTRYPOINT : point d'entrée de votre fonction dans votre code source. Il s'agit du code qui sera exécuté lors de l'exécution de votre fonction. La valeur de ce flag doit être un nom de fonction ou un nom de classe complet qui existe dans votre code source.

Pour en savoir plus sur la commande functions deploy et ses options, consultez la documentation sur gcloud functions deploy.

Déclencheurs et nouvelles tentatives

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

Cloud Run Functions Cloud Run Functions (1re génération)
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 le déploiement de 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 stratégie de nouvelle tentative dans Eventarc et configurez la file d'attente de 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'option --retry.
Vous spécifiez les nouvelles tentatives lors du déploiement de la fonction à l'aide de 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 que vous avez dissocié une fonction, 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 les limites de l'API run.googleapis.com pour Assured Workloads ou pour vous assurer que vos charges de travail utilisent le SKU Cloud Run. Pour en savoir plus, consultez Gérer les fonctions.

Étapes suivantes