Tester une fonction Cloud Run avant le déploiement

Ce guide vous explique comment tester une fonction Cloud Run dans la console Google Cloud avant de la déployer. Cette fonctionnalité est disponible pour les fonctions Node.js et Python.

Préparer une fonction à des tests

Pour préparer une fonction à des tests :

  1. Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :

    Accéder à la page de présentation de Cloud Run Functions

    Vérifiez que le projet pour lequel vous avez activé Cloud Run Functions est sélectionné.

  2. Cliquez sur Créer une fonction pour créer une fonction Node.js ou Python, ou sélectionnez une fonction Node.js ou Python existante, puis cliquez sur Modifier pour la modifier.

  3. Cliquez sur Suivant pour accéder à la page de modification du code :

    Capture d'écran montrant le panneau de test de prédéploiement de la fonction

  4. Cliquez sur Tester la fonction pour lancer le processus de test.

  5. Lorsque vous y êtes invité, cliquez sur Démarrer les tests pour autoriser l'utilisation du terminal Cloud Shell.

Exécuter le test

Une fois la procédure ci-dessus terminée, le panneau des événements déclencheurs s'ouvre sur la droite, confirmant que la fonction est prête à être testée. Cliquez sur Run test (Exécuter le test) :

Capture d'écran montrant le panneau de test du prédéploiement de la fonction

Cette phase du processus de test comprend les composants suivants :

  • Panneau "Événement déclencheur" Le panneau des événements déclencheurs est prérempli avec une charge utile correspondant au déclencheur d'événement que vous avez spécifié sur la page de configuration. Il s'agit de l'entrée de votre fonction.
  • Fenêtre de sortie Cloud Shell. La fenêtre de résultat de Cloud Shell affiche le code d'état HTTP et toute réponse renvoyée à l'appelant.
  • L'option Exécuter le test exécute le test.

Vous pouvez observer le résultat du test dans la fenêtre Cloud Shell :

Capture d'écran montrant la fenêtre de sortie Cloud Shell

Terminal Cloud Shell

Vous pouvez afficher la sortie de journalisation de votre fonction dans le terminal Cloud Shell en bas de l'écran. Par exemple, vous verrez la sortie du packaging du code source lorsque vous ouvrirez le panneau de test. Lorsque vous exécutez un test, vous voyez les modifications du code source et le résultat du niveau d'exécution, y compris console.log et les erreurs.

Si votre test échoue, le terminal Cloud Shell affiche un message d'erreur pour vous aider à identifier la cause exacte. Exemple :

[11:31:47 AM] - Provided module can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /workspace/index.js:11
    : 'World';
    ^

SyntaxError: Unexpected token ':'
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1048:15)
    at Module._compile (node:internal/modules/cjs/loader:1083:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Module._load (node:internal/modules/cjs/loader:838:12)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at getUserFunction (/workspace/node_modules/@google-cloud/functions-framework/build/src/loader.js:98:30)
    at async main (/workspace/node_modules/@google-cloud/functions-framework/build/src/main.js:35:32)

[11:31:47 AM] - Could not load the function, shutting down.

Déployer

Une fois les tests terminés, vous pouvez déployer votre fonction comme d'habitude en cliquant sur Déployer.

Limites

Les tests de prédéploiement présentent certaines limites connues.

Accès au réseau

Les tests de prédéploiement s'exécutent dans Cloud Shell, qui n'est pas connecté à votre VPC, même si vous avez spécifié un accès au VPC sans serveur dans les étapes précédentes. Pour tester une fonction Cloud Run qui dépend de la connectivité VPC, vous devez déployer entièrement la fonction Cloud Run.