Självstudie: Simulera ett fel vid läsning av data från den primära regionen

Den här självstudien är del två i en serie. I den lär du dig om fördelarna med geozonredundant lagring med läsbehörighet (RA-GZRS) genom att simulera ett fel.

För att simulera ett fel kan du använda antingen statisk routning eller Fiddler. Med båda metoderna kan du simulera fel för begäranden till den primära slutpunkten för ditt RA-GZRS-lagringskonto, vilket leder till att programmet läser från den sekundära slutpunkten i stället.

Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

I del två i serien lär du dig hur du:

Förutsättningar

Innan du påbörjar den här självstudien slutför du den föregående självstudien: Gör dina programdata mycket tillgängliga med Azure Storage.

Om du vill simulera ett fel med statisk routning använder du en upphöjd kommandotolk.

Om du vill simulera ett fel med Fiddler laddar du ned och installerar Fiddler

Simulera ett fel med en felaktig statisk väg

Du kan skapa en ogiltig statisk väg för alla begäranden till den primära slutpunkten för ditt RA-GZRS-lagringskonto. I den här kursen används den lokala värden som gateway för dirigering av begäranden till lagringskontot. Om du använder den lokala värden som gateway får alla begäranden till ditt lagringskontos primära slutpunkt att loopas tillbaka i värden, vilket resulterar i en misslyckad begäran. Följ stegen nedan för att simulera ett fel och en återställning av den primära slutpunkten med en felaktig statisk väg.

Starta och pausa programmet

Använd anvisningarna i föregående självstudie för att starta exemplet och ladda ned testfilen, vilket bekräftar att den kommer från den primära lagringen. Beroende på målplattformen kan du pausa exemplet manuellt eller vänta i en prompt.

Simulera ett fel

När programmet är pausat öppnar du en kommandotolk i Windows som administratör eller kör terminalen som rot i Linux.

Hämta information om lagringskontots primära slutpunktsdomän genom att ange följande kommando i en kommandotolk eller terminal och ersätta STORAGEACCOUNTNAME med namnet på ditt lagringskonto.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Kopiera IP-adressen för ditt lagringskonto till en textredigerare för senare användning.

För att hämta IP-adressen för din lokala värd skriver du ipconfig i kommandotolken i Windows eller ifconfig i terminalen i Linux.

Om du vill lägga till en statisk väg för en målvärd skriver du följande kommando i en Windows-kommandotolk eller En Linux-terminal. Ersätt <destination_ip> med lagringskontots IP-adress och <gateway_ip> med din lokala värd-IP-adress.

Linux

sudo route add <destination_ip> gw <gateway_ip>

Windows

route add <destination_ip> <gateway_ip>

I fönstret med exemplet som körs återupptar du programmet eller trycker på lämplig nyckel för att ladda ned exempelfilen och bekräftar att den kommer från den sekundära lagringen. Du kan sedan pausa exemplet igen eller vänta i prompten.

Simulerar en återställning av den primära slutpunkten

Om du vill simulera att den primära slutpunkten fungerar igen tar du bort den ogiltiga statiska vägen från routningstabellen. Detta innebär att alla begäranden till den primära slutpunkten dirigeras via standardgatewayen. Skriv följande kommando i en Windows-kommandotolk eller En Linux-terminal.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Windows

route delete <destination_ip>

Du kan sedan återuppta programmet eller trycka på lämplig nyckel för att ladda ned exempelfilen igen. Den här gången bekräftar du att den återigen kommer från den primära lagringen.

Simulera ett fel med Fiddler

Om du vill simulera fel med Fiddler matar du in ett misslyckat svar för begäranden till den primära slutpunkten för ditt RA-GZRS-lagringskonto.

Följande avsnitt visar hur du simulerar ett fel samt återställning av den primära slutpunkten med Fiddler.

Starta Fiddler

Öppna Fiddler, välj Rules (Regler) och Customize Rules (Anpassa regler).

Anpassa Fiddler-regler

Fiddler ScriptEditor startas och visar filen SampleRules.js. Den här filen används för att anpassa Fiddler.

Klistra in följande kodexempel i OnBeforeResponse funktionen och ersätt STORAGEACCOUNTNAME med namnet på ditt lagringskonto. Beroende på exemplet kan du också behöva ersätta HelloWorld med namnet på testfilen som laddas ned, eller ta bort den delen av villkoret om det inte gäller. Den nya koden kommenteras ut för att säkerställa att den inte körs omedelbart.

När det är klart väljer du File (Arkiv) och Save (Spara) för att spara ändringarna. Låt ScriptEditor-fönstret vara öppet för användning i följande steg.

    /*
        // 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;
        }
    */

Klistra in den anpassade regeln

Starta och pausa programmet

Använd anvisningarna i föregående självstudie för att starta exemplet och ladda ned testfilen, vilket bekräftar att den kommer från den primära lagringen. Beroende på målplattformen kan du pausa exemplet manuellt eller vänta i en prompt.

Simulera ett fel

När programmet är pausat växlar du tillbaka till Fiddler och avkommentarer den anpassade regel som du sparade i OnBeforeResponse funktionen. Se till att välja Arkiv och Spara för att spara ändringarna så att regeln börjar gälla. Den här koden söker efter begäranden till RA-GZRS-lagringskontot och returnerar svarskoden 503 - Service Unavailableom sökvägen innehåller namnet på exempelfilen.

I fönstret med exemplet som körs återupptar du programmet eller trycker på lämplig nyckel för att ladda ned exempelfilen och bekräftar att den kommer från den sekundära lagringen. Du kan sedan pausa exemplet igen eller vänta i prompten.

Simulerar en återställning av den primära slutpunkten

Ta bort eller kommentera ut den anpassade regeln igen i Fiddler. Välj Arkiv och Spara för att se till att regeln inte längre gäller.

I fönstret med exemplet som körs återupptar du programmet eller trycker på lämplig nyckel för att ladda ned exempelfilen och bekräftar att den kommer från den primära lagringen igen. Du kan sedan avsluta exemplet.

Nästa steg

I del två i serien lärde du dig att simulera ett misslyckande med att testa geo-redundant lagring med läsåtkomst.

Mer information om hur RA-GZRS-lagring fungerar och tillhörande risker finns i Designa HA-appar med RA-GZRS.