Labo 07 : Accéder aux secrets des ressources de manière plus sécurisée dans différents services
Interface utilisateur Microsoft Azure
Étant donné la nature dynamique des outils cloud Microsoft, il se peut que vous constatiez des modifications de l’interface utilisateur Azure après le développement du contenu de cette formation. Il se peut donc que certaines instructions et étapes du labo ne s’alignent pas correctement.
Microsoft met cette formation à jour quand la communauté l’alerte sur la nécessité d’y apporter des modifications. Toutefois, compte tenu de la fréquence des mises à jour cloud, il se peut que vous rencontriez des modifications de l’interface utilisateur avant les mises à jour du contenu de cette formation. Si cela se produit, adaptez-vous aux changements, puis appliquez-les dans les laboratoires si nécessaire.
Instructions
Avant de commencer
Se connecter à l’environnement de labo
Connectez-vous à votre machine virtuelle (VM) Windows 11 en utilisant les informations d’identification suivantes :
- Nom d’utilisateur :
Admin
- Mot de passe :
Pa55w.rd
Remarque : Votre instructeur vous fournira des instructions pour la connexion à l’environnement de laboratoire virtuel.
Passer en revue les applications installées
Recherchez la barre des tâches sur votre bureau Windows 11. La barre des tâches contient les icônes des applications que vous allez utiliser dans ce labo, à savoir :
- Microsoft Edge
- Explorateur de fichiers
- Terminal
- Visual Studio Code
Scénario de laboratoire
Dans ce labo, vous allez créer un compte de stockage et une application Azure Function qui accéderont au compte de stockage. Pour faire la démonstration du stockage sécurisé d’informations de chaîne de connexion, vous provisionnerez une ressource Key Vault et gérerez les secrets appropriés pour stocker les informations de chaîne de connexion. Vous gérerez également l’identité du service pour obtenir un accès sécurisé aux informations de chaîne de connexion pour le compte de stockage.
Diagramme de l’architecture
Exercice 1 : Créer des ressources Azure
Tâche 1 : Ouvrir le portail Azure
-
Dans la barre des tâches, sélectionnez l’icône Microsoft Edge.
-
Dans la fenêtre de navigateur ouverte, accédez au portail Azure à l’adresse
https://portal.azure.com
, puis connectez-vous avec le compte que vous allez utiliser pour ce labo.Remarque : Si vous vous connectez au portail Azure la première fois, une visite guidée du portail vous sera proposée. Sélectionnez Prise en main pour faire l’impasse sur la visite guidée et commencer à utiliser le portail.
Tâche 2 : Créer un compte de stockage
-
Dans le portail Azure, utilisez la zone de texte Rechercher des ressources, des services et des documents pour rechercher Comptes de stockage, puis, dans la liste des résultats, sélectionnez Comptes de stockage.
-
Dans le volet Comptes de stockage, sélectionnez + Créer.
-
Dans le volet Créer un compte de stockage, sous l’onglet Informations de base, effectuez les actions suivantes et sélectionnez Vérifier :
Paramètre Action Liste déroulante Abonnement Conservez les valeurs par défaut. Section Groupe de ressources Sélectionnez Créer, entrez ConfidentialStack, , puis sélectionnez OK. Zone de texte Nom de compte de stockage Entrez securestor [votrenom]. Liste déroulante Région Sélectionnez (États-Unis) USA Est Service principal Pas de changements Section Performance Sélectionnez l’option Standard. Liste déroulante Redondance Sélectionner Stockage localement redondant (LRS) La capture d’écran suivante affiche les paramètres configurés dans le volet Créer un compte de stockage.
-
Sous l’onglet Vérifier, passez en revue les options que vous avez sélectionnées dans les étapes précédentes.
-
Sélectionnez Créer pour créer le compte de stockage à l’aide de votre configuration spécifiée.
Remarque : Attendez que la tâche de création soit terminée avant de poursuivre ce labo.
-
Dans la page Vue d’ensemble du déploiement, sélectionnez Accéder à la ressource.
-
Dans le volet Compte de stockage, dans la section Sécurité + réseau, sélectionnez le lien Clés d’accès.
-
Dans la section Clés d’accès, sélectionnez Afficher les clés.
-
Sur le panneau Clés d’accès , passez en revue toute Chaîne de connexion (en utilisant le bouton Afficher), puis enregistrez la valeur des cases Chaîne de connexion dans le Bloc-notes. Le terme Clé correspond aux clés de chiffrement gérées par la plateforme et elles ne sont pas utilisées pour ce labo.
Remarque : peu importe la chaîne de connexion que vous choisissez. Ils sont interchangeables.
Tâche 3: Créer un Azure Key Vault
-
Dans le portail Azure, utilisez la zone de texte Rechercher des ressources, des services et des documents pour rechercher Coffres de clés, puis, dans la liste des résultats, sélectionnez Coffres de clés.
-
Dans le volet Coffres de clés, sélectionnez Créer.
-
Dans le volet Créer un coffre de clés, sous l’onglet Options de base, effectuez les actions suivantes, puis sélectionnez Suivant pour accéder à l’onglet Configuration de l’accès :
Setting Action Liste déroulante Abonnement Conservez les valeurs par défaut. Liste déroulante Groupe de ressources Sélectionnez ConfidentialStack dans la liste Zone de texte Nom du coffre de clés Entrez securevault [votrenom] Liste déroulante Région Sélectionnez USA Est. Liste déroulante Niveau tarifaire sélectionnez Standard. La capture d’écran suivante affiche les paramètres configurés dans le volet Créer un coffre de clés.
-
Sous l’onglet Configuration de l’accès, modifiez le modèle d’autorisation en Stratégie d’accès du coffre, puis sélectionnez Vérifier + créer.
-
Sous l’onglet Vérifier + créer, passez en revue les options que vous avez sélectionnées lors des étapes précédentes.
-
Sélectionnez Créer pour créer le coffre de clés à l’aide de votre configuration spécifiée.
Remarque : Attendez que la tâche de création soit terminée avant de poursuivre ce labo.
Tâche 4: Créer une application de fonction
-
Dans le portail Azure, utilisez la zone de texte Rechercher des ressources, des services et des documents pour rechercher Application de fonction, puis, dans la liste des résultats, sélectionnez Application de fonction.
-
Dans le panneau Application Function, sélectionnez + Créer.
-
Dans la page Sélectionner une option d’hébergement, vérifiez que Consommation est sélectionnée, puis cliquez sur Sélectionner.
-
Dans le panneau Créer une application de fonction (Consommation), dans l’onglet Options de base, effectuez les actions suivantes, puis sélectionnez Suivant : stockage :
Setting Action Liste déroulante Abonnement Conservez les valeurs par défaut. Liste déroulante Groupe de ressources Sélectionnez ConfidentialStack. Zone de texte Nom de l’application de fonction Entrez securefunc [votrenom]. Liste déroulante Pile d’exécution Sélectionnez .NET. Liste déroulante Version Sélectionner 8 (LTS), modèle Worker isolé Liste déroulante Région Sélectionnez la région USA Est Section Système d’exploitation Sélectionnez Linux La capture d’écran suivante affiche les paramètres configurés dans le volet Créer une application de fonction.
-
Sous l’onglet Stockage, effectuez les actions suivantes, puis sélectionnez Vérifier + créer :
Paramètre Action Liste déroulante Compte de stockage. Sélectionnez le compte de stockage securestor [votrenom]. -
Sous l’onglet Vérifier + créer, passez en revue les options que vous avez sélectionnées lors des étapes précédentes.
-
Sélectionnez Créer pour créer l’application de fonction à l’aide de votre configuration spécifiée.
Remarque : Attendez que la tâche de création soit terminée avant de poursuivre ce labo.
Révision
Dans cet exercice, vous avez créé toutes les ressources que vous allez utiliser dans ce labo.
Exercice 2 : Configurer des secrets et identités
Tâche 1 : Configurer une identité de service managée affectée par le système
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez l’application de fonction securefunc [votrenom].
Remarque : il y aura deux ressources, une ressource application de fonction et une ressource Application Insights, portant le même nom. Veillez à sélectionner la ressource application de fonction.
-
Dans le volet Application de fonction, dans la section Paramètres, sélectionnez l’option Identité.
-
Dans le volet Identité, sous l’onglet Affecté par le système, définissez l’État sur Activé, puis sélectionnez Enregistrer.
-
Sélectionnez Oui pour confirmer le paramètre.
Remarque : attendez que l’identité managée affectée par le système soit créée avant de poursuivre ce labo.
Tâche 2 : Créer un secret Key Vault
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez le coffre de clés securevault [votrenom].
-
Dans le volet Coffre de clés, sélectionnez le lien Secrets dans la section Objets.
-
Dans le volet Secrets, sélectionnez + Générer/Importer.
-
Dans le volet Créer un secret, effectuez les actions suivantes, puis sélectionnez Créer:
Paramètre Action Liste déroulante Options de chargement Sélectionnez Manuel Zone de texte Nom Entres stockagecredentials. Zone de texte Valeur secrète Entrez la chaîne de connexion de compte de stockage que vous avez enregistrée précédemment dans ce labo Zone de texte Type de contenu Laisser vide Case à cocher Définir la date d’activation Non sélectionnée Case à cocher Définir la date d’expiration Non sélectionnée Option Activé Sélectionnez Oui La capture d’écran suivante affiche les paramètres configurés dans le volet Créer un secret.
Remarque : attendez que le secret soit créé avant de poursuivre avec ce labo.
-
Revenez au volet Secrets, puis sélectionnez l’élément storagecredentials dans la liste.
-
Dans le volet Versions, sélectionnez la dernière version du secret storagecredentials.
-
Dans le volet Version du secret, effectuez les actions suivantes:
-
Sélectionnez Afficher la valeur du secret pour trouver la valeur du secret.
-
Enregistrez la valeur de la zone de texte Identificateur de secret, car vous l’utiliserez plus tard dans le labo.
Remarque : vous enregistrez la valeur de la zone de texte Identificateur de secret, non celle de la zone de texte Valeur du secret.
-
Tâche 3: Configurer la stratégie d’accès au Coffre de clés
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez le coffre de clés securevault[votrenom].
-
Dans le volet Coffre de clés, sélectionnez le lien Stratégies d’accès dans la section Vue d’ensemble.
-
Dans le volet Stratégies d’accès, sélectionnez + Créer.
-
Dans le panneau Créer une stratégie d’accès, sous la section Autorisations, procédez aux sélections suivantes :
Setting Action Liste déroulante Configurer à partir d’un modèle Laisser vide Cases à cocher Autorisations de clé 0 sélectionné Cases à cocher Autorisations de secret Sélectionnez l’autorisation GET. Cases à cocher Autorisations de certificat 0 sélectionné -
Sélectionnez la section Principal et effectuez les sélections suivantes :
Setting Action Lien Sélectionner le principal Recherchez et sélectionnez le principal de service nommé securefunc [votrenom]. L’identité managée affectée par le système que vous avez créée précédemment dans ce labo a le même nom que la ressource de fonction Azure -
Sélectionnez Vérifier + créer, puis Créer.
Remarque : attendez que les modifications que vous avez apportées aux stratégies d’accès soient enregistrées avant de continuer ce labo.
Tâche 4: Créer un paramètre d’application dérivé du Coffre de clés
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez l’application de fonction securefunc[votrenom].
-
Dans le panneau Application de fonction, dans la section Paramètres, sélectionnez le lien Variables d’environnement.
-
Dans l’onglet Paramètres de l’application, sélectionnez + Ajouter. Entrez les informations suivantes dans la boîte de dialogue contextuelle Ajouter/modifier le paramètre d’application :
Setting Action Zone de texte Nom Entrez StorageConnectionString Zone de texte Valeur Construisez une valeur en utilisant la syntaxe suivante : @Microsoft.KeyVault(SecretUri=<Secret Identifier>)
, où l’espace réservé<Secret Identifier>
représente l’identificateur de secret que vous avez enregistré précédemment dans cet exercice.Case à cocher Paramètre d’emplacement de déploiement Conservez les valeurs par défaut. Remarque : Par exemple, si votre identificateur de secret est
https://securevaultstudent.vault.azure.net/secrets/storagecredentials/17b41386df3e4191b92f089f5efb4cbf
, votre valeur est@Microsoft.KeyVault(SecretUri=https://securevaultstudent.vault.azure.net/secrets/storagecredentials/17b41386df3e4191b92f089f5efb4cbf)
. -
Sélectionnez Appliquer pour fermer la boîte de dialogue contextuelle et retourner à la section Paramètres de l’application.
-
Au bas de la section Paramètres de l’application, sélectionnez Appliquer.
Remarque : Vous recevrez peut-être un avertissement indiquant que votre application peut redémarrer au moment de la mise à jour de ses paramètres. Cliquez sur Confirmer. Attendez que les paramètres de votre application soient enregistrés avant de poursuivre le labo.
Révision
Dans cet exercice, vous avez créé une identité de service managée affectée par le système pour votre application de fonction, puis lui avez donné les autorisations appropriées pour obtenir la valeur d’un secret dans votre coffre de clés. Enfin, vous avez créé un secret que vous avez référencé dans les paramètres de configuration de votre application de fonction.
Exercice 3 : Générer une application Azure Functions
Tâche 1 : Initialiser un projet de fonction
-
Dans la barre des tâches, sélectionnez l’icône Terminal.
-
Exécutez la commande suivante pour modifier le répertoire actuel en le définissant sur le répertoire vide Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
Remarque : dans l’Explorateur Windows, supprimez l’attribut en lecture seule du fichier F:\Allfiles\Labs\07\Starter\func.gitignore.
-
Exécutez la commande suivante afin d’utiliser Azure Functions Core Tools pour créer un projet Functions local dans le répertoire actuel à l’aide du runtime dotnet:
func init --worker-runtime dotnet-isolated --target-framework net8.0 --force
Remarque : vous pouvez consultez la documentation pour [créer un projet][azure-functions-core-tools-new-project] à l’aide d’Azure Functions Core Tools.
-
Exécutez la commande suivante pour générer le projet .NET 8 :
dotnet build
Tâche 2 : Créer une fonction déclenchée par HTTP
-
Exécutez la commande suivante afin d’utiliser Azure Functions Core Tools pour créer une fonction nommée FileParser à l’aide du modèle Déclencheur HTTP:
func new --template "HTTP trigger" --name "FileParser"
Remarque : vous pouvez consultez la documentation pour [créer une fonction][azure-functions-core-tools-new-function] à l’aide d’Azure Functions Core Tools.
-
Fermez l’application Terminal en cours d’exécution.
Tâche 3: Configurer et lire un paramètre d’application
-
Dans l’écran Démarrage, sélectionnez la vignette Visual Studio Code.
-
Dans le menu Fichier, sélectionnez Ouvrir le dossier.
-
Dans la fenêtre Explorateur de fichiers qui s’ouvre, accédez à Allfiles (F):\Allfiles\Labs\07\Starter\func, puis choisissez Sélectionner un dossier.
-
Dans le volet Explorateur de la fenêtre Visual Studio Code, ouvrez le fichier local.settings.json.
-
Notez la valeur actuelle de l’objet Values :
"Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" }
-
Mettez à jour la valeur de l’objet Values en ajoutant un paramètre nommé StorageConnectionString, puis en lui affectant la valeur de chaîne [TEST VALUE]:
"Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "StorageConnectionString": "[TEST VALUE]" }
-
Le fichier local.settings.json devrait maintenant inclure:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "StorageConnectionString": "[TEST VALUE]" } }
-
Sélectionnez Enregistrer pour enregistrer vos modifications dans le fichier local.settings.json.
-
Dans le volet Explorateur de la fenêtre Visual Studio Code, ouvrez le fichier FileParser.cs.
-
Dans l’éditeur de code, remplacez le contenu du code généré automatiquement de la fonction FileParser à partir de la ligne 18 par le code suivant :
[Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); response.Headers.Add("Content-Type", "text/plain; charset=utf-8"); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); response.WriteString(connectionString); return response; }
-
Ignorez les avertissements concernant les valeurs nulles.
-
Passez en revue le code résultant. Celui-ci doit se composer du contenu suivant (ce code retourne la valeur de la variable d’environnement StorageConnectionString) :
using System.Net; using Microsoft.Azure.Functions.Worker; using Microsoft.Azure.Functions.Worker.Http; using Microsoft.Extensions.Logging; namespace func { public class FileParser { private readonly ILogger _logger; public FileParser(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger<FileParser>(); } [Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); response.Headers.Add("Content-Type", "text/plain; charset=utf-8"); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); response.WriteString(connectionString); return response; } } }
-
Sélectionnez Enregistrer pour enregistrer vos modifications dans le fichier FileParser.cs.
Tâche 4: Valider la fonction locale
-
Dans la barre des tâches, sélectionnez l’icône Terminal.
-
Exécutez la commande suivante pour modifier le répertoire actuel en le définissant sur le répertoire vide Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Exécutez la commande suivante pour exécuter le projet d’application de fonction :
func start --build
Remarque : vous pouvez consultez la documentation pour [démarrer le projet d’application de fonction localement][azure-functions-core-tools-start-function] à l’aide d’Azure Functions Core Tools.
-
Sur l’ordinateur lab, démarrez l’invite de commandes.
-
Exécutez la commande suivante pour tester l’exécution de l’appel d’API REST GET contre
http://localhost:7071/api/FileParser
:curl -X GET -i http://localhost:7071/api/FileParser
-
Observez la valeur [TEST VALUE] de la StorageConnectionString retournée par la requête HTTP:
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Tue, 01 Sep 2020 23:35:39 GMT Server: Kestrel Transfer-Encoding: chunked [TEST VALUE]
-
Fermez toutes les instances en cours d’exécution de l’application Terminal et l’application Invite de commandes.
Tâche 5: Déployer la fonction à l’aide d’Azure Functions Core Tools
-
Dans la barre des tâches, sélectionnez l’icône Terminal.
-
Exécutez la commande suivante pour modifier le répertoire actuel en le définissant sur le répertoire vide Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Utilisez la commande suivante pour vous connecter à l’interface de ligne de commande Azure (CLI):
az login
-
Dans la fenêtre du navigateur Microsoft Edge, entrez les informations d’identification du compte que vous utilisez pour accéder à votre abonnement Azure, puis sélectionnez Se connecter.
-
Revenez à la fenêtre Terminal actuellement ouverte. Attendez la fin du processus de connexion.
-
Exécutez la commande suivante pour publier le projet d’application de fonction (remplacez l’espace réservé
<function-app-name>
par le nom de l’application de fonction que vous avez créée précédemment dans ce labo) :func azure functionapp publish <function-app-name> --dotnet-version 8.0
Remarque : par exemple, si votre Nom d’application de fonction est securefuncstudent, votre commande sera
func azure functionapp publish securefuncstudent --force
. Vous pouvez consulter la documentation pour [publier le projet d’application de fonction local][azure-functions-core-tools-publish-azure] à l’aide d’Azure Functions Core Tools. -
Attendez que le déploiement soit finalisé avant de poursuivre le labo.
-
Fermez l’application Terminal en cours d’exécution.
Tâche 6 : Tester le paramètre d’application dérivé du Coffre de clés
-
Dans la barre des tâches, sélectionnez l’icône Microsoft Edge, puis l’onglet contenant le portail Azure.
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez l’application de fonction securefunc[votrenom].
-
Dans le volet Application de fonction, sélectionnez l’option Vue d’ensemble.
-
Sous l’onglet Fonctions en bas de la page Vue d’ensemble, sélectionnez la fonction FileParser existante.
-
Dans le volet Fonction, dans la section Développeur, sélectionnez l’option Code + Test.
-
Dans l’éditeur de fonction, sélectionnez Tester/Exécuter.
-
Dans le volet affiché automatiquement, dans la liste Méthode HTTP, sélectionnez GET.
-
Sélectionnez Exécuter pour tester la fonction.
-
Passez en revue les résultats de la série de tests. Le résultat devrait être votre chaîne de connexion au Stockage Azure.
Révision
Dans cet exercice, vous avez utilisé une identité de service pour lire la valeur d’un secret stocké dans Key Vault, et retourné cette valeur en tant que résultat d’une application de fonction.
Exercice 4 : Accéder au données du Stockage Blob Azure
Tâche 1 : Charger un exemple de blob de stockage
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez le compte de stockage securestor [votrenom].
-
Dans le volet Compte de stockage, dans la section Conteneurs, sélectionnez le lien Stockage de données.
-
Dans la section Conteneurs, sélectionnez + Conteneur.
-
Dans la fenêtre contextuelle Nouveau conteneur, effectuez les actions suivantes, puis sélectionnez Créer:
Paramètre Action Zone de texte Nom Entrez drop. -
Revenez à la section Conteneurs, puis accédez au conteneur drop nouvellement créé.
-
Dans le volet Conteneur, sélectionnez Charger.
-
Dans la fenêtre Charger l’objet blob, effectuez les actions suivantes, puis sélectionnez Charger :
Paramètre Action Section Fichiers Sélectionnez Parcourir les fichiers ou utilisez la fonctionnalité glisser-déplacer. Fenêtre Explorateur de fichiers Accédez à Allfiles (F):\Allfiles\Labs\07\Starter, sélectionnez le fichier records.json, puis Ouvrir Case à cocher Remplacer si les fichiers existent déjà Vérifiez que cette case est cochée Remarque : Attendez que le chargement du blob soit terminé avant de poursuivre ce labo.
-
Revenez au volet Conteneur, puis sélectionnez le blob records.json dans la liste de blobs.
-
Dans le volet Blob, recherchez les métadonnées du blob, puis copiez l’URL du blob.
-
Dans la barre des tâches, activez le menu contextuel pour l’icône Microsoft Edge, puis sélectionnez Nouvelle fenêtre.
-
Dans la nouvelle fenêtre du navigateur, faites référence à l’URL que vous avez copiée pour le blob.
-
Un message d’erreur indiquant que l’accès public n’est pas autorisé doit maintenant s’afficher.
Remarque : Ceci est normal, car l’accès anonyme n’est pas activé pour nos blobs.
Tâche 2 : Extraire et configurer le Kit de développement logiciel (SDK) Azure pour .NET
-
Dans la barre des tâches, sélectionnez l’icône Terminal.
-
Exécutez la commande suivante pour modifier le répertoire actuel en le définissant sur le répertoire vide Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Exécutez la commande suivante pour ajouter la version 12.18.0 du package Azure.Storage.Blobs à partir de NuGet :
dotnet add package Azure.Storage.Blobs --version 12.18.0
Remarque : le package NuGet Azure.Stockage.Blobs fait référence au sous-ensemble du Kit de développement logiciel (SDK) Azure pour .NET requis pour écrire du code pour Stockage Blob Azure.
-
Fermez l’application Terminal en cours d’exécution.
-
Dans l’écran Démarrage, sélectionnez la vignette Visual Studio Code.
-
Dans le menu Fichier, sélectionnez Ouvrir le dossier.
-
Dans la fenêtre Explorateur de fichiers qui s’ouvre, accédez à Allfiles (F):\Allfiles\Labs\07\Starter\func, puis choisissez Sélectionner un dossier.
-
Dans le volet Explorateur de la fenêtre Visual Studio Code, ouvrez le fichier FileParser.cs.
-
Ajoutez des directives using pour les espaces de noms Azure.Storage.Blobs et Azure.Storage.Blobs.Models :
using Azure.Storage.Blobs; using Azure.Storage.Blobs.Models;
-
Remplacez le contenu de la méthode FileParser actuelle à partir de la ligne 19 par le code suivant :
[Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); /* Create a new instance of the BlobClient class by passing in your connectionString variable, a "drop" string value, and a "records.json" string value to the constructor */ BlobClient blob = new BlobClient(connectionString, "drop", "records.json"); // Download the content of the referenced blob BlobDownloadResult downloadResult = blob.DownloadContent(); // Retrieve the value of the downloaded blob and convert it to string response.WriteString(downloadResult.Content.ToString()); //return the response return response; }
-
Ignorez l’avertissement concernant les valeurs nulles.
-
Passez en revue le code résultant. Celui-ci doit se composer du contenu suivant (ce code retourne le contenu du blob téléchargé à partir du compte de stockage désigné par la variable d’environnement StorageConnectionString) :
namespace func { public class FileParser { private readonly ILogger _logger; public FileParser(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger<FileParser>(); } [Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); /* Create a new instance of the BlobClient class by passing in your connectionString variable, a "drop" string value, and a "records.json" string value to the constructor */ BlobClient blob = new BlobClient(connectionString, "drop", "records.json"); // Download the content of the referenced blob BlobDownloadResult downloadResult = blob.DownloadContent(); // Retrieve the value of the downloaded blob and convert it to string response.WriteString(downloadResult.Content.ToString()); //return the response return response; } } }
-
Sélectionnez Enregistrer pour enregistrer vos modifications dans le fichier FileParser.cs.
Tâche 3 : Déployer et valider l’application Azure Functions
-
Dans la barre des tâches, sélectionnez l’icône Terminal.
-
Exécutez la commande suivante pour modifier le répertoire actuel en le définissant sur le répertoire vide Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Exécutez la commande suivante pour vous connecter à Azure CLI :
az login
-
Dans la fenêtre du navigateur Microsoft Edge, entrez l’adresse e-mail et le mot de passe de votre compte Microsoft, puis sélectionnez Se connecter.
-
Revenez à la fenêtre Terminal actuellement ouverte. Attendez la fin du processus de connexion.
-
Exécutez la commande suivante pour republier le projet d’application de fonction (remplacez l’espace réservé
<function-app-name>
par le nom de l’application de fonction que vous avez utilisée précédemment dans ce labo) :func azure functionapp publish <function-app-name> --dotnet-version 8.0
Remarque : par exemple, si votre Nom d’application de fonction est securefuncstudent, votre commande sera
func azure functionapp publish securefuncstudent
. Vous pouvez consulter la documentation pour [publier le projet d’application de fonction local][azure-functions-core-tools-publish-azure] à l’aide d’Azure Functions Core Tools. -
Attendez que le déploiement soit finalisé avant de poursuivre le labo.
-
Fermez l’application Terminal en cours d’exécution.
-
Dans la barre des tâches, sélectionnez l’icône Microsoft Edge, puis reportez-vous au portail Azure.
-
Dans le volet de navigation du portail Azure, sélectionnez le lien Groupes de ressources.
-
Dans le volet Groupes de ressources, sélectionnez le groupe de ressources ConfidentialStack.
-
Dans le volet ConfidentialStack, sélectionnez l’application de fonction securefunc[votrenom].
-
Dans le volet Application de fonction, sélectionnez l’option Vue d’ensemble.
-
Sous l’onglet Fonctions de la page Vue d’ensemble, sélectionnez la fonction FileParser existante.
-
Dans le volet Fonction, dans la section Développeur, sélectionnez l’option Code + Test.
-
Dans l’éditeur de fonction, sélectionnez Tester/Exécuter.
-
Dans le volet affiché automatiquement, dans la liste Méthode HTTP, sélectionnez GET.
-
Sélectionnez Exécuter pour tester la fonction.
-
Passez en revue les résultats de la série de tests. La sortie contient le contenu du blob $/drop/records.json stocké dans votre compte stockage Azure.
Révision
Dans cet exercice, vous avez utilisé du code C# pour accéder à un compte de stockage, puis téléchargé le contenu d’un blob.