Premiers pas avec .NET

Ce tutoriel s'adresse à ceux qui débutent dans la création d'applications sur le cloud, tels que les ingénieurs et les développeurs Web, et qui souhaitent connaître les concepts clés du développement d'applications sur Google Cloud.

Objectifs

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Les instructions de ce document vous permettront d'utiliser les ressources dans les limites du niveau toujours sans frais de Google Cloud. Pour obtenir une estimation des coûts en fonction de votre utilisation prévue, utilisez le simulateur de coût.

Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai sans frais.

Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.

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 sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Pour créer une base de données Firestore en mode natif, effectuez la procédure suivante :
    1. Dans la console Google Cloud , accédez à la page Créer une base de données Firestore.

      Accéder à la page de création de base de données Firestore

    2. Sur l'écran Sélectionner un mode Cloud Firestore, cliquez sur Sélectionner le mode natif.
    3. Sélectionnez un emplacement pour votre base de données Firestore. Ce paramètre d'emplacement correspond à l' emplacement par défaut des ressources Google Cloud pour votre projet Google Cloud . Cet emplacement est utilisé pour les services Google Cloud de votre projet Google Cloud qui requièrent un paramètre d'emplacement, plus précisément votre bucket Cloud Storage par défaut et votre application Cloud Run.
    4. Cliquez sur Créer une base de données.
  7. Activez les API Cloud Run, Cloud Storage JSON, Cloud Logging et Error Reporting.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer les API

  8. Clonez l'exemple de dépôt et ouvrez l'exemple d'application dans Cloud Shell :
    Accéder à Cloud Shell

    Cloud Shell vous permet d'accéder en ligne de commande à vos ressources Google Cloud , directement depuis votre navigateur.

  9. Lorsque vous êtes invité à cloner le dépôt, cliquez sur Confirmer.
  10. Dans Cloud Shell, configurez l'outil gcloud pour qu'il utilise votre nouveau projet Google Cloud  :

    # Configure gcloud for your project
    gcloud config set project PROJECT_ID

    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé à l'aide de la console Google Cloud .

    La Google Cloud CLI est le principal moyen d'interagir avec vos ressources Google Cloud à partir de la ligne de commande. Dans ce tutoriel, l'outil gcloud vous permet de déployer et de surveiller votre application.

Exécuter votre application

  1. Exécutez l'application :
    GOOGLE_CLOUD_PROJECT=PROJECT_ID dotnet run
    
    Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé.
  2. Dans Cloud Shell, cliquez sur Aperçu sur le Web, puis sélectionnez Prévisualiser sur le port 8080. Une nouvelle fenêtre s'affiche avec votre application en cours d'exécution.

Déployer votre application dans Cloud Run

Google Cloud permet d'exécuter du code de plusieurs façons. Dans cet exemple, vous utilisez Cloud Run pour déployer une application évolutive sur Google Cloud. Comme aucune gestion de serveur n'est nécessaire, Cloud Run vous permet de vous concentrer sur l'écriture du code. De plus, Cloud Run évolue automatiquement pour gérer les pics de trafic soudains.

Le Dockerfile indique à Cloud Run comment exécuter votre application :

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "Bookshelf.dll"]

Les Dockerfiles peuvent être plus riches, mais cette configuration fonctionne pour de nombreuses applications.

Cloud Run indique à votre application le port à écouter en définissant la variable d'environnement PORT. L'étagère Program.cs de Bookshelf contient du code pour observer la variable PORT et écouter sur ce port :

using Google.Cloud.Diagnostics.AspNetCore;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using System;

namespace Bookshelf
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseGoogleDiagnostics(Startup.GetProjectId(), "Bookshelf", "0.01")
                .UseStartup<Startup>().UsePortEnvironmentVariable();
    }

    static class ProgramExtensions
    {
        // Google Cloud Run sets the PORT environment variable to tell this
        // process which port to listen to.
        public static IWebHostBuilder UsePortEnvironmentVariable(
            this IWebHostBuilder builder)
        {
            string port = Environment.GetEnvironmentVariable("PORT");
            if (!string.IsNullOrEmpty(port))
            {
                builder.UseUrls($"http://0.0.0.0:{port}"