Wdrażanie i skalowanie aplikacji ASP.NET Core w usłudze Azure Container Apps

Aplikacje wdrożone na platformie Azure, które mają sporadyczne wysokie zapotrzebowanie, korzystają ze skalowalności w celu spełnienia wymagań. Skalowalne aplikacje można skalować w poziomie, aby zapewnić pojemność podczas szczytowych obciążeń, a następnie automatycznie skalować w dół, gdy spadnie szczyt, co może obniżyć koszty. Skalowanie w poziomie (skalowanie w poziomie) dodaje nowe wystąpienia zasobu, takie jak maszyny wirtualne lub repliki bazy danych. W tym artykule pokazano, jak wdrożyć skalowalną w poziomie aplikację ASP.NET Core w aplikacjach kontenerów platformy Azure, wykonując następujące zadania:

  1. Konfigurowanie przykładowego projektu
  2. Wdrażanie aplikacji w usłudze Azure Container Apps
  3. Skalowanie i rozwiązywanie problemów z aplikacją
  4. Tworzenie usług platformy Azure
  5. Połączenie usług platformy Azure
  6. Konfigurowanie i ponowne wdrażanie aplikacji

W tym artykule są używane Razor strony, ale większość z niej dotyczy innych aplikacji ASP.NET Core.

W niektórych przypadkach podstawowe aplikacje ASP.NET Core mogą być skalowane bez specjalnych zagadnień. Jednak aplikacje korzystające z niektórych funkcji platformy lub wzorców architektury wymagają dodatkowych konfiguracji, w tym następujących:

  • Przesyłanie bezpiecznych formularzy: Razor strony, aplikacje MVC i internetowe interfejsy API często korzystają z przesyłania formularzy. Domyślnie te aplikacje używają tokenów fałszerzowania między witrynami i wewnętrznych usług ochrony danych do zabezpieczania żądań. Po wdrożeniu w chmurze te aplikacje muszą być skonfigurowane do zarządzania problemami dotyczącymi usługi ochrony danych w bezpiecznej, scentralizowanej lokalizacji.

  • SignalRobwody: Blazor Server aplikacje wymagają użycia scentralizowanej usługi platformy Azure SignalR w celu bezpiecznego skalowania. Te usługi korzystają również z usług ochrony danych wymienionych wcześniej.

  • Scentralizowane buforowanie lub usługi zarządzania stanami: Skalowalne aplikacje mogą korzystać z usługi Azure Cache for Redis w celu zapewnienia rozproszonego buforowania. Usługa Azure Storage może być potrzebna do przechowywania stanu dla platform, takich jak Microsoft Orleans, co może pomóc w pisaniu aplikacji, które zarządzają stanem w wielu różnych wystąpieniach aplikacji.

Kroki opisane w tym artykule pokazują, jak prawidłowo rozwiązać powyższe problemy, wdrażając skalowalną aplikację w usłudze Azure Container Apps. Większość pojęć w tym samouczku ma zastosowanie również podczas skalowania wystąpień usługi aplikacja systemu Azure Service.

Konfigurowanie przykładowego projektu

Skorzystaj z przykładowej aplikacji GitHub Explorer, aby wykonać czynności opisane w tym samouczku. Sklonuj aplikację z usługi GitHub przy użyciu następującego polecenia:

git clone "https://github.com/dotnet/AspNetCore.Docs.Samples.git"

Przejdź do /tutorials/scalable-razor-apps/start folderu i otwórz plik ScalableRazor.csproj.

Przykładowa aplikacja używa formularza wyszukiwania do przeglądania repozytoriów GitHub według nazwy. Formularz opiera się na wbudowanych usługach ochrony danych ASP.NET Core w celu obsługi problemów z fałszerzowaniami. Domyślnie gdy aplikacja skaluje się w poziomie w usłudze Container Apps, usługa ochrony danych zgłasza wyjątek.

Testowanie aplikacji

  1. Uruchom aplikację w programie Visual Studio. Projekt zawiera plik platformy Docker, co oznacza, że można wybrać strzałkę obok przycisku uruchamiania, aby uruchomić aplikację przy użyciu konfiguracji programu Docker Desktop lub standardowego lokalnego serwera internetowego ASP.NET Core.

Użyj formularza wyszukiwania, aby wyszukać repozytoria GitHub według nazwy.

A screenshot showing the GitHub Explorer app.

Wdrażanie aplikacji w usłudze Azure Container Apps

Program Visual Studio służy do wdrażania aplikacji w usłudze Azure Container Apps. Aplikacje kontenerów zapewniają usługę zarządzaną zaprojektowaną w celu uproszczenia hostowania konteneryzowanych aplikacji i mikrousług.

Uwaga

Wiele zasobów utworzonych dla aplikacji wymaga lokalizacji. W przypadku tej aplikacji lokalizacja nie jest ważna. Prawdziwa aplikacja powinna wybrać lokalizację znajdującą się najbliżej klientów. Możesz wybrać lokalizację w pobliżu.

  1. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy węzeł projektu najwyższego poziomu i wybierz pozycję Publikuj.

  2. W oknie dialogowym publikowania wybierz pozycję Azure jako element docelowy wdrożenia, a następnie wybierz pozycję Dalej.

  3. Dla określonego elementu docelowego wybierz pozycję Azure Container Apps (Linux), a następnie wybierz pozycję Dalej.

  4. Utwórz nową aplikację kontenera do wdrożenia. Wybierz zieloną + ikonę, aby otworzyć nowe okno dialogowe i wprowadzić następujące wartości:

    A screenshot showing Visual Studio deployment.

    • Nazwa aplikacji kontenera: pozostaw wartość domyślną lub wprowadź nazwę.
    • Nazwa subskrypcji: wybierz subskrypcję do wdrożenia.
    • Grupa zasobów: wybierz pozycję Nowy i utwórz nową grupę zasobów o nazwie msdocs-scalable-razor.
    • Środowisko aplikacji kontenera: wybierz pozycję Nowy , aby otworzyć okno dialogowe środowiska aplikacji kontenera i wprowadzić następujące wartości:
      • Nazwa środowiska: Zachowaj wartość domyślną.
      • Lokalizacja: wybierz lokalizację w pobliżu.
      • Obszar roboczy usługi Azure Log Analytics: wybierz pozycję Nowy , aby otworzyć okno dialogowe obszaru roboczego usługi Log Analytics.
        • Nazwa: pozostaw wartość domyślną.
        • Lokalizacja: wybierz lokalizację w pobliżu, a następnie wybierz przycisk OK , aby zamknąć okno dialogowe.
      • Wybierz przycisk OK , aby zamknąć okno dialogowe środowiska aplikacji kontenera.
    • Wybierz pozycję Utwórz , aby zamknąć okno dialogowe oryginalnych aplikacji kontenera. Program Visual Studio tworzy zasób aplikacji kontenera na platformie Azure.
  5. Po utworzeniu zasobu upewnij się, że został wybrany na liście aplikacji kontenera, a następnie wybierz pozycję Dalej.

  6. Musisz utworzyć usługę Azure Container Registry, aby przechowywać opublikowany artefakt obrazu dla aplikacji. Wybierz zieloną + ikonę na ekranie rejestru kontenerów.

    A screenshot showing how to create a new container registry.

  7. Pozostaw wartości domyślne, a następnie wybierz pozycję Utwórz.

    A screenshot showing the values for a new container registry.

  8. Po utworzeniu rejestru kontenerów upewnij się, że został wybrany, a następnie wybierz przycisk Zakończ, aby zamknąć przepływ pracy okna dialogowego i wyświetlić podsumowanie profilu publikowania.

    Jeśli program Visual Studio wyświetli monit o włączenie użytkownika Administracja w celu uzyskania dostępu do opublikowanego kontenera platformy Docker, wybierz pozycję Tak.

  9. Wybierz pozycję Publikuj w prawym górnym rogu podsumowania profilu publikowania, aby wdrożyć aplikację na platformie Azure.

Po zakończeniu wdrażania program Visual Studio uruchamia przeglądarkę w celu wyświetlenia hostowanej aplikacji. Microsoft Wyszukaj w polu formularza, a zostanie wyświetlona lista repozytoriów.

Skalowanie i rozwiązywanie problemów z aplikacją

Aplikacja działa obecnie bez żadnych problemów, ale chcemy skalować aplikację w większej liczbie wystąpień w oczekiwaniu na duże ilości ruchu.

  1. W witrynie Azure Portal wyszukaj aplikację kontenera razorscaling-app-**** na pasku wyszukiwania najwyższego poziomu i wybierz ją z wyników.
  2. Na stronie przeglądu wybierz pozycję Skaluj w obszarze nawigacji po lewej stronie, a następnie wybierz pozycję + Edytuj i wdróż.
  3. Na stronie poprawek przejdź do karty Skalowanie .
  4. Ustaw zarówno minimalną, jak i maksymalną liczbę wystąpień na 4 , a następnie wybierz pozycję Utwórz. Ta zmiana konfiguracji gwarantuje, że aplikacja jest skalowana w poziomie w czterech wystąpieniach.

Wróć do aplikacji. Gdy strona zostanie załadowana, na początku pojawi się, że wszystko działa poprawnie. Jednak po wprowadzeniu i przesłaniu terminu wyszukiwania może wystąpić błąd. Jeśli błąd nie jest wyświetlany, prześlij formularz kilka razy.

Rozwiązywanie problemów z błędem

Nie jest od razu oczywiste, dlaczego żądania wyszukiwania kończą się niepowodzeniem. Narzędzia przeglądarki wskazują, że wysłano odpowiedź 400 Nieprawidłowe żądanie. Można jednak użyć funkcji rejestrowania aplikacji kontenera do diagnozowania błędów występujących w danym środowisku.

  1. Na stronie przeglądu aplikacji kontenera wybierz pozycję Dzienniki w obszarze nawigacji po lewej stronie.

  2. Na stronie Dzienniki zamknij okno podręczne, które zostanie otwarte i przejdź do karty Tabele.

  3. Rozwiń element Dzienniki niestandardowe, aby wyświetlić węzeł ContainerAppConsoleLogs_CL. W tej tabeli znajdują się różne dzienniki aplikacji kontenera, do których można wykonywać zapytania w celu rozwiązywania problemów.

    A screenshot showing the container app logs.

  4. W edytorze zapytań utwórz podstawowe zapytanie, aby wyszukać tabelę dzienników ContainerAppConsoleLogs_CL pod kątem ostatnich wyjątków, takich jak następujący skrypt:

    ContainerAppConsoleLogs_CL
    | where Log_s contains "exception"
    | sort by TimeGenerated desc
    | limit 500
    | project ContainerAppName_s, Log_s
    

    Poprzednie zapytanie wyszukuje tabelę ContainerAppConsoleLogs_CL dla wszystkich wierszy zawierających wyjątek słowa. Wyniki są uporządkowane według czasu wygenerowanego, ograniczonego do 500 wyników i zawierają tylko kolumny ContainerAppName_s i Log_s , aby ułatwić odczytywanie wyników.

  5. Wybierz pozycję Uruchom. Zostanie wyświetlona lista wyników. Zapoznaj się z dziennikami i zwróć uwagę, że większość z nich jest związana z tokenami antyforgeryjności i kryptografią.

    A screenshot showing the logs query.

    Ważne

    Błędy w aplikacji są spowodowane przez usługi ochrony danych platformy .NET. Gdy uruchomiono wiele wystąpień aplikacji, nie ma gwarancji, że żądanie HTTP POST do przesłania formularza jest kierowane do tego samego kontenera, który początkowo załadował stronę z żądania HTTP GET. Jeśli żądania są obsługiwane przez różne wystąpienia, tokeny antyforgeryjne nie są obsługiwane poprawnie i wystąpi wyjątek.

    W nadchodzących krokach ten problem jest rozwiązywany przez scentralizowanie kluczy ochrony danych w usłudze Azure Storage i ochronę ich za pomocą usługi Key Vault.

Tworzenie usług platformy Azure

Aby rozwiązać powyższe błędy, następujące usługi są tworzone i połączone z aplikacją:

  • Konto usługi Azure Storage: obsługuje przechowywanie danych dla usług Ochrony Danych. Zapewnia scentralizowaną lokalizację do przechowywania kluczowych danych w miarę skalowania aplikacji. Konta magazynu mogą również służyć do przechowywania dokumentów, danych kolejek, udziałów plików i prawie dowolnego typu danych obiektów blob.
  • Azure KeyVault: ta usługa przechowuje wpisy tajne dla aplikacji i służy do zarządzania problemami dotyczącymi szyfrowania usług Data Protection Services.

Tworzenie usługi konta magazynu

  1. Na pasku wyszukiwania w witrynie Azure Portal wprowadź Storage accounts i wybierz pasujący wynik.
  2. Na stronie listy kont magazynu wybierz pozycję + Utwórz.
  3. Na karcie Podstawy wprowadź następujące wartości:
    • Subskrypcja: wybierz tę samą subskrypcję wybraną dla aplikacji kontenera.
    • Grupa zasobów: wybierz utworzoną wcześniej grupę zasobów msdocs-scalable-razor .
    • Nazwa konta magazynu: nazwij konto scalablerazorstorageXXXX , gdzie wartości X są losowymi liczbami wybranych przez użytkownika. Ta nazwa musi być unikatowa na całej platformie Azure.
    • Region: wybierz ten sam region, który wcześniej wybrano.
  4. Pozostaw pozostałe wartości domyślne i wybierz pozycję Przejrzyj. Po zweryfikowaniu danych wejściowych przez platformę Azure wybierz pozycję Utwórz.

Platforma Azure aprowizuje nowe konto magazynu. Po zakończeniu zadania wybierz pozycję Przejdź do zasobu , aby wyświetlić nową usługę.

Tworzenie kontenera magazynu

Utwórz kontener do przechowywania kluczy ochrony danych aplikacji.

  1. Na stronie przeglądu nowego konta magazynu wybierz pozycję Przeglądarka magazynu w obszarze nawigacji po lewej stronie.
  2. Wybierz pozycję Kontenery obiektów blob.
  3. Wybierz pozycję + Dodaj kontener, aby otworzyć menu wysuwane Nowy kontener.
  4. Wprowadź nazwę skalowalnych kluczyzorkey, pozostaw pozostałe ustawienia domyślne, a następnie wybierz pozycję Utwórz.

Nowe kontenery są wyświetlane na liście stron.

Tworzenie usługi magazynu kluczy

Utwórz magazyn kluczy do przechowywania kluczy, które chronią dane w kontenerze magazynu obiektów blob.

  1. Na pasku wyszukiwania w witrynie Azure Portal wprowadź Key Vault i wybierz pasujący wynik.
  2. Na stronie listy magazynu kluczy wybierz pozycję + Utwórz.
  3. Na karcie Podstawy wprowadź następujące wartości:
    • Subskrypcja: wybierz tę samą subskrypcję, która została wcześniej wybrana.
    • Grupa zasobów: wybierz wcześniej utworzoną grupę zasobów msdocs-scalable-razor .
    • Nazwa magazynu kluczy: wprowadź nazwę scalablerazorvaultXXXX.
    • Region: wybierz region w pobliżu lokalizacji.
  4. Pozostaw pozostałe ustawienia domyślne, a następnie wybierz pozycję Przejrzyj i utwórz. Poczekaj, aż platforma Azure zweryfikuje ustawienia, a następnie wybierz pozycję Utwórz.

Platforma Azure aprowizuje nowy magazyn kluczy. Po zakończeniu zadania wybierz pozycję Przejdź do zasobu , aby wyświetlić nową usługę.

Tworzenie klucza

Utwórz klucz tajny, aby chronić dane na koncie usługi Blob Storage.

  1. Na głównej stronie przeglądu magazynu kluczy wybierz pozycję Klucze w obszarze nawigacji po lewej stronie.
  2. Na stronie Tworzenie klucza wybierz pozycję + Generuj/Importuj, aby otworzyć menu wysuwane Tworzenie klucza.
  3. Wprowadź ciąg razorkey w polu Nazwa . Pozostaw pozostałe ustawienia wartości domyślne, a następnie wybierz pozycję Utwórz. Na stronie listy kluczy zostanie wyświetlony nowy klucz.

Połączenie usług platformy Azure

Aplikacja kontenera wymaga bezpiecznego połączenia z kontem magazynu i usługami magazynu kluczy w celu usunięcia błędów ochrony danych i poprawnego skalowania. Nowe usługi są połączone razem, wykonując następujące czynności:

Ważne

Przypisania ról zabezpieczeń za pośrednictwem usługi Połączenie or i innych narzędzi zwykle propagują minutę lub dwie, a w niektórych rzadkich przypadkach może upłynąć do ośmiu minut.

Połączenie konta magazynu

  1. W witrynie Azure Portal przejdź do strony Przegląd aplikacji kontenera.
  2. W obszarze nawigacji po lewej stronie wybierz pozycję Łącznik usługi
  3. Na stronie Service Połączenie or wybierz pozycję + Utwórz, aby otworzyć panel wysuwany Tworzenie Połączenie ion i wprowadź następujące wartości:
    • Kontener: wybierz utworzoną wcześniej aplikację kontenera.
    • Typ usługi: wybierz pozycję Magazyn — obiekt blob.
    • Subskrypcja: wybierz wcześniej używaną subskrypcję.
    • nazwa Połączenie ion: pozostaw wartość domyślną.
    • Konto magazynu: wybierz utworzone wcześniej konto magazynu.
    • Typ klienta: wybierz pozycję .NET.
  4. Wybierz pozycję Dalej: Uwierzytelnianie , aby przejść do następnego kroku.
  5. Wybierz pozycję Tożsamość zarządzana przypisana przez system i wybierz pozycję Dalej: Sieć.
  6. Pozostaw wybrane domyślne opcje sieciowe, a następnie wybierz pozycję Przejrzyj i utwórz.
  7. Po zweryfikowaniu ustawień przez platformę Azure wybierz pozycję Utwórz.

Łącznik usługi umożliwia przypisaną przez system tożsamość zarządzaną w aplikacji kontenera. Przypisuje również rolę współautora danych obiektu blob usługi Storage do tożsamości, dzięki czemu może wykonywać operacje na danych w kontenerach magazynu.

Połączenie magazynu kluczy

  1. W witrynie Azure Portal przejdź do strony przeglądu aplikacji kontenera.
  2. W obszarze nawigacji po lewej stronie wybierz pozycję Łącznik usługi.
  3. Na stronie Service Połączenie or wybierz pozycję + Utwórz, aby otworzyć panel wysuwany Tworzenie Połączenie ion i wprowadź następujące wartości:
    • Kontener: wybierz utworzoną wcześniej aplikację kontenera.
    • Typ usługi: wybierz pozycję Key Vault.
    • Subskrypcja: wybierz wcześniej używaną subskrypcję.
    • nazwa Połączenie ion: pozostaw wartość domyślną.
    • Magazyn kluczy: wybierz utworzony wcześniej magazyn kluczy.
    • Typ klienta: wybierz pozycję .NET.
  4. Wybierz pozycję Dalej: Uwierzytelnianie , aby przejść do następnego kroku.
  5. Wybierz pozycję Tożsamość zarządzana przypisana przez system i wybierz pozycję Dalej: Sieć.
  6. Pozostaw wybrane domyślne opcje sieciowe, a następnie wybierz pozycję Przejrzyj i utwórz.
  7. Po zweryfikowaniu ustawień przez platformę Azure wybierz pozycję Utwórz.

Łącznik usługi przypisuje rolę do tożsamości, aby mógł wykonywać operacje na danych na kluczach magazynu kluczy.

Konfigurowanie i ponowne wdrażanie aplikacji

Zostały utworzone niezbędne zasoby platformy Azure. W tej sekcji kod aplikacji jest skonfigurowany do korzystania z nowych zasobów.

  1. Zainstaluj następujące pakiety NuGet:

    • Azure.Identity: Udostępnia klasy do pracy z usługami zarządzania tożsamościami i dostępem platformy Azure.
    • Microsoft.Extensions.Azure: udostępnia przydatne metody rozszerzenia do wykonywania podstawowych konfiguracji platformy Azure.
    • Azure.Extensions.AspNetCore.DataProtection.Blobs: umożliwia przechowywanie kluczy ASP.NET Core DataProtection w usłudze Azure Blob Storage, dzięki czemu klucze mogą być współużytkowane przez kilka wystąpień aplikacji internetowej.
    • Azure.Extensions.AspNetCore.DataProtection.Keys: umożliwia ochronę kluczy magazynowanych przy użyciu funkcji szyfrowania/opakowowania kluczy usługi Azure Key Vault.
    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.Azure
    dotnet add package Azure.Extensions.AspNetCore.DataProtection.Blobs
    dotnet add package Azure.Extensions.AspNetCore.DataProtection.Keys
    
  2. Zaktualizuj Program.cs za pomocą następującego wyróżnionego kodu:

    using Azure.Identity;
    using Microsoft.AspNetCore.DataProtection;
    using Microsoft.Extensions.Azure;
    
    var builder = WebApplication.CreateBuilder(args);
    var BlobStorageUri = builder.Configuration["AzureURIs:BlobStorage"];
    var KeyVaultURI = builder.Configuration["AzureURIs:KeyVault"];
    
    builder.Services.AddRazorPages();
    builder.Services.AddHttpClient();
    builder.Services.AddServerSideBlazor();
    
    builder.Services.AddAzureClientsCore();
    
    builder.Services.AddDataProtection()
                    .PersistKeysToAzureBlobStorage(new Uri(BlobStorageUri),
                                                    new DefaultAzureCredential())
                    .ProtectKeysWithAzureKeyVault(new Uri(KeyVaultURI),
                                                    new DefaultAzureCredential());
    var app = builder.Build();
    
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }
    
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    
    app.UseRouting();
    
    app.UseAuthorization();
    
    app.MapRazorPages();
    
    app.Run();
    

Powyższe zmiany umożliwiają aplikacji zarządzanie ochroną danych przy użyciu scentralizowanej, skalowalnej architektury. DefaultAzureCredential odnajduje konfiguracje tożsamości zarządzanej włączone wcześniej podczas ponownego wdrażania aplikacji.

Zaktualizuj symbole zastępcze w sekcji appsettings.json pliku, AzureURIs aby uwzględnić następujące elementy:

  1. Zastąp <storage-account-name> symbol zastępczy nazwą scalablerazorstorageXXXX konta magazynu.

  2. Zastąp <container-name> symbol zastępczy nazwą kontenera scalablerazorkeys magazynu.

  3. <key-vault-name> Zastąp symbol zastępczy nazwą scalablerazorvaultXXXX magazynu kluczy.

  4. Zastąp <key-name> symbol zastępczy w identyfikatorze URI magazynu kluczy nazwą utworzoną razorkey wcześniej.

    {
      "GitHubURL": "https://api.github.com",
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "AzureURIs": {
        "BlobStorage": "https://<storage-account-name>.blob.core.windows.net/<container-name>/keys.xml",
        "KeyVault": "https://<key-vault-name>.vault.azure.net/keys/<key-name>/"
      }
    }
    

Ponowne wdrażanie aplikacji

Aplikacja jest teraz poprawnie skonfigurowana do korzystania z utworzonych wcześniej usług platformy Azure. Ponownie wdróż aplikację, aby można było zastosować zmiany kodu.

  1. Kliknij prawym przyciskiem myszy węzeł projektu w Eksploratorze rozwiązań i wybierz pozycję Publikuj.
  2. W widoku podsumowania profilu publikowania wybierz przycisk Publikuj w prawym górnym rogu.

Program Visual Studio ponownie wdraża aplikację w utworzonym wcześniej środowisku aplikacji kontenera. Po zakończeniu procesów przeglądarka zostanie uruchomiona na stronie głównej aplikacji.

Ponownie przetestuj aplikację, wyszukując firmę Microsoft w polu wyszukiwania. Strona powinna teraz ponownie załadować poprawne wyniki za każdym razem, gdy prześlesz.

Konfigurowanie ról na potrzeby programowania lokalnego

Istniejący kod i konfiguracja aplikacji mogą również działać lokalnie podczas programowania. Klasa DefaultAzureCredential skonfigurowana wcześniej umożliwia pobieranie poświadczeń środowiska lokalnego w celu uwierzytelniania w usługach platformy Azure. Aby uwierzytelnianie działało, musisz przypisać te same role do własnego konta, które zostało przypisane do tożsamości zarządzanej aplikacji. Powinno to być to samo konto, którego używasz do logowania się do programu Visual Studio lub interfejsu wiersza polecenia platformy Azure.

Logowanie się do lokalnego środowiska deweloperskiego

Musisz zalogować się do interfejsu wiersza polecenia platformy Azure, programu Visual Studio lub programu Azure PowerShell, aby poświadczenia były pobierane przez DefaultAzureCredentialusługę .

az login

Przypisywanie ról do konta dewelopera

  1. W witrynie Azure Portal przejdź do utworzonego scalablerazor**** wcześniej konta magazynu.
  2. Wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) w obszarze nawigacji po lewej stronie.
  3. Wybierz pozycję + Dodaj , a następnie z menu rozwijanego dodaj przypisanie roli.
  4. Na stronie Dodawanie przypisania roli wyszukaj ciąg Storage blob data contributor, wybierz pasujący wynik, a następnie wybierz przycisk Dalej.
  5. Upewnij się, że wybrano pozycję Użytkownik, grupa lub jednostka usługi, a następnie wybierz pozycję + Wybierz członków.
  6. W oknie wysuwaym Wybieranie członków wyszukaj własne konto user@domain i wybierz je z wyników.
  7. Wybierz pozycję Dalej , a następnie wybierz pozycję Przejrzyj i przypisz. Po zweryfikowaniu ustawień przez platformę Azure wybierz ponownie pozycję Przejrzyj i przypisz .

Jak wspomniano wcześniej, propagacja uprawnień do przypisania roli może potrwać minutę lub dwie lub w rzadkich przypadkach do ośmiu minut.

Powtórz poprzednie kroki, aby przypisać rolę do konta, aby uzyskać dostęp do usługi magazynu kluczy i wpisu tajnego.

  1. W witrynie Azure Portal przejdź do utworzonego razorscalingkeys wcześniej magazynu kluczy.
  2. Wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) w obszarze nawigacji po lewej stronie.
  3. Wybierz pozycję + Dodaj , a następnie z menu rozwijanego dodaj przypisanie roli.
  4. Na stronie Dodawanie przypisania roli wyszukaj ciąg Key Vault Crypto Service Encryption User, wybierz pasujący wynik, a następnie wybierz przycisk Dalej.
  5. Upewnij się, że wybrano pozycję Użytkownik, grupa lub jednostka usługi, a następnie wybierz pozycję + Wybierz członków.
  6. W oknie wysuwaym Wybieranie członków wyszukaj własne konto user@domain i wybierz je z wyników.
  7. Wybierz pozycję Dalej , a następnie wybierz pozycję Przejrzyj i przypisz. Po zweryfikowaniu ustawień przez platformę Azure wybierz ponownie pozycję Przejrzyj i przypisz .

Może być konieczne ponowne zaczekanie na propagację tego przypisania roli.

Następnie możesz wrócić do programu Visual Studio i uruchomić aplikację lokalnie. Kod powinien nadal działać zgodnie z oczekiwaniami. DefaultAzureCredential używa istniejących poświadczeń z programu Visual Studio lub interfejsu wiersza polecenia platformy Azure.

Niezawodne wzorce aplikacji internetowej

Aby uzyskać wskazówki dotyczące tworzenia nowoczesnej, niezawodnej, wydajnej, wydajnej, ekonomicznej i skalowalnej aplikacji ASP.NET Core, od podstaw lub refaktoryzacji istniejącej aplikacji, zobacz Niezawodny wzorzecaplikacji internetowej for.NET YouTube.