Développement local
Cloud Run Functions est compatible avec plusieurs méthodes d'exécution des fonctions en dehors de l'environnement de déploiement standard. Cela est particulièrement utile pour le développement itératif et dans les cas où vous souhaitez tester votre fonction avant le déploiement.
Cas d'utilisation
La possibilité d'exécuter des fonctions sans les déployer peut simplifier les tests locaux, la conformité avec les restrictions de localité des données et les déploiements multicloud.
Test local
Pour tester une fonction en la redéployant après chaque modification, vous devez attendre le déploiement à chaque fois. En revanche, le test de votre fonction directement dans votre environnement de développement peut raccourcir le cycle de test itératif.
Pour en savoir plus sur les tests, consultez Tester une fonction Cloud Run avant le déploiement.
Restrictions concernant la localisation des données
Dans certains cas, les réglementations ou les règles peuvent nécessiter la conservation de données dans certaines limites géographiques, organisationnelles ou de réseau, qui peuvent ne pas être accessibles à Cloud Run Functions.
Si une plate-forme conforme aux restrictions de localité des données est compatible avec l'une des couches d'abstraction de Cloud Run Functions, vous pouvez exécuter vos fonctions directement sur l'une des couches de cette plate-forme.
Déploiements multiclouds
Les déploiements de fonctions multiclouds sont un modèle établi permettant de limiter le risque de temps d'arrêt dans les environnements critiques. Le déploiement de fonctions dans des environnements autres que Cloud Run Functions réduit le risque que votre application subisse un temps d'arrêt non planifié.
Options de mise en œuvre
Avant de pouvoir configurer votre propre environnement d'hébergement de fonctions, vous devez effectuer deux choix clés :
- La couche d'abstraction que vous souhaitez utiliser
- Le type de fonction à exécuter
Couches d'abstraction
Cloud Run Functions utilise une architecture à plusieurs couches, dont la plupart sont Open Source. Ces composants Open Source vous permettent d'exécuter du code conçu pour les fonctions Cloud Run sur d'autres plates-formes.
Les deux composants de cette architecture que vous pouvez exécuter en dehors de l'infrastructure des fonctions Cloud Run sont le framework des fonctions et l'émulateur de fonctions. Ce document explique l'objectif de chacune de ces couches et leur fonctionnement.
Le schéma ci-dessous illustre la topologie standard des déploiements de fonctions sur Cloud Run Functions, Cloud Run et d'autres plates-formes basées sur des conteneurs :
Types d'événement
Cloud Run Functions propose deux principaux types de fonctions :
Les fonctions HTTP peuvent être déclenchées par des requêtes HTTP arbitraires, telles que des webhooks, tandis que les fonctions basées sur des événements reçoivent des événements produits par d'autres produits Google Cloud.
Choisir une couche d'abstraction
Vous pouvez exécuter des fonctions localement à l'aide du framework des fonctions ou de l'émulateur de fonctions.
Le framework de fonctions est un ensemble de bibliothèques Open Source utilisées dans Cloud Run Functions pour décomposer les requêtes HTTP entrantes en appels de fonctions spécifiques au langage. Vous pouvez les utiliser pour convertir votre fonction en service HTTP exécutable localement.
L'émulateur de fonctions utilise des buildpacks cloud natifs et Docker pour encapsuler les services HTTP créés par le framework des fonctions et les créer dans des conteneurs exécutables, qui s'exécutent ensuite sur l'architecture Cloud Run Functions basée sur des conteneurs.
Les deux options présentent des avantages et des inconvénients :
- Les environnements basés sur des frameworks de fonctions présentent souvent des besoins en ressources réduits
- Le framework des fonctions ne nécessite pas de logiciel de conteneurisation sous-jacent (tel que Docker)
- Les environnements basés sur des frameworks de fonctions nécessitent une infrastructure de langage sous-jacente (par exemple, des gestionnaires de packages et des environnements d'exécution de langage)
- L'émulateur Functions met en miroir les commandes de production, telles que l'appel et le déploiement.
- L'émulateur Functions offre une fidélité élevée pour l'exécution des fonctions lors du déploiement en production.
Exécuter des fonctions localement
Le framework des fonctions et l'émulateur des fonctions fonctionnent en transférant des requêtes HTTP à votre fonction.
Pour savoir comment exécuter des fonctions localement à l'aide du framework des fonctions, consultez la page Exécuter le framework des fonctions.
Consultez la page Exécuter des fonctions à l'aide de l'émulateur de fonction pour plus d'informations sur l'exécution locale de fonctions à l'aide de l'émulateur de fonction.