Partager via


Tutoriel : Simuler un échec de lecture de données à partir de la région primaire

Ce tutoriel fait partie de deux d’une série. Il vous permet de découvrir les avantages d’un stockage géographiquement redondant interzone avec accès en lecture (RA-GZRS) en simulant une défaillance.

Pour simuler une défaillance, vous pouvez utiliser le routage statique ou Fiddler. Ces deux méthodes vous permettent de simuler un échec pour les demandes adressées au point de terminaison principal de votre compte de stockage RA-GZRS, ce qui conduit l’application à lire à partir du point de terminaison secondaire à la place.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Dans la deuxième partie de la série, vous allez apprendre à :

Prerequisites

Avant de commencer ce tutoriel, suivez le tutoriel précédent : Rendre vos données d’application hautement disponibles avec le stockage Azure.

Pour simuler une défaillance avec un routage statique, vous allez utiliser une invite de commandes avec élévation de privilèges.

Pour simuler une défaillance à l’aide de Fiddler, téléchargez et installez Fiddler

Simuler une défaillance avec un itinéraire statique non valide

Vous pouvez créer un itinéraire statique non valide pour toutes les requêtes vers le point de terminaison principal de votre compte de stockage RA-GZRS. Dans ce tutoriel, l’hôte local est utilisé comme passerelle pour le routage des demandes vers le compte de stockage. L'utilisation de l'hôte local comme passerelle provoque un retour en boucle de toutes les requêtes vers le point de terminaison principal de votre compte de stockage à l'intérieur de l'hôte, entraînant l'échec de la demande. Suivez les étapes suivantes pour simuler une défaillance et la restauration du point de terminaison principal avec un itinéraire statique non valide.

Démarrer et suspendre l’application

Utilisez les instructions du didacticiel précédent pour lancer l’exemple et télécharger le fichier de test, confirmant qu’il provient du stockage principal. Selon votre plateforme cible, vous pouvez ensuite manuellement mettre en pause l’exemple ou attendre l’affichage d’une invite de commandes.

Simulation d’échec

Pendant que l’application est suspendue, ouvrez l'invite de commande sur Windows en tant qu’administrateur ou exécutez un terminal en tant que root sur Linux.

Obtenez des informations sur le domaine du point de terminaison principal du compte de stockage en entrant la commande suivante sur une invite de commandes ou un terminal, en STORAGEACCOUNTNAME remplaçant par le nom de votre compte de stockage.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Copiez l’adresse IP de votre compte de stockage dans un éditeur de texte pour une utilisation ultérieure.

Pour obtenir l’adresse IP de votre hôte local, tapez ipconfig sur l’invite de commandes Windows ou ifconfig sur le terminal Linux.

Pour ajouter un itinéraire statique pour un hôte de destination, tapez la commande suivante sur une invite de commandes Windows ou un terminal Linux, en remplaçant <destination_ip> par votre adresse IP de compte de stockage et <gateway_ip> par votre adresse IP hôte locale.

Linux

sudo route add <destination_ip> gw <gateway_ip>

Fenêtres

route add <destination_ip> <gateway_ip>

Dans la fenêtre avec l’exemple en cours d’exécution, reprenez l’application ou appuyez sur la touche appropriée pour télécharger l’exemple de fichier et confirmer qu’il provient du stockage secondaire. Vous pouvez ensuite remettre en pause l’exemple ou attendre l’affichage de l’invite.

Simuler la restauration du point de terminaison principal

Pour simuler à nouveau le point de terminaison principal, supprimez l’itinéraire statique non valide de la table de routage. Cela permet à toutes les demandes adressées au point de terminaison principal d’être routées via la passerelle par défaut. Tapez la commande suivante sur une invite de commandes Windows ou un terminal Linux.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Fenêtres

route delete <destination_ip>

Vous pouvez ensuite reprendre l’application ou appuyer sur la touche appropriée pour télécharger à nouveau l’exemple de fichier, cette fois en confirmant qu’elle provient à nouveau du stockage principal.

Simuler une défaillance avec Fiddler

Pour simuler une défaillance avec Fiddler, vous injectez une réponse ayant échoué pour les demandes adressées au point de terminaison principal de votre compte de stockage RA-GZRS.

Les sections suivantes montrent comment simuler un échec et restaurer un point de terminaison principal avec Fiddler.

Lancer Fiddler

Ouvrez Fiddler, sélectionnez Règles et personnaliser les règles.

Personnaliser les règles Fiddler

Fiddler ScriptEditor démarre et affiche le fichier SampleRules.js . Ce fichier est utilisé pour personnaliser Fiddler.

Collez l’exemple de code suivant dans la OnBeforeResponse fonction, en remplaçant STORAGEACCOUNTNAME par le nom de votre compte de stockage. Selon l’exemple, vous devrez peut-être également remplacer HelloWorld par le nom du fichier de test en cours de téléchargement ou supprimer cette partie de la condition si elle ne s’applique pas. Le nouveau code est commenté pour s’assurer qu’il ne s’exécute pas immédiatement.

Une fois terminé, sélectionnez Fichier et Enregistrer pour enregistrer vos modifications. Laissez la fenêtre ScriptEditor ouverte pour une utilisation dans les étapes suivantes.

    /*
        // Simulate data center failure
        // After it is successfully downloading the blob, pause the code in the sample,
        // uncomment these lines of script, and save the script.
        // It will intercept the (probably successful) responses and send back a 503 error.
        // When you're ready to stop sending back errors, comment these lines of script out again
        //     and save the changes.

        if ((oSession.hostname == "STORAGEACCOUNTNAME.blob.core.windows.net")
            // depending on the sample, you may need to modify or remove the line below
            && (oSession.PathAndQuery.Contains("HelloWorld"))) {
            oSession.responseCode = 503;
        }
    */

Coller une règle personnalisée

Démarrer et suspendre l’application

Utilisez les instructions du didacticiel précédent pour lancer l’exemple et télécharger le fichier de test, confirmant qu’il provient du stockage principal. Selon votre plateforme cible, vous pouvez ensuite manuellement mettre en pause l’exemple ou attendre l’affichage d’une invite de commandes.

Simulation d’échec

Pendant que l'application est suspendue, revenez à Fiddler et retirez les commentaires de la règle personnalisée que vous avez enregistrée dans la fonction OnBeforeResponse. Veillez à sélectionner Fichier et Enregistrer pour enregistrer vos modifications afin que la règle prenne effet. Ce code recherche les demandes adressées au compte de stockage RA-GZRS et, si le chemin d’accès contient le nom de l’exemple de fichier, retourne un code de réponse de 503 - Service Unavailable.

Dans la fenêtre avec l’exemple en cours d’exécution, reprenez l’application ou appuyez sur la touche appropriée pour télécharger l’exemple de fichier et confirmer qu’il provient du stockage secondaire. Vous pouvez ensuite remettre en pause l’exemple ou attendre l’affichage de l’invite.

Simuler la restauration du point de terminaison principal

Dans Fiddler, supprimez ou commentez à nouveau la règle personnalisée. Sélectionnez Fichier et Enregistrer pour vous assurer que la règle ne sera plus en vigueur.

Dans la fenêtre avec l’exemple en cours d’exécution, reprenez l’application ou appuyez sur la touche appropriée pour télécharger l’exemple de fichier et confirmer qu’il provient à nouveau du stockage principal. Vous pouvez ensuite quitter l’exemple.

Étapes suivantes

Dans ce deuxième volet, vous avez appris à simuler une défaillance pour tester le stockage géoredondant avec accès en lecture.

Pour en savoir plus sur le fonctionnement de RA-GZRS stockage et ses risques associés, consultez Conception d’applications haute disponibilité avec RA-GZRS.