De nombreuses applications nécessitent une gestion de session pour l'authentification et les préférences utilisateur. ASP.NET Core est fourni avec un middleware pour stocker les sessions dans un cache distribué.
Le cache distribué par défaut d'ASP.NET n'est en fait pas du tout distribué. Il stocke les données de session dans la mémoire du serveur Web. Lorsqu'un seul serveur Web diffuse un site Web, cette stratégie convient. Toutefois, lorsque de nombreux serveurs Web diffusent un site Web, les utilisateurs du site Web peuvent rencontrer des erreurs et perdre des données.
Pour éviter les erreurs et la perte de données, une application ASP.NET doit utiliser un cache distribué qui stocke les données dans un data store persistant. Ce tutoriel explique comment gérer des sessions sur Cloud Run en les stockant dans Firestore et en chiffrant des cookies avec Cloud Key Management Service.
Objectifs
- Déployez l'application sur Cloud Run.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Cloud de Confiance by S3NS:
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
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Firestore, Cloud Run, Cloud Key Management Service, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Pour créer une base de données Firestore en mode natif, effectuez la procédure suivante :
-
Dans la Cloud de Confiance console, accédez à la page Lecteur Firestore.
Accéder au lecteur Firestore - Sur l'écran Sélectionner un mode Cloud Firestore, cliquez sur Sélectionner le mode natif.
- Sélectionnez un emplacement pour votre base de données Firestore. Ce paramètre d'emplacement correspond à l' emplacement par défaut Cloud de Confiance des ressources de votre Cloud de Confiance projet . Cet emplacement est utilisé pour les Cloud de Confiance services de votre Cloud de Confiance projet qui requièrent un paramètre d'emplacement, plus précisément le bucket Cloud Storage par défaut et l'application App Engine.
- Cliquez sur Créer une base de données.
-
Dans la Cloud de Confiance console, accédez à la page Lecteur Firestore.
-
Dans Cloud Shell, ouvrez le code source de l'application.
Accéder à Cloud ShellCloud Shell vous permet d'accéder en ligne de commande à vos Cloud de Confiance ressources directement depuis votre navigateur.
- Pour télécharger l'exemple de code et accéder au répertoire de l'application, cliquez sur Continuer.
-
Dans Cloud Shell, configurez gcloud CLI pour qu'il utilise votre nouveau Cloud de Confiance projet :
# Configure gcloud for your project gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar l' Cloud de Confiance ID du projet que vous avez créé à l'aide de la Cloud de Confiance console.L'interface de ligne de commande Google Cloud CLI est votre principal moyen d'interaction avec vos Cloud de Confiance ressources via la ligne de commande. Dans ce tutoriel, vous utilisez gcloud CLI pour déployer et surveiller votre application.
Examiner le code source
Le diagramme suivant illustre la façon dont Firestore gère les sessions pour l'application Cloud Run.
La méthode ConfigureServices du fichier Startup.cs configure l'application de sorte qu'elle utilise Cloud KMS pour le chiffrement et Cloud Storage pour le stockage des clés chiffrées.
-
Dans Cloud Shell, cliquez sur
pour lancer l'éditeur et examiner le fichier Startup.cs.
Configurer le Cloud de Confiance projet
-
Dans l'éditeur Cloud Shell, modifiez le
appsettings.jsonfichier et remplacez les deux instances deYOUR-PROJECT-IDpar l'ID de votre Cloud de Confiance projet. Enregistrez le fichier. -
Créez un nouveau trousseau de clés Cloud Key Management Service nommé
dataprotectionprovider:gcloud kms keyrings create dataprotectionprovider --location global
-
Créez une nouvelle clé Cloud Key Management Service nommée
masterkey:gcloud kms keys create masterkey --location global --keyring dataprotectionprovider --purpose=encryption
-
Créez un bucket Cloud Storage pour stocker les clés chiffrées :
gcloud storage buckets create gs://PROJECT_ID-bucket
Déployer et exécuter sur Cloud Run
Vous pouvez utiliser le Cloud Run pour créer et déployer une application qui fonctionne de manière fiable sous une charge élevée et avec de grandes quantités de données.
Ce tutoriel utilise Cloud Run pour déployer le serveur.
Dans votre Cloud Shell, publiez votre application :
dotnet publish -c ReleaseUtilisez Cloud Build pour créer un conteneur Docker et publier dans Container Registry :
gcloud builds submit --tag gcr.io/PROJECT_ID/sessions bin/Release/netcoreapp2.1/publish
Exécutez le conteneur avec Cloud Run :
gcloud beta run deploy sessions --region us-central1 --platform managed --image gcr.io/PROJECT_ID/sessions --allow-unauthenticated
Notez l'URL dans la sortie :
Service [sessions] revision [sessions-00003-xiz] has been deployed and is serving 100 percent of traffic at https://sessions-r3f3em7nuq-uc.a.run.app
Pour afficher l'application en direct, accédez à l'URL que vous avez copiée à l'étape précédente.
Supprimer des sessions
Vous pouvez supprimer les données de session dans la Cloud de Confiance console ou mettre en œuvre une stratégie de suppression automatique. Si vous utilisez des solutions de stockage pour des sessions telles que Memcache ou Redis, les sessions expirées sont automatiquement supprimées.
Déboguer l'application
Si vous ne pouvez pas vous connecter à votre application Cloud Run, vérifiez les points suivants :
- Vérifiez que les commandes de déploiement
gcloudont bien abouti et n'ont généré aucune erreur. S'il y a eu des erreurs (par exemple,message=Build failed), corrigez-les et réessayez de déployer l'application Cloud Run. - Consultez le guide Cloud Run sur l'affichage des journaux.
Effectuer un nettoyage
Supprimer le projet
- Dans la Cloud de Confiance console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.