Guide de démarrage rapide : Créer et déployer une fonction Cloud HTTP avec .NET

Créer et déployer une fonction Cloud HTTP avec .NET

Ce guide vous accompagne tout au long du processus d'écriture d'une fonction Cloud à l'aide du langage C# de l'environnement d'exécution .NET. Il existe deux types de fonctions Cloud :

  • Les fonctions déclenchées par HTTP, que vous appelez à partir de requêtes HTTP standards.
  • Les fonctions déclenchées par des événements, qui vous permettent de gérer les événements depuis votre infrastructure cloud tels que les messages sur un sujet Pub/Sub ou les modifications apportées à un bucket Cloud Storage.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Cloud Functions and Cloud Build.

    Activer les API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activer les API Cloud Functions and Cloud Build.

    Activer les API

  8. Installez et initialisez la gcloud CLI.
  9. Mettez à jour et installez les composants gcloud :
    gcloud components update
  10. Préparez votre environnement de développement.

    Accéder au guide de configuration .NET

Créer une fonction

Cette section explique comment créer manuellement une fonction à partir de zéro. Vous pouvez également utiliser les modèles fournis par le package de modèles.

Pour créer une fonction, procédez comme suit :

  1. 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
    
  2. Créez un fichier nommé Function.cs avec le contenu ci-dessous :

    using Google.Cloud.Functions.Framework;
    using Microsoft.AspNetCore.Http;
    using System.Threading.Tasks;
    
    namespace HelloWorld;
    
    public class Function : IHttpFunction
    {
        public async Task HandleAsync(HttpContext context)
        {
            await context.Response.WriteAsync("Hello World!");
        }
    }

    Cet exemple de fonction renvoie le message d'accueil "Hello World!".

Spécifier des dépendances

L'étape suivante consiste à configurer les dépendances. Vous pouvez configurer deux types de dépendances dans les fonctions Cloud C# :

  • Vous pouvez rendre le framework des fonctions disponible. C'est la tâche que vous allez effectuer dans cette section.
  • Vous pouvez rendre d'autres bibliothèques disponibles à la fois dans les fichiers de projet et au sein du code via l'injection de dépendances. Pour en savoir plus, consultez la section Customization through Functions Startup classes.

Pour rendre le framework des fonctions disponible, remplacez le répertoire par le répertoire helloworld que vous avez créé ci-dessus :

     cd ~/helloworld

Créez ensuite un fichier nommé HelloWorld.csproj avec le contenu ci-dessous :

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Google.Cloud.Functions.Hosting" Version="2.1.0" />
  </ItemGroup>
</Project>

Déployer la fonction

Pour déployer la fonction avec un déclencheur HTTP, exécutez la commande suivante dans le répertoire helloworld :

gcloud functions deploy my-first-function --entry-point HelloWorld.Function --runtime dotnet6 --trigger-http --allow-unauthenticated

my-first-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).

Tester la fonction déployée

  1. Une fois le déploiement de la fonction terminé, notez la propriété httpsTrigger.url ou recherchez-la à l'aide de la commande suivante :

    gcloud functions describe my-first-function
    

    Elle devrait se présenter comme ceci :

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
  2. Accédez à cette URL dans votre navigateur. Le message suivant devrait s'afficher : Hello World!.

Afficher les journaux

Les journaux des fonctions Cloud sont visibles à l'aide de Google Cloud CLI et de l'interface utilisateur de Cloud Logging.

Utiliser l'outil de ligne de commande

Pour afficher les journaux de votre fonction à l'aide de gcloud CLI, exécutez la commande logs read suivie du nom de la fonction :

gcloud functions logs read my-first-function

La sortie doit ressembler à ceci :

LEVEL  NAME               EXECUTION_ID  TIME_UTC                 LOG
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.791  Function execution started
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.958  Function execution took 168 ms, finished with status code: 200
...

Utiliser le tableau de bord Logging

Vous pouvez également consulter les journaux des fonctions Cloud Functions depuis la console Google Cloud.

Utiliser le package de modèles

Les sections ci-dessus décrivent comment créer manuellement une fonction à partir de zéro. À l'avenir, vous exploiterez probablement les modèles pour créer des fonctions.

Pour créer, compiler et tester une fonction à l'aide des modèles, procédez comme suit :

  1. Installez le SDK .NET.

  2. Installez le package de modèles :

    dotnet new install Google.Cloud.Functions.Templates
    
  3. Créez ensuite un répertoire pour votre projet, puis utilisez dotnet new pour créer une fonction HTTP :

    mkdir HelloFunctions
    cd HelloFunctions
    dotnet new gcf-http
    

    Cette opération crée HelloFunctions.csproj et Function.cs dans le répertoire actuel. Ouvrez Function.cs pour examiner le code et saisissez un message personnalisé si vous le souhaitez.

  4. Créez votre fonction en local comme suit :

    dotnet run
    
  5. Une fois le serveur en cours d'exécution, accédez à http://localhost:8080 pour appeler la fonction. Appuyez sur les touches Ctrl+C dans la console pour arrêter le serveur.

    Cette fonction affiche le message "Hello Functions Framework".

Vous pouvez également envoyer des requêtes à cette fonction à l'aide de curl à partir d'une autre fenêtre de terminal :

curl localhost:8080
# Output: Hello Functions Framework