Udostępnij za pośrednictwem


Samouczek: wdrażanie aplikacji ASP.NET Core i Azure SQL Database w usłudze aplikacja systemu Azure Service

Z tego samouczka dowiesz się, jak wdrożyć aplikację opartą na danych ASP.NET Core w usłudze aplikacja systemu Azure i nawiązać połączenie z usługą Azure SQL Database. Wdrożysz również usługę Azure Cache for Redis, aby włączyć kod buforowania w aplikacji. aplikacja systemu Azure Service to wysoce skalowalna, samoobsługowa usługa hostingu sieci Web, która może łatwo wdrażać aplikacje w systemie Windows lub Linux. Mimo że w tym samouczku jest używana aplikacja ASP.NET Core 8.0, proces jest taki sam w przypadku innych wersji platformy ASP.NET Core.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Utwórz domyślną architekturę usługi App Service, usługi SQL Database i pamięci podręcznej Redis Cache.
  • Zabezpieczanie wpisów tajnych połączenia przy użyciu tożsamości zarządzanej i odwołań usługi Key Vault.
  • Wdróż przykładową aplikację ASP.NET Core w usłudze App Service z repozytorium GitHub.
  • Umożliwia dostęp do parametry połączenia usługi App Service i ustawień aplikacji w kodzie aplikacji.
  • Wprowadź aktualizacje i ponownie wdróż kod aplikacji.
  • Generowanie schematu bazy danych przez przekazanie pakietu migracji.
  • Przesyłanie strumieniowe dzienników diagnostycznych z platformy Azure.
  • Zarządzanie aplikacją w witrynie Azure Portal.
  • Aprowizuj tę samą architekturę i wdróż przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure.
  • Zoptymalizuj przepływ pracy programowania za pomocą usług GitHub Codespaces i GitHub Copilot.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.
  • Konto usługi GitHub. Możesz również uzyskać jeden za darmo.
  • Znajomość programowania ASP.NET Core.
  • (Opcjonalnie) Aby wypróbować narzędzie GitHub Copilot, konto narzędzia GitHub Copilot. Dostępna jest 30-dniowa bezpłatna wersja próbna.
  • Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.
  • Zainstalowany interfejs wiersza polecenia dla deweloperów platformy Azure. Możesz wykonać kroki opisane w usłudze Azure Cloud Shell, ponieważ ma już zainstalowany interfejs wiersza polecenia dla deweloperów platformy Azure.
  • Znajomość programowania ASP.NET Core.
  • (Opcjonalnie) Aby wypróbować narzędzie GitHub Copilot, konto narzędzia GitHub Copilot. Dostępna jest 30-dniowa bezpłatna wersja próbna.

Przejdź do końca

Przykładową aplikację można szybko wdrożyć w tym samouczku i zobaczyć, jak działa na platformie Azure. Uruchom następujące polecenia w usłudze Azure Cloud Shell i postępuj zgodnie z monitem:

dotnet tool install --global dotnet-ef
mkdir msdocs-app-service-sqldb-dotnetcore
cd msdocs-app-service-sqldb-dotnetcore
azd init --template msdocs-app-service-sqldb-dotnetcore
azd up

1. Uruchamianie przykładu

Najpierw należy skonfigurować przykładową aplikację opartą na danych jako punkt wyjścia. Dla wygody przykładowe repozytorium zawiera konfigurację kontenera deweloperskiego . Kontener deweloperski ma wszystko, czego potrzebujesz, aby opracować aplikację, w tym bazę danych, pamięć podręczną i wszystkie zmienne środowiskowe wymagane przez przykładową aplikację. Kontener deweloperski może działać w usłudze GitHub codespace, co oznacza, że można uruchomić przykład na dowolnym komputerze z przeglądarką internetową.

Krok 1. W nowym oknie przeglądarki:

  1. Zaloguj się na istniejącym koncie GitHub.
  2. Przejdź do https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore/fork.
  3. Usuń zaznaczenie pola Kopiuj tylko gałąź główną. Chcesz, aby wszystkie gałęzie.
  4. Wybierz pozycję Utwórz rozwidlenie.

Zrzut ekranu przedstawiający sposób tworzenia rozwidlenia przykładowego repozytorium GitHub.

Krok 2. W rozwidleniu usługi GitHub:

  1. Wybierz opcję main>starter-no-infra dla gałęzi początkowej. Ta gałąź zawiera tylko przykładowy projekt i brak plików ani konfiguracji związanych z platformą Azure.
  2. Wybierz pozycję Code>Create codespace on starter-no-infra (Utwórz przestrzeń kodu w infrastrukturze starter-no-infra). Skonfigurowanie przestrzeni kodu zajmuje kilka minut.

Zrzut ekranu przedstawiający sposób tworzenia przestrzeni kodu w usłudze GitHub.

Krok 3. W terminalu usługi Codespace:

  1. Uruchom migracje bazy danych za pomocą polecenia dotnet ef database update.
  2. Uruchom aplikację za pomocą polecenia dotnet run.
  3. Po wyświetleniu powiadomienia Your application running on port 5093 is available.wybierz pozycję Otwórz w przeglądarce. Przykładowa aplikacja powinna być widoczna na nowej karcie przeglądarki. Aby zatrzymać aplikację, wpisz Ctrl+C.

Zrzut ekranu przedstawiający sposób uruchamiania przykładowej aplikacji w usłudze GitHub Codespace.

Napiwek

Możesz zapytać narzędzie GitHub Copilot o to repozytorium. Na przykład:

  • @workspace Co robi ten projekt?
  • @workspace Co robi folder devcontainer?

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

2. Tworzenie usługi App Service, bazy danych i pamięci podręcznej

W tym kroku utworzysz zasoby platformy Azure. Kroki użyte w tym samouczku umożliwiają utworzenie zestawu bezpiecznych domyślnie zasobów obejmujących usługę App Service, usługę Azure SQL Database i usługę Azure Cache. W procesie tworzenia określisz następujące elementy:

  • Nazwa aplikacji internetowej. Jest ona używana jako część nazwy DNS aplikacji w postaci https://<app-name>-<hash>.<region>.azurewebsites.net.
  • Region do fizycznego uruchamiania aplikacji na świecie. Jest ona również używana jako część nazwy DNS aplikacji.
  • Stos środowiska uruchomieniowego dla aplikacji. W tym miejscu wybierasz wersję platformy .NET, która ma być używana dla aplikacji.
  • Plan hostingu aplikacji. Jest to warstwa cenowa obejmująca zestaw funkcji i pojemność skalowania aplikacji.
  • Grupa zasobów dla aplikacji. Grupa zasobów umożliwia grupowanie (w kontenerze logicznym) wszystkich zasobów platformy Azure potrzebnych dla aplikacji.

Zaloguj się do witryny Azure Portal i wykonaj następujące kroki, aby utworzyć zasoby usługi aplikacja systemu Azure.

Krok 1. W witrynie Azure Portal:

  1. Wprowadź ciąg "baza danych aplikacji internetowej" na pasku wyszukiwania w górnej części witryny Azure Portal.
  2. Wybierz element z etykietą Web App + Database w obszarze nagłówka Marketplace . Możesz również przejść bezpośrednio do kreatora tworzenia.

Zrzut ekranu przedstawiający sposób użycia pola wyszukiwania na górnym pasku narzędzi w celu znalezienia kreatora tworzenia aplikacji internetowej i bazy danych.

Krok 2. Na stronie Tworzenie aplikacji internetowej i bazy danych wypełnij formularz w następujący sposób.

  1. Grupa zasobów: wybierz pozycję Utwórz nową i użyj nazwy msdocs-core-sql-tutorial.
  2. Region: dowolny region świadczenia usługi Azure blisko Ciebie.
  3. Nazwa: msdocs-core-sql-XYZ , gdzie XYZ jest dowolnymi trzema losowymi znakami. Ta nazwa musi być unikatowa w obrębie całej platformy Azure.
  4. Stos środowiska uruchomieniowego: .NET 8 (LTS).
  5. Aparat: SQLAzure. Usługa Azure SQL Database to w pełni zarządzany aparat bazy danych platformy jako usługi (PaaS), który jest zawsze uruchomiony w najnowszej stabilnej wersji programu SQL Server.
  6. Dodaj usługę Azure Cache for Redis?: Tak.
  7. Plan hostingu: Podstawowy. Gdy wszystko będzie gotowe, możesz skalować w górę do warstwy cenowej produkcyjnej.
  8. Wybierz pozycję Przejrzyj i utwórz.
  9. Po zakończeniu walidacji wybierz pozycję Utwórz.

Zrzut ekranu przedstawiający sposób konfigurowania nowej aplikacji i bazy danych w kreatorze Aplikacji internetowej i bazy danych.

Krok 3. Ukończenie wdrożenia trwa kilka minut. Po zakończeniu wdrażania wybierz przycisk Przejdź do zasobu . Jesteś przekierowany bezpośrednio do aplikacji usługi App Service, ale tworzone są następujące zasoby:

  • Grupa zasobów: kontener dla wszystkich utworzonych zasobów.
  • Plan usługi App Service: definiuje zasoby obliczeniowe dla usługi App Service. Zostanie utworzony plan systemu Linux w warstwie Podstawowa.
  • App Service: reprezentuje aplikację i działa w planie usługi App Service.
  • Sieć wirtualna: zintegrowana z aplikacją usługi App Service i izoluje ruch sieciowy zaplecza.
  • Prywatne punkty końcowe: punkty końcowe dostępu dla magazynu kluczy, serwera bazy danych i pamięci podręcznej Redis w sieci wirtualnej.
  • Interfejsy sieciowe: reprezentuje prywatne adresy IP, po jednym dla każdego z prywatnych punktów końcowych.
  • Serwer usługi Azure SQL Database: dostępny tylko zza jego prywatnego punktu końcowego.
  • Azure SQL Database: baza danych i użytkownik są tworzone dla Ciebie na serwerze.
  • Azure Cache for Redis: dostępna tylko zza prywatnego punktu końcowego.
  • Magazyn kluczy: dostępny tylko zza prywatnego punktu końcowego. Służy do zarządzania wpisami tajnymi dla aplikacji usługi App Service.
  • Prywatna strefa DNS strefy: włącz rozpoznawanie nazw DNS magazynu kluczy, serwera bazy danych i pamięci podręcznej Redis w sieci wirtualnej.

Zrzut ekranu przedstawiający ukończony proces wdrażania.

3. Zabezpieczanie wpisów tajnych połączenia

Kreator tworzenia wygenerował parametry łączności dla Ciebie już jako parametry połączenia platformy .NET i ustawienia aplikacji. Jednak najlepszym rozwiązaniem w zakresie zabezpieczeń jest całkowite przechowywanie wpisów tajnych z usługi App Service. Przeniesiesz wpisy tajne do magazynu kluczy i zmienisz ustawienie aplikacji na odwołania do usługi Key Vault za pomocą łączników usługi.

Krok 1. Na stronie usługi App Service:

  1. W menu po lewej stronie wybierz pozycję Ustawienia > Zmienne środowiskowe > Parametry połączenia.
  2. Wybierz pozycję AZURE_SQL_CONNECTIONSTRING.
  3. W obszarze Dodaj/Edytuj parametry połączenia w polu Wartość znajdź część Password= na końcu ciągu.
  4. Skopiuj ciąg hasła po polu Password= do późniejszego użycia. Ta parametry połączenia umożliwia nawiązanie połączenia z bazą danych SQL zabezpieczoną za prywatnym punktem końcowym. Hasło jest zapisywane bezpośrednio w aplikacji usługi App Service, co nie jest najlepsze. Podobnie pamięć podręczna Redis cache parametry połączenia na karcie Ustawienia aplikacji zawiera wpis tajny. Zmienisz to.

Zrzut ekranu przedstawiający sposób wyświetlania wartości ustawienia aplikacji.

Krok 2. Tworzenie magazynu kluczy na potrzeby bezpiecznego zarządzania wpisami tajnymi.

  1. Na górnym pasku wyszukiwania wpisz "key vault", a następnie wybierz pozycję Marketplace>Key Vault.
  2. W obszarze Grupa zasobów wybierz pozycję msdocs-core-sql-tutorial.
  3. W polu Nazwa magazynu kluczy wpisz nazwę składającą się tylko z liter i cyfr.
  4. W obszarze Region ustaw ją na przykładową lokalizację jako grupę zasobów.

Zrzut ekranu przedstawiający sposób tworzenia magazynu kluczy.

Krok 3:

  1. Wybierz kartę Sieć.
  2. Usuń zaznaczenie pozycji Włącz dostęp publiczny.
  3. Wybierz pozycję Utwórz prywatny punkt końcowy.
  4. W obszarze Grupa zasobów wybierz pozycję msdocs-core-sql-tutorial.
  5. W polu Nazwa magazynu kluczy wpisz nazwę składającą się tylko z liter i cyfr.
  6. W obszarze Region ustaw ją na przykładową lokalizację jako grupę zasobów.
  7. W oknie dialogowym w polu Lokalizacja wybierz tę samą lokalizację co aplikacja usługi App Service.
  8. W obszarze Grupa zasobów wybierz pozycję msdocs-core-sql-tutorial.
  9. W polu Nazwa wpisz msdocs-core-sql-XYZVvaultEndpoint.
  10. W obszarze Sieć wirtualna wybierz pozycję msdocs-core-sql-XYZVnet.
  11. W podsieci msdocs-core-sql-XYZSubnet.
  12. Wybierz przycisk OK.
  13. Wybierz pozycję Przeglądanie i tworzenie, a następnie wybierz pozycję Utwórz. Poczekaj na zakończenie wdrożenia magazynu kluczy. Powinien zostać wyświetlony komunikat "Wdrożenie zostało ukończone".

Zrzut ekranu przedstawiający sposób zabezpieczania magazynu kluczy przy użyciu prywatnego punktu końcowego.

Krok 4:

  1. Na górnym pasku wyszukiwania wpisz msdocs-core-sql, a następnie zasób usługi App Service o nazwie msdocs-core-sql-XYZ.
  2. Na stronie App Service w menu po lewej stronie wybierz pozycję Ustawienia > Łącznik usługi. Istnieją już dwa łączniki, które zostały utworzone przez kreatora tworzenia aplikacji.
  3. Zaznacz pole wyboru obok łącznika usługi SQL Database, a następnie wybierz pozycję Edytuj.
  4. Wybierz kartę Uwierzytelnianie.
  5. W polu Hasło wklej skopiowane wcześniej hasło.
  6. Wybierz pozycję Zapisz wpis tajny w usłudze Key Vault.
  7. W obszarze Połączenie z usługą Key Vault wybierz pozycję Utwórz nową. Okno dialogowe Tworzenie połączenia jest otwierane w górnej części okna dialogowego edycji.

Zrzut ekranu przedstawiający sposób edytowania łącznika usługi SQL Database za pomocą połączenia magazynu kluczy.

Krok 5. W oknie dialogowym Tworzenie połączenia dla połączenia usługi Key Vault:

  1. W usłudze Key Vault wybierz utworzony wcześniej magazyn kluczy.
  2. Wybierz pozycję Przejrzyj i utwórz. Powinna zostać wyświetlona opcja Wybrana tożsamość zarządzana przypisana przez system.
  3. Po zakończeniu walidacji wybierz pozycję Utwórz.

Zrzut ekranu przedstawiający sposób tworzenia łącznika usługi Key Vault.

Krok 6. Jesteś z powrotem w oknie dialogowym edycji dla defaultConnector.

  1. Na karcie Uwierzytelnianie poczekaj na utworzenie łącznika magazynu kluczy. Po zakończeniu zostanie automatycznie wybrana lista rozwijana Połączenie usługi Key Vault.
  2. Wybierz pozycję Dalej: Sieć.
  3. Wybierz pozycję Konfiguruj reguły zapory, aby włączyć dostęp do usługi docelowej. Kreator tworzenia aplikacji zabezpieczył już bazę danych SQL przy użyciu prywatnego punktu końcowego.
  4. Wybierz pozycję Zapisz. Zaczekaj na wyświetlenie powiadomienia Aktualizacja powiodła się .

Zrzut ekranu przedstawiający połączenie magazynu kluczy wybrane w łączniku usługi SQL Database.

Krok 7. Na stronie Łączniki usług:

  1. Zaznacz pole wyboru obok łącznika cache for Redis, a następnie wybierz pozycję Edytuj.
  2. Wybierz kartę Uwierzytelnianie.
  3. Wybierz pozycję Zapisz wpis tajny w usłudze Key Vault.
  4. W obszarze Połączenie z usługą Key Vault wybierz utworzony magazyn kluczy.
  5. Wybierz pozycję Dalej: Sieć.
  6. Wybierz pozycję Konfiguruj reguły zapory, aby włączyć dostęp do usługi docelowej. Kreator tworzenia aplikacji zabezpieczył już bazę danych SQL przy użyciu prywatnego punktu końcowego.
  7. Wybierz pozycję Zapisz. Zaczekaj na wyświetlenie powiadomienia Aktualizacja powiodła się .

Zrzut ekranu przedstawiający sposób edytowania łącznika usługi Cache for Redis za pomocą połączenia magazynu kluczy.

Krok 8. Aby zweryfikować zmiany:

  1. W menu po lewej stronie ponownie wybierz pozycję Zmienne środowiskowe > Parametry połączenia.
  2. Obok pozycji AZURE_SQL_CONNECTIONSTRING wybierz pozycję Pokaż wartość. Wartość powinna mieć @Microsoft.KeyVault(...)wartość , co oznacza, że jest to odwołanie do magazynu kluczy, ponieważ wpis tajny jest teraz zarządzany w magazynie kluczy.
  3. Aby sprawdzić parametry połączenia usługi Redis, wybierz kartę Ustawienia aplikacji. Obok pozycji AZURE_REDIS_CONNECTIONSTRING wybierz pozycję Pokaż wartość. Wartość powinna być @Microsoft.KeyVault(...) też.

Zrzut ekranu przedstawiający sposób wyświetlania wartości parametry połączenia platformy .NET na platformie Azure.

4. Wdrażanie przykładowego kodu

W tym kroku skonfigurujesz wdrożenie usługi GitHub przy użyciu funkcji GitHub Actions. Jest to tylko jeden z wielu sposobów wdrażania w usłudze App Service, ale także doskonały sposób ciągłej integracji w procesie wdrażania. Domyślnie każde git push repozytorium GitHub rozpoczyna akcję kompilacji i wdrażania.

Krok 1. W menu po lewej stronie wybierz pozycję Centrum wdrażania>.

Zrzut ekranu przedstawiający sposób otwierania centrum wdrażania w usłudze App Service.

Krok 2. Na stronie Centrum wdrażania:

  1. W obszarze Źródło wybierz pozycję GitHub. Domyślnie funkcja GitHub Actions jest wybierana jako dostawca kompilacji.
  2. Zaloguj się do konta usługi GitHub i postępuj zgodnie z monitem, aby autoryzować platformę Azure.
  3. W obszarze Organizacja wybierz swoje konto.
  4. W obszarze Repozytorium wybierz pozycję msdocs-app-service-sqldb-dotnetcore.
  5. W obszarze Gałąź wybierz pozycję starter-no-infra. Jest to ta sama gałąź, w której pracowaliśmy z przykładową aplikacją bez żadnych plików ani konfiguracji związanych z platformą Azure.
  6. W polu Typ uwierzytelniania wybierz pozycję Tożsamość przypisana przez użytkownika.
  7. W górnym menu wybierz pozycję Zapisz. Usługa App Service zatwierdza plik przepływu pracy w wybranym repozytorium GitHub w .github/workflows katalogu. Domyślnie centrum wdrażania tworzy tożsamość przypisaną przez użytkownika dla przepływu pracy do uwierzytelniania przy użyciu uwierzytelniania Microsoft Entra (OIDC). Aby uzyskać informacje o opcjach uwierzytelniania alternatywnego, zobacz Wdrażanie w usłudze App Service przy użyciu funkcji GitHub Actions.

Zrzut ekranu przedstawiający sposób konfigurowania ciągłej integracji/ciągłego wdrażania przy użyciu funkcji GitHub Actions.

Krok 3. Po powrocie do przestrzeni kodu usługi GitHub przykładowego rozwidlenia uruchom polecenie git pull origin starter-no-infra. Spowoduje to ściągnięcie nowo zatwierdzonego pliku przepływu pracy do przestrzeni kodu.

Zrzut ekranu przedstawiający ściąganie usługi Git w usłudze GitHub Codespace.

Krok 4 (opcja 1: w usłudze GitHub Copilot):

  1. Rozpocznij nową sesję czatu, wybierając widok Czat , a następnie wybierając +pozycję .
  2. Zapytaj: "@workspace Jak aplikacja łączy się z bazą danych i pamięcią podręczną?". Copilot może wyjaśnić klasę MyDatabaseContext i sposób jej konfiguracji w Program.cs.
  3. Zapytaj: "W trybie produkcyjnym chcę, aby aplikacja korzystała z parametry połączenia o nazwie AZURE_SQL_CONNECTIONSTRING dla bazy danych i ustawienia aplikacji o nazwie AZURE_REDIS_CONNECTIONSTRING*". Copilot może dać sugestię kodu podobną do tej w opcji 2: bez poniższych kroków narzędzia GitHub Copilot, a nawet poinformuj Cię o zmianie w pliku Program.cs.
  4. Otwórz Program.cs w eksploratorze i dodaj sugestię kodu. Narzędzie GitHub Copilot nie daje tej samej odpowiedzi za każdym razem i nie zawsze jest poprawne. Może być konieczne zadawanie większej liczby pytań, aby dostosować jego odpowiedź. Aby uzyskać porady, zobacz Co mogę zrobić z usługą GitHub Copilot w mojej przestrzeni kodu?.

Zrzut ekranu przedstawiający sposób zadawania pytania w nowej sesji czatu w usłudze GitHub Copilot.

Krok 4 (opcja 2: bez narzędzia GitHub Copilot):

  1. Otwórz Program.cs w eksploratorze.
  2. Znajdź skomentowany kod (wiersze 12–21) i usuń komentarz. Ten kod łączy się z bazą danych przy użyciu polecenia AZURE_SQL_CONNECTIONSTRING i nawiązuje połączenie z pamięcią podręczną Redis Przy użyciu ustawienia AZURE_REDIS_CONNECTIONSTRINGaplikacji .

Zrzut ekranu przedstawiający przestrzeń kodu usługi GitHub i otwarty plik Program.cs.

Krok 5 (Opcja 1: w usłudze GitHub Copilot):

  1. Otwórz plik .github/workflows/starter-no-infra_msdocs-core-sql-XYZ w eksploratorze. Ten plik został utworzony przez kreatora tworzenia usługi App Service.
  2. Wyróżnij dotnet publish krok i wybierz pozycję .
  3. Zapytaj Copilot: "Zainstaluj narzędzie dotnet ef, a następnie utwórz pakiet migracji w tym samym folderze danych wyjściowych".
  4. Jeśli sugestia jest akceptowalna, wybierz pozycję Akceptuj. Narzędzie GitHub Copilot nie daje tej samej odpowiedzi za każdym razem i nie zawsze jest poprawne. Może być konieczne zadawanie większej liczby pytań, aby dostosować jego odpowiedź. Aby uzyskać porady, zobacz Co mogę zrobić z usługą GitHub Copilot w mojej przestrzeni kodu?.

Zrzut ekranu przedstawiający użycie narzędzia GitHub Copilot w pliku przepływu pracy usługi GitHub.

Krok 5 (opcja 2: bez narzędzia GitHub Copilot):

  1. Otwórz plik .github/workflows/starter-no-infra_msdocs-core-sql-XYZ w eksploratorze. Ten plik został utworzony przez kreatora tworzenia usługi App Service.
  2. W ramach dotnet publish kroku dodaj krok, aby zainstalować narzędzie Entity Framework Core za pomocą polecenia dotnet tool install -g dotnet-ef --version 8.*.
  3. W ramach nowego kroku dodaj kolejny krok, aby wygenerować pakiet migracji bazy danych w pakiecie wdrożeniowym: dotnet ef migrations bundle --runtime linux-x64 -o ${{env.DOTNET_ROOT}}/myapp/migrationsbundle. Pakiet migracji jest samodzielnym plikiem wykonywalnym, który można uruchomić w środowisku produkcyjnym bez konieczności używania zestawu .NET SDK. Kontener systemu Linux usługi App Service ma tylko środowisko uruchomieniowe platformy .NET, a nie zestaw .NET SDK.

Zrzut ekranu przedstawiający kroki dodane do pliku przepływu pracy usługi GitHub dla pakietu migracji bazy danych.

Krok 6:

  1. Wybierz rozszerzenie Kontroli źródła.
  2. W polu tekstowym wpisz komunikat zatwierdzenia, taki jak Configure Azure database and cache connections. Możesz też wybrać i zezwolić usłudze GitHub Copilot na wygenerowanie komunikatu zatwierdzenia.
  3. Wybierz pozycję Zatwierdź, a następnie potwierdź wartość Tak.
  4. Wybierz pozycję Synchronizuj zmiany 1, a następnie potwierdź przy użyciu przycisku OK.

Zrzut ekranu przedstawiający zatwierdzone zmiany i wypchnięty do usługi GitHub.

Krok 7. Powrót do strony Centrum wdrażania w witrynie Azure Portal:

  1. Wybierz kartę Dzienniki , a następnie wybierz pozycję Odśwież , aby wyświetlić nowe uruchomienie wdrożenia.
  2. W elemencie dziennika dla przebiegu wdrożenia wybierz wpis Build/Deploy Logs (Wdróż dzienniki kompilacji/wdrażania) z najnowszym znacznikiem czasu.

Zrzut ekranu przedstawiający sposób otwierania dzienników wdrażania w centrum wdrażania.

Krok 8. Wykonano cię do repozytorium GitHub i zobaczysz, że akcja usługi GitHub jest uruchomiona. Plik przepływu pracy definiuje dwa oddzielne etapy, kompilowanie i wdrażanie. Poczekaj na uruchomienie usługi GitHub, aby wyświetlić stan Powodzenie. Trwa to około 5 minut.

Zrzut ekranu przedstawiający przebieg usługi GitHub w toku.

5. Generowanie schematu bazy danych

W przypadku usługi SQL Database chronionej przez sieć wirtualną najprostszym sposobem uruchamiania migracji bazy danych dotnet jest sesja SSH z kontenerem usługi App Service.

Krok 1. Wróć do strony usługi App Service, w menu po lewej stronie wybierz pozycję Narzędzia>programistyczne SSH, a następnie wybierz pozycję Przejdź.

Zrzut ekranu przedstawiający sposób otwierania powłoki SSH dla aplikacji w witrynie Azure Portal.

Krok 2. W terminalu SSH:

  1. Uruchom program cd /home/site/wwwroot. Oto wszystkie wdrożone pliki.
  2. Uruchom pakiet migracji wygenerowany przez przepływ pracy usługi GitHub za pomocą polecenia ./migrationsbundle -- --environment Production. Jeśli to się powiedzie, usługa App Service pomyślnie nawiązuje połączenie z usługą SQL Database. Pamiętaj, że --environment Production odpowiada zmianom kodu wprowadzonych w Program.cs.

Zrzut ekranu przedstawiający polecenia do uruchomienia w powłoce SSH i ich danych wyjściowych.

W sesji SSH zmiany tylko w plikach w /home programie mogą być utrwalane poza ponownym uruchomieniem aplikacji. Zmiany poza programem /home nie są utrwalane.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

6. Przejdź do aplikacji

Krok 1. Na stronie usługi App Service:

  1. W menu po lewej stronie wybierz pozycję Przegląd.
  2. Wybierz adres URL aplikacji.

Zrzut ekranu przedstawiający sposób uruchamiania usługi App Service w witrynie Azure Portal.

Krok 2. Dodaj kilka zadań do listy. Gratulacje, korzystasz z bezpiecznej aplikacji opartej na danych ASP.NET Core w usłudze aplikacja systemu Azure Service.

Zrzut ekranu przedstawiający aplikację .NET Core uruchomioną w usłudze App Service.

Napiwek

Przykładowa aplikacja implementuje wzorzec odkładania do pamięci podręcznej. Gdy odwiedzisz widok danych po raz drugi lub ponownie załadujesz tę samą stronę po wprowadzeniu zmian danych, czas przetwarzania na stronie internetowej pokazuje znacznie szybszy czas, ponieważ ładuje dane z pamięci podręcznej zamiast bazy danych.

7. Przesyłanie strumieniowe dzienników diagnostycznych

usługa aplikacja systemu Azure przechwytuje wszystkie komunikaty zarejestrowane w konsoli, aby ułatwić diagnozowanie problemów z aplikacją. Przykładowa aplikacja generuje komunikaty dziennika konsoli w każdym z jego punktów końcowych, aby zademonstrować tę funkcję.

Krok 1. Na stronie usługi App Service:

  1. W menu po lewej stronie wybierz pozycję Monitorowanie>dzienników usługi App Service.
  2. W obszarze Rejestrowanie aplikacji wybierz pozycję System plików, a następnie wybierz pozycję Zapisz.

Zrzut ekranu przedstawiający sposób włączania dzienników natywnych w usłudze App Service w witrynie Azure Portal.

Krok 2. W menu po lewej stronie wybierz pozycję Strumień dziennika. Zobaczysz dzienniki aplikacji, w tym dzienniki platformy i dzienniki z wewnątrz kontenera.

Zrzut ekranu przedstawiający sposób wyświetlania strumienia dziennika w witrynie Azure Portal.

8. Czyszczenie zasobów

Po zakończeniu możesz usunąć wszystkie zasoby z subskrypcji platformy Azure, usuwając grupę zasobów.

Krok 1. Na pasku wyszukiwania w górnej części witryny Azure Portal:

  1. Wpisz nazwę grupy zasobów.
  2. Wybierz odpowiednią grupę zasobów.

Zrzut ekranu przedstawiający wyszukiwanie i przechodzenie do grupy zasobów w witrynie Azure Portal.

Krok 2. Na stronie grupy zasobów wybierz pozycję Usuń grupę zasobów.

Zrzut ekranu przedstawiający lokalizację przycisku Usuń grupę zasobów w witrynie Azure Portal.

Krok 3:

  1. Wprowadź nazwę grupy zasobów, aby potwierdzić usunięcie.
  2. Wybierz Usuń.

Zrzut ekranu przedstawiający okno dialogowe potwierdzenia dotyczące usuwania grupy zasobów w witrynie Azure Portal. :

2. Tworzenie zasobów platformy Azure i wdrażanie przykładowej aplikacji

W tym kroku utworzysz zasoby platformy Azure i wdrożysz przykładową aplikację w celu App Service dla systemu Linux. Kroki użyte w tym samouczku umożliwiają utworzenie zestawu bezpiecznych domyślnie zasobów obejmujących usługę App Service, usługę Azure SQL Database i usługę Azure Cache for Redis.

Kontener deweloperski ma już interfejs wiersza polecenia dla deweloperów platformy Azure (AZD).

  1. W katalogu głównym repozytorium uruchom polecenie azd init.

    azd init --template dotnet-app-service-sqldb-infra
    
  2. Po wyświetleniu monitu podaj następujące odpowiedzi:

    Pytanie Odpowiedź
    Bieżący katalog nie jest pusty. Czy chcesz zainicjować projekt tutaj w katalogu "<your-directory>"? Y
    Co chcesz zrobić z tymi plikami? Zachowaj istniejące pliki bez zmian
    Wprowadź nową nazwę środowiska Wpisz unikatową nazwę. Szablon AZD używa tej nazwy jako części nazwy DNS aplikacji internetowej na platformie Azure (<app-name>-<hash>.azurewebsites.net). Znaki alfanumeryczne i łączniki są dozwolone.
  3. Zaloguj się do platformy azd auth login Azure, uruchamiając polecenie i postępując zgodnie z wierszem polecenia:

    azd auth login
    
  4. Utwórz niezbędne zasoby platformy Azure i wdróż kod aplikacji za azd up pomocą polecenia . Postępuj zgodnie z monitem, aby wybrać żądaną subskrypcję i lokalizację zasobów platformy Azure.

    azd up
    

    Wykonanie azd up polecenia trwa około 15 minut (pamięć podręczna Redis cache zajmuje najwięcej czasu). Ponadto kompiluje i wdraża kod aplikacji, ale później zmodyfikujesz kod, aby pracować z usługą App Service. Gdy jest uruchomiona, polecenie udostępnia komunikaty dotyczące procesu aprowizacji i wdrażania, w tym link do wdrożenia na platformie Azure. Po zakończeniu polecenie wyświetli również link do aplikacji wdrażania.

    Ten szablon AZD zawiera pliki (azure.yaml i katalog infra ), które generują domyślną architekturę secure-by-default z następującymi zasobami platformy Azure:

    • Grupa zasobów: kontener dla wszystkich utworzonych zasobów.
    • Plan usługi App Service: definiuje zasoby obliczeniowe dla usługi App Service. Zostanie utworzony plan systemu Linux w warstwie Podstawowa.
    • App Service: reprezentuje aplikację i działa w planie usługi App Service.
    • Sieć wirtualna: zintegrowana z aplikacją usługi App Service i izoluje ruch sieciowy zaplecza.
    • Prywatne punkty końcowe: punkty końcowe dostępu dla magazynu kluczy, serwera bazy danych i pamięci podręcznej Redis w sieci wirtualnej.
    • Interfejsy sieciowe: reprezentuje prywatne adresy IP, po jednym dla każdego z prywatnych punktów końcowych.
    • Serwer usługi Azure SQL Database: dostępny tylko zza jego prywatnego punktu końcowego.
    • Azure SQL Database: baza danych i użytkownik są tworzone dla Ciebie na serwerze.
    • Azure Cache for Redis: dostępna tylko zza prywatnego punktu końcowego.
    • Magazyn kluczy: dostępny tylko zza prywatnego punktu końcowego. Służy do zarządzania wpisami tajnymi dla aplikacji usługi App Service.
    • Prywatna strefa DNS strefy: włącz rozpoznawanie nazw DNS magazynu kluczy, serwera bazy danych i pamięci podręcznej Redis w sieci wirtualnej.

    Po zakończeniu tworzenia zasobów i wdrażaniu kodu aplikacji po raz pierwszy wdrożona przykładowa aplikacja nie działa jeszcze, ponieważ musisz wprowadzić niewielkie zmiany, aby połączyć się z bazą danych na platformie Azure.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

3. Sprawdź parametry połączenia

Napiwek

Domyślna parametry połączenia bazy danych SQL używa uwierzytelniania SQL. Aby uzyskać bezpieczniejsze uwierzytelnianie bez hasła, zobacz Jak mogę zmienić połączenie usługi SQL Database, aby zamiast tego używać tożsamości zarządzanej?

Szablon AZD wygenerował zmienne łączności dla Ciebie już jako ustawienia aplikacji i wyprowadza je do terminalu dla wygody. Ustawienia aplikacji to jeden ze sposobów przechowywania wpisów tajnych połączenia z repozytorium kodu.

  1. W danych wyjściowych AZD znajdź ustawienia AZURE_SQL_CONNECTIONSTRING i AZURE_REDIS_CONNECTIONSTRING. Wyświetlane są tylko nazwy ustawień. Wyglądają one następująco w danych wyjściowych usługi AZD:

     App Service app has the following connection strings:
         - AZURE_SQL_CONNECTIONSTRING
         - AZURE_REDIS_CONNECTIONSTRING
         - AZURE_KEYVAULT_RESOURCEENDPOINT
         - AZURE_KEYVAULT_SCOPE
     

    AZURE_SQL_CONNECTIONSTRINGzawiera parametry połączenia do usługi SQL Database na platformie Azure i AZURE_REDIS_CONNECTIONSTRING zawiera parametry połączenia do pamięci podręcznej Azure Redis Cache. Należy ich używać w kodzie później.

  2. Dla wygody szablon AZD wyświetla bezpośredni link do strony ustawień aplikacji. Znajdź link i otwórz go na nowej karcie przeglądarki.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

4. Modyfikowanie przykładowego kodu i ponowne wdrażanie

  1. W obszarze codespace usługi GitHub rozpocznij nową sesję czatu, wybierając widok Czat , a następnie wybierając +pozycję .

  2. Zapytaj: "@workspace Jak aplikacja łączy się z bazą danych i pamięcią podręczną?". Copilot może wyjaśnić klasę MyDatabaseContext i sposób jej konfiguracji w Program.cs.

  3. Zapytaj: "W trybie produkcyjnym chcę, aby aplikacja korzystała z parametry połączenia o nazwie AZURE_SQL_CONNECTIONSTRING dla bazy danych i ustawienia aplikacji o nazwie AZURE_REDIS_CONNECTIONSTRING*". Copilot może dać sugestię kodu podobną do tej w opcji 2: bez poniższych kroków narzędzia GitHub Copilot, a nawet poinformuj Cię o zmianie w pliku Program.cs.

  4. Otwórz Program.cs w eksploratorze i dodaj sugestię kodu.

    Narzędzie GitHub Copilot nie daje tej samej odpowiedzi za każdym razem i nie zawsze jest poprawne. Może być konieczne zadawanie większej liczby pytań, aby dostosować jego odpowiedź. Aby uzyskać porady, zobacz Co mogę zrobić z usługą GitHub Copilot w mojej przestrzeni kodu?.

Przed wdrożeniem tych zmian nadal trzeba wygenerować pakiet migracji.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

5. Generowanie schematu bazy danych

W przypadku usługi SQL Database chronionej przez sieć wirtualną najprostszym sposobem uruchamiania migracji bazy danych jest sesja SSH z kontenerem usługi App Service. Jednak kontenery systemu Linux usługi App Service nie mają zestawu SDK platformy .NET, więc najprostszym sposobem uruchamiania migracji bazy danych jest przekazanie pakietu migracji samodzielnie zawartych.

  1. Wygeneruj pakiet migracji dla projektu za pomocą następującego polecenia:

    dotnet ef migrations bundle --runtime linux-x64 -o migrationsbundle
    

    Napiwek

    Przykładowa aplikacja (zobacz DotNetCoreSqlDb.csproj) jest skonfigurowana do uwzględnienia tego pliku migrationsbundle . azd package Na etapie migracjebundle zostaną dodane do pakietu wdrożeniowego.

  2. Wdróż wszystkie zmiany za pomocą polecenia azd up.

    azd up
    
  3. W danych wyjściowych azd znajdź adres URL sesji SSH i przejdź do niego w przeglądarce. Wygląda na to w danych wyjściowych:

     Open SSH session to App Service container at: https://<app-name>-<hash>.scm.azurewebsites.net/webssh/host
     
  4. W terminalu SSH uruchom następujące polecenia:

    cd /home/site/wwwroot
    ./migrationsbundle -- --environment Production
    

    Jeśli to się powiedzie, usługa App Service pomyślnie nawiązuje połączenie z bazą danych. Pamiętaj, że --environment Production odpowiada zmianom kodu wprowadzonych w Program.cs.

W sesji SSH zmiany tylko w plikach w /home programie mogą być utrwalane poza ponownym uruchomieniem aplikacji. Zmiany poza programem /home nie są utrwalane.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

6. Przejdź do aplikacji

  1. W danych wyjściowych usługi AZD znajdź adres URL aplikacji i przejdź do niej w przeglądarce. Adres URL wygląda następująco w danych wyjściowych usługi AZD:

     Deploying services (azd deploy)
    
       (✓) Done: Deploying service web
       - Endpoint: https://<app-name>-<hash>.azurewebsites.net/
     
  2. Dodaj kilka zadań do listy.

    Zrzut ekranu przedstawiający aplikację internetową platformy ASP.NET Core z usługą SQL Database uruchomioną na platformie Azure z zadaniami.

    Gratulacje, uruchamiasz aplikację internetową w usłudze aplikacja systemu Azure z bezpieczną łącznością z usługą Azure SQL Database.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

7. Przesyłanie strumieniowe dzienników diagnostycznych

usługa aplikacja systemu Azure może przechwytywać dzienniki konsoli, aby ułatwić diagnozowanie problemów z aplikacją. Dla wygody szablon AZD włączył już rejestrowanie w lokalnym systemie plików i wysyła dzienniki do obszaru roboczego usługi Log Analytics.

Przykładowa aplikacja zawiera standardowe instrukcje rejestrowania, aby zademonstrować tę funkcję, jak pokazano w poniższym fragmencie kodu:

public async Task<IActionResult> Index()
{
    var todoItems = await _cache.GetAsync(_TodoItemsCacheKey);
    if (todoItems != null)
    {
        _logger.LogInformation("Data from cache.");
        var todoList = JsonConvert.DeserializeObject<List<Todo>>(Encoding.UTF8.GetString(todoItems));
        return View(todoList);
    }
    else
    {
        _logger.LogInformation("Data from database.");
        var todoList = await _context.Todo.ToListAsync();
        var serializedTodoList = JsonConvert.SerializeObject(todoList);
        await _cache.SetAsync(_TodoItemsCacheKey, Encoding.UTF8.GetBytes(serializedTodoList));
        return View(todoList);
    }
}

W danych wyjściowych usługi AZD znajdź link do strumieniowego przesyłania dzienników usługi App Service i przejdź do niego w przeglądarce. Link wygląda następująco w danych wyjściowych usługi AZD:

Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream

Dowiedz się więcej na temat rejestrowania w aplikacjach platformy .NET w serii Włączanie usługi Azure Monitor OpenTelemetry dla platformy .NET, Node.js, python i aplikacji Java.

Masz problemy? Zapoznaj się z sekcją Rozwiązywanie problemów.

8. Czyszczenie zasobów

Aby usunąć wszystkie zasoby platformy Azure w bieżącym środowisku wdrażania, uruchom polecenie azd down i postępuj zgodnie z monitami.

azd down

Rozwiązywanie problemów

Widok wdrażania portalu dla usługi Azure SQL Database przedstawia stan konfliktu

W zależności od wybranej subskrypcji i regionu stan wdrożenia usługi Azure SQL Database może mieć Conflictwartość , z następującym komunikatem w obszarze Szczegóły operacji:

Location '<region>' is not accepting creation of new Windows Azure SQL Database servers at this time.

Ten błąd jest najprawdopodobniej spowodowany limitem subskrypcji dla wybranego regionu. Spróbuj wybrać inny region wdrożenia.

W witrynie Azure Portal interfejs użytkownika strumienia dziennika dla aplikacji internetowej zawiera błędy sieci

Ten błąd może zostać wyświetlony:

Unable to open a connection to your app. This may be due to any network security groups or IP restriction rules that you have placed on your app. To use log streaming, please make sure you are able to access your app directly from your current network.

Zazwyczaj jest to błąd przejściowy, gdy aplikacja jest uruchamiana po raz pierwszy. Poczekaj kilka minut i sprawdź ponownie.

Sesja SSH w przeglądarce pokazuje SSH CONN CLOSED

Uruchomienie kontenera systemu Linux trwa kilka minut. Poczekaj kilka minut i sprawdź ponownie.

Strona strumienia dziennika portalu jest wyświetlana Connected! , ale nie ma dzienników

Po skonfigurowaniu dzienników diagnostycznych aplikacja zostanie ponownie uruchomiona. Może być konieczne odświeżenie strony, aby zmiany zaczęły obowiązywać w przeglądarce.

Często zadawane pytania

Ile kosztuje ta konfiguracja?

Cennik utworzonych zasobów jest następujący:

  • Plan usługi App Service jest tworzony w warstwie Podstawowa i można go skalować w górę lub w dół. Zobacz Cennik usługi App Service.
  • Usługa Azure SQL Database jest tworzona w warstwie ogólnego przeznaczenia bezserwerowej na sprzęcie z serii Standardowa z minimalnymi rdzeniami. Istnieje niewielki koszt i można je dystrybuować do innych regionów. Możesz jeszcze bardziej zminimalizować koszt, zmniejszając jego maksymalny rozmiar lub skalować go w górę, dostosowując warstwę obsługi, warstwę obliczeniową, konfigurację sprzętu, liczbę rdzeni, rozmiar bazy danych i nadmiarowość strefy. Zobacz Cennik usługi Azure SQL Database.
  • Usługa Azure Cache for Redis jest tworzona w warstwie Podstawowa z minimalnym rozmiarem pamięci podręcznej. Z tą warstwą wiąże się niewielki koszt. Można ją skalować w górę do wyższych warstw wydajności w celu uzyskania wyższej dostępności, klastrowania i innych funkcji. Zobacz Cennik usługi Azure Cache for Redis.
  • Sieć wirtualna nie powoduje naliczania opłat, chyba że skonfigurujesz dodatkowe funkcje, takie jak komunikacja równorzędna. Zobacz Cennik usługi Azure Virtual Network.
  • Prywatna strefa DNS wiąże się z niewielką opłatą. Zobacz Cennik usługi Azure DNS.

Jak mogę nawiązać połączenie z serwerem usługi Azure SQL Database zabezpieczonym za siecią wirtualną przy użyciu innych narzędzi?

  • Aby uzyskać podstawowy dostęp z poziomu narzędzia wiersza polecenia, można uruchomić sqlcmd z poziomu terminalu SSH aplikacji. Kontener aplikacji nie jest dołączony do sqlcmdelementu , dlatego należy zainstalować go ręcznie. Należy pamiętać, że zainstalowany klient nie jest utrwalany podczas ponownego uruchamiania aplikacji.
  • Aby nawiązać połączenie z klienta programu SQL Server Management Studio lub programu Visual Studio, maszyna musi znajdować się w sieci wirtualnej. Na przykład może to być maszyna wirtualna platformy Azure połączona z jedną z podsieci lub maszyna w sieci lokalnej, która ma połączenie sieci VPN typu lokacja-lokacja z siecią wirtualną platformy Azure.

W jaki sposób programowanie aplikacji lokalnych działa z funkcją GitHub Actions?

Pobierz automatycznie wygenerowany plik przepływu pracy z usługi App Service, aby na przykład git push uruchomić nową kompilację i uruchomienie wdrożenia. Z lokalnego klonu repozytorium GitHub należy wprowadzić żądane aktualizacje wypychane do usługi GitHub. Na przykład:

git add .
git commit -m "<some-message>"
git push origin main

Jak mogę błędy debugowania podczas wdrażania funkcji GitHub Actions?

Jeśli krok zakończy się niepowodzeniem w automatycznie wygenerowanym pliku przepływu pracy usługi GitHub, spróbuj zmodyfikować polecenie, które zakończyło się niepowodzeniem, aby wygenerować więcej pełnych danych wyjściowych. Na przykład możesz uzyskać więcej danych wyjściowych dotnet z dowolnego polecenia, dodając -v opcję . Zatwierdź i wypchnij zmiany, aby wyzwolić kolejne wdrożenie w usłudze App Service.

Nie mam uprawnień do tworzenia tożsamości przypisanej przez użytkownika

Zobacz Konfigurowanie wdrożenia funkcji GitHub Actions z Centrum wdrażania.

Jak mogę zmienić połączenie usługi SQL Database, aby zamiast tego używać tożsamości zarządzanej?

Domyślna parametry połączenia do bazy danych SQL jest zarządzana przez łącznik usługi z nazwą defaultConnector i używa uwierzytelniania SQL. Aby zastąpić go połączeniem używającym tożsamości zarządzanej, uruchom następujące polecenia w usłudze Cloud Shell po zastąpieniu symboli zastępczych:

az extension add --name serviceconnector-passwordless --upgrade
az sql server update --enable-public-network true
az webapp connection delete sql --connection defaultConnector --resource-group <group-name> --name <app-name>
az webapp connection create sql --connection defaultConnector --resource-group <group-name> --name <app-name> --target-resource-group <group-name> --server <database-server-name> --database <database-name> --client-type dotnet --system-identity --config-connstr true
az sql server update --enable-public-network false

Domyślnie polecenie wykonuje następujące czynności az webapp connection create sql --client-type dotnet --system-identity --config-connstr :

  • Ustawia użytkownika jako administratora microsoft Entra ID serwera bazy danych SQL.
  • Utwórz tożsamość zarządzaną przypisaną przez system i przyznaj jej dostęp do bazy danych.
  • Generuje parametry połączenia bez hasła o nazwie AZURE_SQL_CONNECTIONGSTRING, której aplikacja używa już na końcu samouczka.

Aplikacja powinna mieć teraz łączność z bazą danych SQL. Aby uzyskać więcej informacji, zobacz Samouczek: nawiązywanie połączenia z bazami danych platformy Azure z usługi App Service bez wpisów tajnych przy użyciu tożsamości zarządzanej.

Napiwek

Nie chcesz włączać połączenia z siecią publiczną? Możesz pominąć az sql server update --enable-public-network true , uruchamiając polecenia z poziomu usługi Azure Cloud Shell zintegrowanej z siecią wirtualną, jeśli masz przypisanie roli Właściciel w ramach subskrypcji.

Aby udzielić tożsamości wymaganego dostępu do bazy danych zabezpieczonej przez sieć wirtualną, az webapp connection create sql wymaga bezpośredniej łączności z uwierzytelnianiem entra ID na serwerze bazy danych. Domyślnie usługa Azure Cloud Shell nie ma tego dostępu do bazy danych zabezpieczonej przez sieć.

Co mogę zrobić za pomocą narzędzia GitHub Copilot w swojej przestrzeni kodu?

Być może zauważysz, że widok czatu Copilot w usłudze GitHub był już dostępny podczas tworzenia przestrzeni kodu. Dla Twojej wygody dołączamy rozszerzenie czatu Copilot w usłudze GitHub w definicji kontenera (zobacz .devcontainer/devcontainer.json). Potrzebujesz jednak konta GitHub Copilot (dostępna jest 30-dniowa bezpłatna wersja próbna).

Kilka wskazówek dotyczących rozmowy z usługą GitHub Copilot:

  • W jednej sesji czatu pytania i odpowiedzi opierają się na sobie i możesz dostosować swoje pytania, aby dostosować uzyskaną odpowiedź.
  • Domyślnie narzędzie GitHub Copilot nie ma dostępu do żadnego pliku w repozytorium. Aby zadać pytania dotyczące pliku, najpierw otwórz plik w edytorze.
  • Aby umożliwić usłudze GitHub Copilot dostęp do wszystkich plików w repozytorium podczas przygotowywania odpowiedzi, zacznij od pytania @workspace. Aby uzyskać więcej informacji, zobacz Use the @workspace agent.
  • W sesji czatu narzędzie GitHub Copilot może sugerować zmiany i (z @workspace) nawet tam, gdzie wprowadzić zmiany, ale nie może wprowadzać zmian. Wystarczy dodać sugerowane zmiany i przetestować je.

Oto kilka innych rzeczy, które można powiedzieć, aby dostroić uzyskaną odpowiedź:

  • Chcę, aby ten kod był uruchamiany tylko w trybie produkcyjnym.
  • Chcę, aby ten kod był uruchamiany tylko w usłudze aplikacja systemu Azure, a nie lokalnie.
  • Parametr --output-path wydaje się nieobsługiwany.

Przejdź do następnego samouczka, aby dowiedzieć się, jak zabezpieczyć aplikację przy użyciu domeny niestandardowej i certyfikatu.

Możesz też zapoznać się z innymi zasobami: