Créer et déployer une fonction Cloud Run HTTP avec .NET
Ce guide vous accompagne tout au long du processus d'écriture d'une fonction Cloud Run à l'aide du langage C# de l'environnement d'exécution .NET. Il existe deux types de fonctions Cloud Run :
- Les fonctions HTTP, que vous appelez à partir des requêtes HTTP standards.
- Les fonctions pilotées et déclenchées par des événements dans votre infrastructure cloud tels que les messages sur un sujet Pub/Sub ou les modifications apportées à un bucket Cloud Storage.
Pour en savoir plus, consultez les sections Écrire des fonctions HTTP et Écrire des fonctions pilotées par des événements.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
- Téléchargez, installez et initialisez le SDK Google Cloud.
- Mettez à jour et installez les composants
gcloud
à l'aide de la commande suivante.gcloud components update
-
Préparez votre environnement de développement.
Créer une fonction
Cette section explique comment créer une fonction .NET manuellement. Vous pouvez également utiliser les modèles du framework des fonctions pour créer votre fonction.
Pour créer une fonction, procédez comme suit :
Créez un répertoire sur votre système local pour le code de fonction :
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Linux ou Mac OS X
mkdir ~/helloworld cd ~/helloworld
Créez un fichier
Function.cs
dans le répertoirehelloworld
avec le contenu suivant :
Spécifier des dépendances
Les fonctions Cloud Run Functions nécessitent un ensemble de bibliothèques appelées "framework des fonctions". Pour rendre le framework des fonctions disponible pour votre build, procédez comme suit :
Remplacez le répertoire par le répertoire
helloworld
que vous venez de créer :cd ~/helloworld
Créez un fichier
HelloWorld.csproj
dans le répertoirehelloworld
avec le contenu suivant :
Pour savoir comment rendre d'autres bibliothèques disponibles pour votre build, via des fichiers de projet ou dans le code via l'injection de dépendances, consultez la page Personnalisation via les classes de démarrage des fonctions.
Créer et tester votre fonction localement
Créez et exécutez votre fonction localement à l'aide de la commande suivante :
dotnet run
Testez votre fonction en accédant à
http://localhost:8080
dans un navigateur ou en exécutantcurl localhost:8080
à partir d'une autre fenêtre. Si vous utilisez Cloud Shell, cliquez sur l'icône et sélectionnez Prévisualiser sur le port 8080 pour afficher le résultat de votre fonction.Pour en savoir plus, consultez la section Envoyer des requêtes aux fonctions locales.
Déployer la fonction
Pour déployer votre fonction, exécutez la commande suivante dans le répertoire helloworld
:
gcloud functions deploy csharp-http-function \
--gen2 \
--entry-point=HelloWorld.Function \
--runtime=dotnet8 \
--region=REGION \
--source=. \
--trigger-http \
--allow-unauthenticated
Remplacez REGION par le nom de la région Google Cloud dans laquelle vous souhaitez déployer votre fonction (par exemple, us-west1
).
où csharp-http-function
est le nom enregistré par lequel votre fonction sera identifiée dans la console Google Cloud, et --entry-point
spécifie le nom de classe complet de votre fonction (FQN).
L'option facultative --allow-unauthenticated
vous permet d'accéder à votre fonction sans authentification.
Tester la fonction déployée
Une fois la fonction déployée, notez la propriété
uri
à partir du résultat de la commandegcloud functions deploy
ou récupérez-la à l'aide de la commande suivante:gcloud functions describe csharp-http-function \ --region=REGION
Remplacez REGION par le nom de la région Google Cloud dans laquelle vous avez déployé votre fonction (par exemple,
us-west1
).Testez votre fonction en accédant à
http://localhost:8080
dans un navigateur ou en exécutantcurl localhost:8080
à partir d'une autre fenêtre.Pour en savoir plus, consultez la section Envoyer des requêtes aux fonctions locales.
Afficher les journaux de votre fonction
Afficher les journaux à l'aide de l'outil de ligne de commande
Vous pouvez consulter les journaux de votre fonction à l'aide de l'interface utilisateur Cloud Logging ou de Google Cloud CLI.
Pour afficher les journaux de votre fonction à l'aide de gcloud CLI, exécutez la commande logs read
:
gcloud functions logs read \
--gen2 \
--limit=10 \
--region=REGION \
csharp-http-function
Remplacez REGION par le nom de la région Google Cloud dans laquelle vous avez déployé votre fonction (par exemple, us-west1
).
Le résultat se présente comme suit :
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-06-01 12:47:42.221
LOG: Request finished HTTP/1.1 GET http://my-first-function-l5vqvupfzq-uw.a.run.app/favicon.ico - - - 404 0 - 0.9393ms
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-06-01 12:47:42.220
LOG: Request starting HTTP/1.1 GET http://my-first-function-l5vqvupfzq-uw.a.run.app/favicon.ico - -
Afficher les journaux à l'aide du tableau de bord de journalisation
Pour afficher les journaux de votre fonction à l'aide du tableau de bord de journalisation, ouvrez la page Page de présentation de Cloud Run Functions et cliquez sur le nom de votre fonction dans la liste, puis sur l'onglet Journaux.
Créer une fonction avec le package de modèles
Ces instructions vous ont aidé à créer une fonction simple. En pratique, vous préférerez probablement utiliser les modèles du framework des fonctions pour créer vos fonctions.
Pour créer, compiler et tester une fonction à l'aide des modèles du framework des fonctions, procédez comme suit :
Installez le SDK .NET. Vous pouvez ignorer cette étape si vous utilisez Cloud Shell.
Installez le package de modèles :
dotnet new install Google.Cloud.Functions.Templates
Créez un répertoire pour votre projet et une fonction HTTP vide :
mkdir HelloFunctions cd HelloFunctions dotnet new gcf-http
Cette opération crée
HelloFunctions.csproj
etFunction.cs
dans le répertoire actuel. OuvrezFunction.cs
pour examiner le code et saisissez un message personnalisé si vous le souhaitez.Si vous le souhaitez, suivez les instructions précédentes pour créer et tester votre fonction en local.
Exécutez la commande
gcloud deploy
suivante pour déployer votre fonction :gcloud functions deploy HelloFunctions.Function \ --gen2 \ --entry-point=HelloWorld.Function \ --runtime=dotnet8 \ --region=REGION \ --source=. \ --trigger-http \ --allow-unauthenticated
Remplacez REGION par le nom de la région Google Cloud dans laquelle vous avez déployé votre fonction (par exemple,
us-west1
).
Pour en savoir plus sur le framework des fonctions, consultez la documentation sur le framework des fonctions.