Développement local

Cloud 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 la page Tester une fonction Cloud 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 par Cloud Functions.

Si une plate-forme conforme aux restrictions de localité des données est compatible avec l'une des couches d'abstraction de Cloud 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 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 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 Cloud Functions sur d'autres plates-formes.

Les deux composants de cette architecture que vous pouvez exécuter en dehors de l'infrastructure Cloud Functions sont le framework des fonctions et l'émulateur de fonctions de Google Cloud CLI. 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 Functions, Cloud Run et d'autres plates-formes basées sur des conteneurs :

Topologie d'empaquetage de fonction : fonction, framework des fonctions, pack de création, plate-forme hôte

Types d'événement

Cloud 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 des fonctions est un ensemble de bibliothèques Open Source utilisées dans Cloud Functions pour décomposer les requêtes HTTP entrantes dans des appels de fonctions spécifiques au langage. Vous pouvez les utiliser pour convertir votre fonction en service HTTP exécutable localement.

Émulateur de fonctions utilise Buildpacks cloud natifs etDocker pour encapsuler les services HTTP créés par les frameworks des fonctions et les créer dans des conteneurs exécutables, qui s'exécutent ensuite sur une architecture basée sur des conteneurs Cloud Functions.

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.