Oktatóanyag: Magas rendelkezésre állású alkalmazás létrehozása Blob Storage használatával
Ez az oktatóanyag egy sorozat első része. Ebben megtudhatja, hogyan teheti az alkalmazásadatokat magas rendelkezésre állásúvá az Azure-ban.
Az oktatóanyag elvégzése után egy olyan konzolalkalmazással fog rendelkezni, amely feltölt és lekéri a blobot egy olvasási hozzáférésű geo-zónaredundáns (RA-GZRS) tárfiókból.
Az Azure Storage georedundanciái aszinkron módon replikálják a tranzakciókat egy elsődleges régióból egy több száz kilométerre lévő másodlagos régióba. A replikációs folyamat garantálja a másodlagos régió adatainak végső konzisztenciáját. A konzolalkalmazás az áramkör-megszakító mintával határozza meg, hogy melyik végponthoz csatlakozik, és automatikusan váltson a végpontok között a hibák és a helyreállítások szimulálása során.
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
A sorozat első részében a következőkkel ismerkedhet meg:
- Tárfiók létrehozása
- A kapcsolati sztring beállítása
- A konzolalkalmazás futtatása
Előfeltételek
Az oktatóanyag elvégzéséhez:
Telepítse a Visual Studio 2022-t az Azure fejlesztési számítási feladatával.
Sign in to the Azure portal
Jelentkezzen be az Azure Portalra.
Tárfiók létrehozása
A tárfiókok egyedi névteret biztosítanak az Azure Storage-adatobjektumok tárolásához és eléréséhez.
Kövesse az alábbi lépéseket egy olvasási hozzáférésű geo-zónaredundáns (RA-GZRS) tárfiók létrehozásához:
Válassza az Erőforrás létrehozása gombot az Azure Portalon.
Válassza a Tárfiók – blob, fájl, tábla, üzenetsor lehetőséget az Új oldalról.
Töltse ki a tárfiók űrlapját a következő adatokkal az alábbi képen látható módon, és kattintson a Létrehozás elemre:
Setting Mintaérték Leírás Előfizetés Saját előfizetésem Az előfizetései részleteivel kapcsolatban lásd az előfizetéseket ismertető cikket. ResourceGroup myResourceGroup Az érvényes erőforráscsoport-nevekkel kapcsolatban lásd az elnevezési szabályokat és korlátozásokat ismertető cikket. Név mystorageaccount A tárfiók egyedi neve. Helyen USA keleti régiója Choose a location. Teljesítmény Standard A standard teljesítmény jó választás a példaforgatókönyvben. Fióktípus StorageV2 Általános célú v2-tárfiók használata ajánlott. Az Azure Storage-fiókok típusaival kapcsolatos további információkért tekintse meg a Tárfiókok áttekintését. Replikáció Olvasási hozzáférésű geozónára redundáns tárolás (RA-GZRS) Az elsődleges régió zónaredundáns, és egy másodlagos régióba replikálódik, és engedélyezve van a másodlagos régió olvasási hozzáférése. Hozzáférési szint Gyakori elérésű Használja a gyakori elérésű réteget a gyakran használt adatokhoz.
A minta letöltése
Töltse le a mintaprojektet, bontsa ki (bontsa ki) a storage-dotnet-circuit-breaker-pattern-ha-apps-using-ra-grs.zip fájlt, majd keresse meg a v12 mappát a projektfájlok megkereséséhez.
A git használatával klónozhatja az adattárat a helyi fejlesztési környezetbe. A v12 mappában lévő mintaprojekt egy konzolalkalmazást tartalmaz.
git clone https://github.com/Azure-Samples/storage-dotnet-circuit-breaker-pattern-ha-apps-using-ra-grs.git
A minta konfigurálása
Az Azure Blob Storage-ba irányuló alkalmazáskéréseket engedélyezni kell. DefaultAzureCredential
Az ügyfélkódtár által Azure.Identity
biztosított osztály használata ajánlott módszer az Azure-szolgáltatásokhoz való csatlakozáshoz a kódban. A .NET v12-kódminta ezt a megközelítést használja. További információért tekintse meg a DefaultAzureCredential áttekintését.
Az Azure Blob Storage-ra irányuló kéréseket a fiók hozzáférési kulcsával is engedélyezheti. Ezt a megközelítést azonban körültekintően kell használni a hozzáférési kulcsok felfedésétől való védelme érdekében.
A konzolalkalmazás futtatása
A Visual Studióban nyomja le az F5 billentyűt, vagy kattintson a Start gombra az alkalmazás hibakeresésének megkezdéséhez. A Visual Studio automatikusan visszaállítja a hiányzó NuGet-csomagokat, ha a csomag-visszaállítás konfigurálva van. További információ: Csomagok telepítése és újratelepítése csomag-visszaállítással .
Amikor a konzolablak elindul, az alkalmazás lekéri a másodlagos régió állapotát, és megírja ezeket az információkat a konzolra. Ezután az alkalmazás létrehoz egy tárolót a tárfiókban, és feltölt egy blobot a tárolóba. A blob feltöltése után az alkalmazás folyamatosan ellenőrzi, hogy a blob replikált-e a másodlagos régióba. Ez az ellenőrzés addig folytatódik, amíg a blob replikálódik, vagy el nem éri a ciklusfeltételek által meghatározott iterációk maximális számát.
Ezután az alkalmazás egy ciklust ad meg a blob letöltésére vonatkozó kéréssel, amely kezdetben az elsődleges tárolóból olvas. A blob letöltéséhez nyomja le bármelyik billentyűt. Ha az elsődleges régióból újrapróbálkozható hiba történik, az olvasási kérés újrapróbálkozása a másodlagos régió végpontján történik. A konzol kimenete akkor jelenik meg, amikor a régió másodlagosra vált.
A ciklusból való kilépéshez és az erőforrások törléséhez nyomja le a Esc
kulcsot a blobletöltési parancssorban.
A mintakód értelmezése
A minta létrehoz egy BlobServiceClient
újrapróbálkozással konfigurált objektumot és egy másodlagos régióvégpontot. Ez a konfiguráció lehetővé teszi, hogy az alkalmazás automatikusan a másodlagos régióra váltson, ha a kérés meghiúsul az elsődleges régió végpontján.
string accountName = "<YOURSTORAGEACCOUNTNAME>";
Uri primaryAccountUri = new Uri($"https://{accountName}.blob.core.windows.net/");
Uri secondaryAccountUri = new Uri($"https://{accountName}-secondary.blob.core.windows.net/");
// Provide the client configuration options for connecting to Azure Blob storage
BlobClientOptions blobClientOptions = new BlobClientOptions()
{
Retry = {
// The delay between retry attempts for a fixed approach or the delay
// on which to base calculations for a backoff-based approach
Delay = TimeSpan.FromSeconds(2),
// The maximum number of retry attempts before giving up
MaxRetries = 5,
// The approach to use for calculating retry delays
Mode = RetryMode.Exponential,
// The maximum permissible delay between retry attempts
MaxDelay = TimeSpan.FromSeconds(10)
},
// Secondary region endpoint
GeoRedundantSecondaryUri = secondaryAccountUri
};
// Create a BlobServiceClient object using the configuration options above
BlobServiceClient blobServiceClient = new BlobServiceClient(primaryAccountUri, new DefaultAzureCredential(), blobClientOptions);
Ha a GeoRedundantSecondaryUri
tulajdonság be van állítva BlobClientOptions
, a GET vagy a HEAD kérelmek újrapróbálkozása a másodlagos végpont használatára vált. Az ezt követő újrapróbálkozások az elsődleges és a másodlagos végpont között váltakoznak. Ha azonban a másodlagos URI-ból érkező válasz állapota 404, akkor a kérés későbbi újrapróbálkozásai már nem használják a másodlagos URI-t, mivel ez a hibakód azt jelzi, hogy az erőforrás nem replikált a másodlagos régióba.
További lépések
A sorozat első részében megismerkedett azzal, hogy egy alkalmazás magas rendelkezésre állásúvá válik az RA-GZRS tárfiókokkal.
Folytassa a sorozat második részével, hogy megtanulja, hogyan szimulálhat egy hibát, és hogyan kényszerítheti az alkalmazást a másodlagos RA-GZRS-végpont használatára.
Források
Elavult SDK-kkal kapcsolatos kódmintákért tekintse meg a következő erőforrásokat:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: