Alkalmazás üzembe helyezése és skálázása Orleans az Azure-ban
Ebben a rövid útmutatóban üzembe helyezhet és skálázhat egy Orleans URL-rövidítő alkalmazást az Azure Container Appsben. Az alkalmazás lehetővé teszi, hogy a felhasználók teljes URL-címet küldjenek az alkalmazásnak, amely egy rövidített verziót ad vissza, amelyet megoszthatnak másokkal, hogy az eredeti webhelyre irányítsák őket. Orleans és az Azure biztosítja a nagy forgalmú alkalmazások, például az URL-rövidítők üzemeltetéséhez szükséges méretezhetőségi funkciókat. Orleans kompatibilis a .NET-et támogató egyéb üzemeltetési szolgáltatásokkal is.
A rövid útmutató végén egy skálázható alkalmazás fut az Azure-ban az URL-lerövidítő funkció biztosításához. Az út során megtanulhatja:
- Lekéréses és Azure Developer CLI-sablon
- Orleans Alkalmazás üzembe helyezése az Azure-ban
- Az alkalmazás skálázása több példányra
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Azure Developer CLI
- .NET 8
- Docker
A mintaalkalmazás lekérése és üzembe helyezése
A mintaalkalmazás Azure Developer CLI-sablonként érhető el. Ebben a rövid útmutatóban; lekéri a sablonalkalmazást, üzembe helyezi a sablont és a mintakódot az Azure-ban, módosítja a sablont az előnyben részesített adatmegőrzési folyamat implementálásához, üzembe helyezi a szükséges erőforrásokat, majd üzembe helyezi a végső alkalmazást.
Nyisson meg egy terminált egy üres könyvtárban.
Hitelesítés az Azure Developer CLI-vel
azd auth login
a . Kövesse az eszköz által megadott lépéseket a parancssori felületre való hitelesítéshez az ön által előnyben részesített Azure-hitelesítő adatokkal.azd auth login
Kérje le a mintaalkalmazást az AZD-sablon
orleans-url-shortener
és aazd init
parancs használatával.azd init --template orleans-url-shortener
Az inicializálás során konfiguráljon egy egyedi környezetnevet.
Tipp.
A rendszer a környezet nevét is használja a célerőforráscsoport neveként. Ebben a rövid útmutatóban fontolja meg a használatát
msdocs-orleans-url-shortener
.Az Azure Cosmos DB for NoSQL-fiók üzembe helyezése a következő használatával
azd up
: . A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.azd up
A kiépítési folyamat során válassza ki az előfizetést és a kívánt helyet. Várja meg, amíg a kiépítési és üzembe helyezési folyamat befejeződik. A folyamat körülbelül öt percet vehet igénybe.
Az Azure-erőforrások kiépítése után a kimenet tartalmazza a futó webalkalmazás URL-címét.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
A konzol URL-címével keresse meg a webalkalmazást a böngészőben.
A böngésző címsorában tesztelje a
shorten
végpontot egy URL-elérési út hozzáadásával, például/shorten?url=https://www.microsoft.com
. A lapnak újra kell betöltenie, és meg kell adnia egy új URL-címet egy rövidített elérési úttal a végén. Másolja az új URL-címet a vágólapra.{ "original": "https://www.microsoft.com", "shortened": "http://<container-app-name>.<deployment-name>.<region>.azurecontainerapps.io:<port>/go/<generated-id>" }
Illessze be a rövidített URL-címet a címsorba, és nyomja le az Enter billentyűt. A lapnak újra kell betöltenie, és át kell irányítania a megadott URL-címre.
További szolgáltatások üzembe helyezése
Az eredeti üzembe helyezés csak az URL-rövidítő alkalmazás üzemeltetéséhez szükséges minimális szolgáltatásokat helyezte üzembe. Ha azure-beli adatszolgáltatást szeretne használni a szemcsés adatmegőrzéshez, először konfigurálnia kell a sablont az előnyben részesített szolgáltatás üzembe helyezéséhez.
A terminál használatával futtassa
azd env set
a környezeti változó konfigurálását azDEPLOY_AZURE_TABLE_STORAGE
Azure Cosmos DB for NoSQL üzembe helyezésének engedélyezéséhez.azd env set DEPLOY_AZURE_TABLE_STORAGE true
A terminál használatával futtassa
azd env set
a környezeti változó konfigurálását azDEPLOY_AZURE_COSMOS_DB_NOSQL
Azure Cosmos DB for NoSQL üzembe helyezésének engedélyezéséhez.azd env set DEPLOY_AZURE_COSMOS_DB_NOSQL true
Futtassa
azd provision
újra az alkalmazásarchitektúrát az új konfigurációval. Várja meg, amíg a kiépítési folyamat befejeződik. A folyamat körülbelül két percet vehet igénybe.azd provision
Tipp.
Másik lehetőségként újra futtathatja
azd up
az alkalmazást, amely kiépíti az architektúrát, és újra üzembe helyezi az alkalmazást.
NuGet-csomagok telepítése
A gabona használata előtt telepítenie kell a megfelelő Microsoft.Orleans.Clustering.*
és Microsoft.Orleans.Persistence.*
NuGet-csomagokat. Ezek a szolgáltatások szerepköralapú hozzáférés-vezérlést használnak a jelszó nélküli hitelesítéshez, ezért a Azure.Identity
NuGet-csomagot is importálnia kell.
Módosítsa az aktuális munkakönyvtárat ./src/web/-ra.
cd ./src/web
Importálja a csomagot a
Azure.Identity
NuGetből adotnet add package
.dotnet add package Azure.Identity --version 1.*
Importálja a csomagokat és
Microsoft.Orleans.Persistence.AzureStorage
aMicrosoft.Orleans.Clustering.AzureStorage
csomagokat.NuGet-csomag Fürtszolgáltatás Microsoft.Orleans.Clustering.AzureStorage
Kitartás Microsoft.Orleans.Persistence.AzureStorage
dotnet add package Microsoft.Orleans.Clustering.AzureStorage --version 8.* dotnet add package Microsoft.Orleans.Persistence.AzureStorage --version 8.*
Importálja a csomagot a
Azure.Identity
NuGetből adotnet add package
.dotnet add package Azure.Identity --version 1.*
Importálja a csomagokat és
Microsoft.Orleans.Persistence.Cosmos
aMicrosoft.Orleans.Clustering.Cosmos
csomagokat.NuGet-csomag Fürtszolgáltatás Microsoft.Orleans.Clustering.Cosmos
Kitartás Microsoft.Orleans.Persistence.Cosmos
dotnet add package Microsoft.Orleans.Clustering.Cosmos --version 8.* dotnet add package Microsoft.Orleans.Persistence.Cosmos --version 8.*
A mintaalkalmazás konfigurálása és ismételt üzembe helyezése
A mintaalkalmazás jelenleg úgy van konfigurálva, hogy létrehozhasson egy localhost-fürtöt, és megőrizze a szemcséket a memóriában. Az Azure-ban üzemeltetett állapot úgy konfigurálható, Orleans hogy skálázhatóbb, központosított állapotot használjon egy Azure-beli adatszolgáltatás használatával.
Adja hozzá a
and
névterekre vonatkozó irányelveket.using Azure.Identity; using Orleans.Configuration;
Keresse meg és távolítsa el az aktuális
builder
konfigurációs kódot az src/web/Program.cs fájlban.builder.Host.UseOrleans(static siloBuilder => { siloBuilder .UseLocalhostClustering() .AddMemoryGrainStorage("urls"); });
Cserélje le a
builder
konfigurációt az alábbi példára, amely megvalósítja az alábbi fő fogalmakat:- A rendszer feltételes környezeti ellenőrzést ad hozzá, hogy az alkalmazás megfelelően fusson a helyi fejlesztési és az Azure által üzemeltetett forgatókönyvekben is.
- A
UseAzureStorageClustering
metódus konfigurálja a fürtöt az Orleans Azure Table Storage használatára, és az osztály használatával hitelesíti.DefaultAzureCredential - A metódus használatával
Configure
rendeljen azonosítókat a Orleans fürthöz.- Ez
ClusterID
a fürt egyedi azonosítója, amely lehetővé teszi, hogy az ügyfelek és a silók beszéljenek egymással. - Ez
ClusterID
az üzemelő példányok között változhat. - Ez
ServiceID
egy egyedi azonosító az alkalmazáshoz, amelyet Orleans belsőleg használnak, és az üzemelő példányok között konzisztensnek kell maradniuk.
- Ez
if (builder.Environment.IsDevelopment()) { builder.Host.UseOrleans(static siloBuilder => { siloBuilder .UseLocalhostClustering() .AddMemoryGrainStorage("urls"); }); } else { builder.Host.UseOrleans(siloBuilder => { var endpoint = new Uri(builder.Configuration["AZURE_TABLE_STORAGE_ENDPOINT"]!); var credential = new DefaultAzureCredential(); siloBuilder .UseAzureStorageClustering(options => { options.ConfigureTableServiceClient(endpoint, credential); }) .AddAzureTableGrainStorage(name: "urls", options => { options.ConfigureTableServiceClient(endpoint, credential); }) .Configure<ClusterOptions>(options => { options.ClusterId = "url-shortener"; options.ServiceId = "urls"; }); }); }
Cserélje le a
builder
konfigurációt az alábbi példára, amely megvalósítja az alábbi fő fogalmakat:- A rendszer feltételes környezeti ellenőrzést ad hozzá, hogy az alkalmazás megfelelően fusson a helyi fejlesztési és az Azure által üzemeltetett forgatókönyvekben is.
- A
UseCosmosClustering
metódus konfigurálja a fürtöt az Orleans Azure Cosmos DB for NoSQL használatára, és hitelesíti az DefaultAzureCredential osztályt. - A metódus használatával
Configure
rendeljen azonosítókat a Orleans fürthöz.- Ez
ClusterID
a fürt egyedi azonosítója, amely lehetővé teszi, hogy az ügyfelek és a silók beszéljenek egymással. - Ez
ClusterID
az üzemelő példányok között változhat. - Ez
ServiceID
egy egyedi azonosító az alkalmazáshoz, amelyet Orleans belsőleg használnak, és az üzemelő példányok között konzisztensnek kell maradniuk.
- Ez
if (builder.Environment.IsDevelopment()) { builder.Host.UseOrleans(static siloBuilder => { siloBuilder .UseLocalhostClustering() .AddMemoryGrainStorage("urls"); }); } else { builder.Host.UseOrleans(siloBuilder => { var endpoint = builder.Configuration["AZURE_COSMOS_DB_NOSQL_ENDPOINT"]!; var credential = new DefaultAzureCredential(); siloBuilder .UseCosmosClustering(options => { options.ConfigureCosmosClient(endpoint, credential); }) .AddCosmosGrainStorage(name: "urls", options => { options.ConfigureCosmosClient(endpoint, credential); }) .Configure<ClusterOptions>(options => { options.ClusterId = "url-shortener"; options.ServiceId = "urls"; }); }); }
Futtassa
azd deploy
újra az alkalmazáskódot Docker-tárolóként. Várja meg, amíg az üzembe helyezési folyamat befejeződik. A folyamat körülbelül egy percet vehet igénybe.azd deploy
Tipp.
Másik lehetőségként újra futtathatja
azd up
az alkalmazást, amely kiépíti az architektúrát, és újra üzembe helyezi az alkalmazást.
Az alkalmazás viselkedésének ellenőrzése
Ellenőrizze, hogy a frissített kód működik-e az üzembe helyezett alkalmazás ismételt használatával, és ellenőrizze, hogy hol tárolja az adatokat.
A böngésző címsorában tesztelje újra a
shorten
végpontot egy URL-elérési út hozzáadásával, például/shorten?url=https://learn.microsoft.com/dotnet/orleans
. A lapnak újra kell betöltenie, és meg kell adnia egy új URL-címet egy rövidített elérési úttal a végén. Másolja az új URL-címet a vágólapra.{ "original": "https://learn.microsoft.com/dotnet/orleans", "shortened": "http://<container-app-name>.<deployment-name>.<region>.azurecontainerapps.io:<port>/go/<generated-id>" }
Illessze be a rövidített URL-címet a címsorba, és nyomja le az Enter billentyűt. A lapnak újra kell betöltenie, és át kell irányítania a megadott URL-címre.
Ha szeretné, ellenőrizheti, hogy a fürt és az állapot adatai a várt módon tárolódnak-e a létrehozott tárfiókban.
Az Azure Portalon keresse meg az ebben a rövid útmutatóban üzembe helyezett erőforráscsoportot.
Fontos
A rövid útmutatóban korábban megadott környezetnév a célerőforráscsoport neve is.
Lépjen az Azure Storage-fiók áttekintési oldalára.
A navigációs sávon válassza a Storage böngészőt.
Bontsa ki a Táblák navigációs elemet a következő két tábla felderítéséhez Orleans:
OrleansGrainState: Ez a táblázat tárolja az alkalmazás által az URL-átirányítások kezelésére használt állandó állapotfelbontási adatokat.
OrleansSiloInstances: Ez a táblázat a fürt alapvető silóadatait Orleans követi nyomon.
Válassza ki a OrleansGrainState táblát. A táblázat egy sorbejegyzést tartalmaz minden url-átirányításhoz, amelyet az alkalmazás a tesztelés során megőriz.
Lépjen az Azure Cosmos DB for NoSQL-fiók áttekintési oldalára.
A navigációs sávon válassza az Adatkezelő lehetőséget.
Tekintse meg az alábbi, az útmutatóban korábban létrehozott tárolókat:
OrleansTárolás: Ez a tábla az alkalmazás által az URL-átirányítások kezelésére használt állandó állapotfelbontási adatokat tárolja.
OrleansFürt: Ez a táblázat a fürt alapvető silóadatait Orleans követi nyomon.
Skálázza az alkalmazást
Orleans elosztott alkalmazásokhoz készült. Még egy olyan egyszerű alkalmazás is kihasználhatja a méretezhetőséget Orleans, mint az URL-rövidítő. Az alábbi lépések végrehajtásával skálázhatja és tesztelheti az alkalmazást több példányon:
Lépjen vissza az ebben a rövid útmutatóban üzembe helyezett erőforráscsoporthoz.
Lépjen az Azure Container Apps alkalmazás áttekintési oldalára.
A navigációs sávon válassza a Méretezés lehetőséget.
Válassza a Szerkesztés és üzembe helyezés lehetőséget, majd váltson a Méretezés lapra.
A csúszka vezérlőelem használatával állítsa a minimális és a maximális replikaértéket 4-re. Ez az érték biztosítja, hogy az alkalmazás több példányon fusson.
Válassza a Létrehozás lehetőséget az új változat üzembe helyezéséhez.
Az üzembe helyezés befejezése után ismételje meg az előző szakasz tesztelési lépéseit. Az alkalmazás továbbra is a várt módon működik több példányban, és mostantól nagyobb számú kérést képes kezelni.
Kapcsolódó tartalom
Következő lépés
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: