Udostępnij za pośrednictwem


Samouczek: tworzenie aplikacji internetowej JBoss przy użyciu usługi aplikacja systemu Azure Service w systemach Linux i MySQL

W tym samouczku pokazano, jak utworzyć, skonfigurować i wdrożyć bezpieczną aplikację JBoss w usłudze aplikacja systemu Azure Service, która łączy się z bazą danych MySQL (przy użyciu usługi Azure Database for MySQL). 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. Po zakończeniu będziesz mieć aplikację JBoss działającą w usłudze aplikacja systemu Azure Service w systemie Linux.

Zrzut ekranu przedstawiający aplikację JBoss przechowującą dane w usłudze MySQL.

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

  • Utwórz domyślną architekturę aplikacja systemu Azure Service i Azure Database for MySQL — serwer elastyczny.
  • Zabezpieczanie łączności z bazą danych przy użyciu parametry połączenia bez hasła.
  • Sprawdź źródła danych JBoss w usłudze App Service przy użyciu interfejsu wiersza polecenia narzędzia JBoss.
  • Wdróż przykładową aplikację JBoss w usłudze App Service z repozytorium GitHub.
  • Uzyskaj dostęp do ustawień aplikacji usługi App Service w kodzie aplikacji.
  • Wprowadź aktualizacje i ponownie wdróż kod aplikacji.
  • Przesyłanie strumieniowe dzienników diagnostycznych z usługi App Service.
  • 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ść języka Java z programowaniem JBoss.
  • (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ść języka Java z programowaniem JBoss.
  • (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:

mkdir msdocs-jboss-mysql-sample-app
cd msdocs-jboss-mysql-sample-app
azd init --template msdocs-jboss-mysql-sample-app
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-jboss-mysql-sample-app/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. 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 program mvn clean wildfly:run.
  2. Po wyświetleniu powiadomienia Your application running on port 8080 is available.zaczekaj kilka sekund na zakończenie ładowania aplikacji przez serwer WildFly. Następnie wybierz pozycję Otwórz w przeglądarce. Przykładowa aplikacja powinna być widoczna na nowej karcie przeglądarki. Aby zatrzymać serwer WildFly, 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ług App Service i MySQL

Najpierw należy utworzyć zasoby platformy Azure. Kroki używane w tym samouczku umożliwiają utworzenie zestawu bezpiecznych domyślnie zasobów obejmujących usługi App Service i usługę Azure Database for MySQL. W przypadku procesu tworzenia należy określić:

  • 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ę języka Java, 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. Na górnym pasku wyszukiwania wpisz app service.
  2. Wybierz element oznaczony etykietą App Service pod nagłówkiem Usługi .
  3. Wybierz pozycję Utwórz>aplikację internetową. 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.

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

  1. Nazwa: msdocs-jboss-mysql. Zostanie wygenerowana grupa zasobów o nazwie msdocs-jboss-mysql_group .
  2. Stos środowiska uruchomieniowego: Java 17.
  3. Stos serwera internetowego Java: Red Hat JBoss EAP 8. Jeśli subskrypcja oprogramowania Red Hat została już skonfigurowana za pomocą platformy Azure, wybierz pozycję Red Hat JBoss EAP 8 BYO License (Licencja RED Hat JBoss EAP 8 BYO).
  4. Region: dowolny region świadczenia usługi Azure blisko Ciebie.
  5. Plan systemu Linux: utwórz nowy i użyj nazwy msdocs-jboss-mysql.
  6. Plan cenowy: Premium V3 P0V3. Gdy wszystko będzie gotowe, możesz skalować w górę do innej warstwy cenowej.
  7. Wdróż za pomocą aplikacji: wybierz pozycję Baza danych. Usługa Azure Database for MySQL — serwer elastyczny jest domyślnie wybierany. Jest to w pełni zarządzana baza danych MySQL jako usługa na platformie Azure zgodna z najnowszymi wersjami społeczności.
  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.

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.
  • Serwer elastyczny usługi Azure Database for MySQL: dostępny tylko z sieci wirtualnej. Baza danych i użytkownik są tworzone dla Ciebie na serwerze.
  • Prywatna strefa DNS strefy: włącz rozpoznawanie nazw DNS serwera bazy danych w sieci wirtualnej.
  • Prywatne punkty końcowe: dostęp do punktów końcowych serwera bazy danych w sieci wirtualnej.

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

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

3. Tworzenie połączenia bez hasła

W tym kroku wygenerujesz połączenie usługi opartej na tożsamości zarządzanej, które można później użyć do utworzenia źródła danych na serwerze JBoss. Korzystając z tożsamości zarządzanej w celu nawiązania połączenia z bazą danych MySQL, kod jest bezpieczny przed przypadkowym wyciekiem wpisów tajnych.

Krok 1. Tworzenie tożsamości zarządzanej.

  1. Na górnym pasku wyszukiwania wpisz tożsamość zarządzaną.
  2. Wybierz element z etykietą Tożsamości zarządzane pod nagłówkiem Usługi .
  3. Wybierz pozycję Utwórz.
  4. W obszarze Grupa zasobów wybierz pozycję msdocs-jboss-mysql_group.
  5. W obszarze Region wybierz ten sam region, który był używany dla aplikacji internetowej.
  6. W polu Nazwa wpisz msdocs-jboss-mysql-server-identity.
  7. Wybierz pozycję Przejrzyj i utwórz.
  8. Wybierz pozycję Utwórz.

Zrzut ekranu przedstawiający sposób konfigurowania nowej tożsamości zarządzanej.

Krok 2. Włączanie uwierzytelniania microsoft Entra na serwerze MySQL.

  1. Na górnym pasku wyszukiwania wpisz msdocs-jboss-mysql-server.
  2. Wybierz zasób usługi Azure Database for MySQL — serwer elastyczny o nazwie msdocs-jboss-mysql-server.
  3. W menu po lewej stronie wybierz pozycję Uwierzytelnianie zabezpieczeń>.
  4. W obszarze Przypisz dostęp do wybierz pozycję Tylko uwierzytelnianie entra firmy Microsoft.
  5. W obszarze Tożsamość zarządzana przypisana przez użytkownika wybierz pozycję Wybierz.
  6. Wybierz pozycję msdocs-jboss-mysql-server-identity, a następnie wybierz pozycję Dodaj. Przypisanie tożsamości do serwera MySQL zajmuje chwilę.
  7. W obszarze Nazwa administratora entra firmy Microsoft wybierz pozycję Wybierz.
  8. Znajdź swoje konto platformy Azure i wybierz je, a następnie wybierz pozycję Wybierz.
  9. Wybierz pozycję Zapisz i poczekaj na zakończenie operacji.

Zrzut ekranu przedstawiający sposób konfigurowania uwierzytelniania entra firmy Microsoft dla usługi Azure Database for MySQL — serwer elastyczny.

Krok 3. Dodawanie łącznika usługi opartej na tożsamości zarządzanej.

  1. Na górnym pasku wyszukiwania wpisz msdocs-jboss-mysql.
  2. Wybierz zasób usługi App Service o nazwie msdocs-jboss-mysql.
  3. Na stronie App Service w menu po lewej stronie wybierz pozycję Ustawienia > Łącznik usługi.
  4. Wybierz pozycję Utwórz.
  5. Na karcie Podstawy :
  6. Ustaw wartość Typ usługi na serwer elastyczny DB for MySQL.
  7. Ustaw serwer elastyczny MySQL na msdocs-jboss-mysql-server.
  8. Ustaw pozycję Baza danych MySQL na msdocs-jboss-mysql-database.
  9. Ustaw typ klienta na Java.
  10. Wybierz kartę Uwierzytelnianie.
  11. Wybierz pozycję Tożsamość zarządzana przypisana przez system.
  12. Wybierz kartę Przeglądanie i tworzenie .
  13. Po zakończeniu walidacji wybierz pozycję Utwórz w usłudze Cloud Shell i poczekaj na zakończenie operacji w usłudze Cloud Shell.
  14. Po wyświetleniu danych wyjściowych JSON możesz zamknąć usługę Cloud Shell. Zamknij również okno dialogowe Tworzenie połączenia.
  15. Wybierz pozycję Odśwież , aby wyświetlić nowy łącznik usługi.

Zrzut ekranu przedstawiający całkowicie skonfigurowany łącznik usługi gotowy do utworzenia za pomocą usługi Cloud Shell.

Krok 4. Dodawanie wtyczek uwierzytelniania do parametry połączenia.

  1. W menu po lewej stronie wybierz pozycję Zmienne środowiskowe.
  2. Wybierz pozycję AZURE_MYSQL_CONNECTIONSTRING. Pole Wartość powinno zawierać wartość , user ale nie password. Użytkownik jest tożsamością zarządzaną.
  3. Serwer JBoss w aplikacji usługi App Service zawiera wtyczki uwierzytelniania uwierzytelniające tożsamość zarządzaną, ale nadal musisz dodać go do parametry połączenia. Przewiń na koniec wartości i dołącz wartość &defaultAuthenticationPlugin=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin&authenticationPlugins=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin.
  4. Wybierz Zastosuj.
  5. Wybierz pozycję Zastosuj, a następnie potwierdź.

Zrzut ekranu przedstawiający sposób zmiany wartości zmiennej środowiskowej MySQL na platformie Azure.

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

4. Potwierdź źródło danych JNDI

Jeśli dodasz ustawienie aplikacji zawierające prawidłowe parametry połączenia JDBC dla baz danych Oracle, SQL Server, PostgreSQL lub MySQL, usługa App Service dodaje źródło danych Java Naming and Directory Interface (JNDI) na serwerze JBoss. W tym kroku użyjesz połączenia SSH z kontenerem aplikacji, aby zweryfikować źródło danych JNDI. W tym procesie dowiesz się, jak uzyskać dostęp do powłoki SSH i uruchomić interfejs wiersza polecenia JBoss.

Krok 1. Powrót na stronę usługi App Service:

  1. W menu po lewej stronie wybierz pozycję Narzędzia > programistyczne SSH.
  2. Wybierz pozycję Idź.

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

Krok 2. W terminalu SSH:

  1. Uruchom program $JBOSS_HOME/bin/jboss-cli.sh --connect.
  2. W połączeniu interfejsu wiersza polecenia JBoss uruchom polecenie ls subsystem=datasources/data-source. Powinno zostać wyświetlone automatycznie wygenerowane źródło danych o nazwie AZURE_MYSQL_CONNECTIONSTRING_DS.
  3. Pobierz nazwę JNDI źródła danych za pomocą polecenia /subsystem=datasources/data-source=AZURE_MYSQL_CONNECTIONSTRING_DS:read-attribute(name=jndi-name). Masz teraz nazwę java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DSJNDI, której można użyć w kodzie aplikacji później.

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

Uwaga

Tylko zmiany w plikach w /home programie mogą być utrwalane poza ponownymi uruchomieniami aplikacji. Jeśli na przykład edytujesz /opt/eap/standalone/configuration/standalone.xml lub zmienisz konfigurację serwera w interfejsie wiersza polecenia narzędzia JBoss, zmiany nie będą utrwalane poza ponownym uruchomieniem aplikacji. Aby utrwalać zmiany, użyj skryptu uruchamiania, takiego jak pokazano w temacie Konfigurowanie źródeł danych dla aplikacji Tomcat, JBoss lub Java SE w usłudze aplikacja systemu Azure Service

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

5. 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.

Podobnie jak konwencja JBoss, jeśli chcesz wdrożyć w kontekście głównym JBoss, nazwij skompilowany artefakt ROOT.war.

Krok 1. Po powrocie do strony usługi App Service 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-jboss-mysql-sample-app.
  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. Można go zmodyfikować zgodnie z potrzebami w witrynie .github/workflows/starter-no-infra_msdocs-jboss-mysql.yml.

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, klikając widok Czat , a następnie klikając pozycję +.
  2. Zapytaj: "@workspace Jak aplikacja łączy się z bazą danych?". Copilot może podać pewne wyjaśnienia dotyczące java:jboss/MySQLDS źródła danych i sposobu jego konfiguracji.
  3. Powiedzmy: "Źródło danych w narzędziu JBoss na platformie Azure używa nazwy JNDI java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DS". 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ę, aby wprowadzić zmianę w klasie. GitHub Copilot nie daje tej samej odpowiedzi za każdym razem, 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 plik src/main/resources/META-INF/persistence.xml w eksploratorze. Po uruchomieniu aplikacji ładuje ustawienia bazy danych w tym pliku.
  2. Zmień wartość <jta-data-source> z java:jboss/MySQLDS na java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DS, czyli źródło danych znalezione za pomocą interfejsu wiersza polecenia JBoss wcześniej w powłoce SSH.

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

Krok 5:

  1. Wybierz rozszerzenie Kontroli źródła.
  2. W polu tekstowym wpisz komunikat zatwierdzenia, taki jak Configure Azure JNDI name.
  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 6. Powrót do strony Centrum wdrażania w witrynie Azure Portal:

  1. Wybierz pozycję Dzienniki. Nowe uruchomienie wdrożenia zostało już uruchomione z zatwierdzonych zmian.
  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 7. 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 Ukończono. Trwa to około 5 minut.

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

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. W obszarze Domena domyślna 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, uruchamiasz aplikację internetową w usłudze aplikacja systemu Azure z bezpieczną łącznością z usługą Azure Database for MySQL.

Zrzut ekranu przedstawiający aplikację internetową JBoss z programem MySQL uruchomionym na platformie Azure.

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

7. Przesyłanie strumieniowe dzienników diagnostycznych

usługa aplikacja systemu Azure przechwytuje wszystkie komunikaty wyjściowe do konsoli, aby ułatwić diagnozowanie problemów z aplikacją. Przykładowa aplikacja zawiera standardowe instrukcje rejestrowania log4j, aby zademonstrować tę funkcję, jak pokazano w poniższym fragmencie kodu:

private static final Logger logger = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());

@PersistenceContext
private EntityManager entityManager;

public List<Task> getAllTasks() {
    logger.log(Level.INFO, "Finding all tasks. ");

    return this.entityManager.createNamedQuery("findAllTasks", Task.class).getResultList();
}

Na stronie App Service z 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.

Dowiedz się więcej na temat rejestrowania w aplikacjach Java 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

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. Wprowadź nazwę grupy zasobów msdocs-jboss-mysql_group.
  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. Potwierdź usunięcie, wpisując nazwę grupy zasobów.
  2. Wybierz Usuń.
  3. Potwierdź ponownie polecenie 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żywane w tym samouczku umożliwiają utworzenie zestawu bezpiecznych domyślnie zasobów obejmujących usługi App Service i usługę Azure Database for MySQL.

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 jboss-app-service-mysql-infra
    
  2. Po wyświetleniu monitu podaj następujące odpowiedzi:

    Pytanie Odpowiedź
    Czy kontynuować inicjowanie aplikacji w '<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 B1 .
    • 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.
    • Serwer elastyczny usługi Azure Database for MySQL: dostępny tylko z sieci wirtualnej. Baza danych jest tworzona dla Ciebie na serwerze.
    • Azure Cache for Redis: dostępne tylko z poziomu sieci wirtualnej.
    • Prywatne punkty końcowe: dostęp do punktów końcowych magazynu kluczy i pamięci podręcznej Redis w sieci wirtualnej.
    • Prywatna strefa DNS strefy: włącz rozpoznawanie nazw DNS magazynu kluczy, serwera bazy danych i pamięci podręcznej Redis w sieci wirtualnej.
    • Obszar roboczy usługi Log Analytics: działa jako kontener docelowy aplikacji w celu wysłania dzienników, gdzie można również wykonywać zapytania dotyczące dzienników.
    • Magazyn kluczy: służy do przechowywania hasła bazy danych tak samo podczas ponownego wdrażania za pomocą usługi AZD.

    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

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 usługi AZD znajdź ustawienie AZURE_MYSQL_CONNECTIONSTRINGaplikacji . 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 app settings:
             - AZURE_KEYVAULT_RESOURCEENDPOINT
             - AZURE_KEYVAULT_SCOPE
             - AZURE_MYSQL_CONNECTIONSTRING
             - AZURE_REDIS_CONNECTIONSTRING
     

    AZURE_MYSQL_CONNECTIONSTRINGzawiera parametry połączenia do bazy danych MySQL na platformie Azure. Należy go użyć 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.

    Jeśli dodasz ustawienie aplikacji zawierające prawidłowe źródło danych Oracle, SQL Server, PostgreSQL lub MySQL parametry połączenia, usługa App Service dodaje je jako źródło danych Java Naming and Directory Interface (JNDI) w pliku context.xml serwera JBoss.

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

4. Potwierdź źródło danych JNDI

W tym kroku użyjesz połączenia SSH z kontenerem aplikacji, aby zweryfikować źródło danych JNDI na serwerze JBoss. W tym procesie dowiesz się, jak uzyskać dostęp do powłoki SSH dla kontenera JBoss.

  1. W danych wyjściowych usługi 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
     
  2. W terminalu SSH uruchom polecenie $JBOSS_HOME/bin/jboss-cli.sh --connect.

  3. W połączeniu interfejsu wiersza polecenia JBoss uruchom polecenie ls subsystem=datasources/data-source. Powinno zostać wyświetlone automatycznie wygenerowane źródło danych o nazwie AZURE_MYSQL_CONNECTIONSTRING_DS.

  4. Pobierz nazwę JNDI źródła danych za pomocą polecenia /subsystem=datasources/data-source=AZURE_MYSQL_CONNECTIONSTRING_DS:read-attribute(name=jndi-name). Masz teraz nazwę java:jboss/env/jdbc/AZURE_MYSQL_CONNECTIONSTRING_DSJNDI, której można użyć w kodzie aplikacji później.

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

Uwaga

Tylko zmiany w plikach w /home programie mogą być utrwalane poza ponownymi uruchomieniami aplikacji. Jeśli na przykład edytujesz /opt/eap/standalone/configuration/standalone.xml lub zmienisz konfigurację serwera w interfejsie wiersza polecenia narzędzia JBoss, zmiany nie będą utrwalane poza ponownym uruchomieniem aplikacji. Aby utrwalać zmiany, użyj skryptu uruchamiania, takiego jak pokazano w temacie Konfigurowanie źródeł danych dla aplikacji Tomcat, JBoss lub Java SE w usłudze aplikacja systemu Azure Service

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

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

  1. W usłudze GitHub Codespace rozpocznij nową sesję czatu, klikając widok Czat , a następnie klikając +pozycję .

  2. Zapytaj: "@workspace Jak aplikacja łączy się z bazą danych?". Copilot może podać pewne wyjaśnienia dotyczące java:jboss/MySQLDS źródła danych i sposobu jego konfiguracji.

  3. Zapytaj: "@workspace chcę zastąpić źródło danych zdefiniowane w persistence.xml istniejącym źródłem danych JNDI w narzędziu JBoss". 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 persistence.xml .

  4. Otwórz plik src/main/resources/META-INF/persistence.xml w eksploratorze i wprowadź sugerowaną zmianę JNDI.

    GitHub Copilot nie daje tej samej odpowiedzi za każdym razem, może być konieczne zadawanie innych pytań, aby dostosować jego odpowiedź. Aby uzyskać porady, zobacz Co mogę zrobić z usługą GitHub Copilot w mojej przestrzeni kodu?.

  5. W terminalu usługi Codespace uruchom polecenie azd deploy.

    azd deploy
    

Napiwek

Możesz również użyć azd up zawsze, co wykonuje wszystkie polecenia azd package, azd provisioni azd deploy.

Aby dowiedzieć się, jak plik War jest spakowany, możesz uruchomić azd package --debug samodzielnie.

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ą JBoss z bazą danych MySQL uruchomioną na platformie Azure z zadaniami.

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

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 log4j, aby zademonstrować tę funkcję, jak pokazano w poniższym fragmencie kodu:

private static final Logger logger = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());

@PersistenceContext
private EntityManager entityManager;

public List<Task> getAllTasks() {
    logger.log(Level.INFO, "Finding all tasks. ");

    return this.entityManager.createNamedQuery("findAllTasks", Task.class).getResultList();
}

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 Java 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

W kreatorze tworzenia jest wyświetlany błąd "nie ma prawa do korzystania z funkcji Bring Your Own License".

Jeśli zostanie wyświetlony błąd: The subscription '701ea799-fb46-4407-bb67-9cbcf289f1c7' is not entitled to use the Bring Your Own License feature when creating the application, oznacza to, że wybrano licencję Red Hat JBoss EAP 7/8 BYO w stosie serwera internetowego Java, ale nie skonfigurowano konta platformy Azure w programie Red Hat Cloud Access lub nie masz aktywnej licencji JBoss EAP w usłudze Red Hat Cloud Access.

Widok wdrażania portalu dla usługi Azure Database for MySQL — serwer elastyczny zawiera stan konfliktów.

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

InternalServerError: An unexpected error occured while processing the request.

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

W oknie dialogowym Tworzenie połączenia jest wyświetlany przycisk Utwórz w usłudze Cloud Shell, ale nie jest włączony.

W oknie dialogowym może zostać również wyświetlony komunikat o błędzie: The database server is in Virtual Network and Cloud Shell can't connect to it. Please copy the commands and execute on an environment which can connect to the database server in Virtual Network.

Automatyzacja łącznika usługi wymaga dostępu sieciowego do serwera MySQL. Sprawdź ustawienia sieciowe zasobu serwera MySQL i upewnij się, że wybrano co najmniej opcję Zezwalaj na publiczny dostęp do tego zasobu za pośrednictwem Internetu przy użyciu publicznego adresu IP. Łącznik usługi może pobrać go stamtąd.

Jeśli to pole wyboru nie jest widoczne, być może zostało utworzone wdrożenie przy użyciu Kreatora aplikacji internetowej i bazy danych, a wdrożenie blokuje cały dostęp do sieci publicznej do serwera MySQL. Nie ma możliwości modyfikowania konfiguracji. Ponieważ kontener systemu Linux aplikacji może uzyskiwać dostęp do bazy danych MySQL za pośrednictwem integracji z siecią wirtualną, możesz zainstalować interfejs wiersza polecenia platformy Azure w sesji SSH aplikacji i uruchomić tam dostarczone polecenia usługi Cloud Shell.

Wdrożona przykładowa aplikacja nie wyświetla aplikacji listy zadań.

Jeśli zobaczysz stronę powitalną narzędzia JBoss zamiast aplikacji listy zadań, usługa App Service najprawdopodobniej nadal ładuje zaktualizowany kontener z najnowszego wdrożenia kodu. Poczekaj kilka minut i odśwież stronę.

Nie można uruchomić mojej aplikacji i widzę komunikat "Odmowa dostępu dla użytkownika... (przy użyciu hasła: NIE)" w dziennikach.

Ten błąd jest najprawdopodobniej spowodowany tym, że wtyczka uwierzytelniania bez hasła nie jest dodana do parametry połączenia (zobacz przykładowy kod Języka Java dotyczący integracji usługi Azure Database for MySQL z łącznikiem usługi Service Connector). Zmień parametry połączenia MySQL, postępując zgodnie z instrukcjami w 3. Utwórz połączenie bez hasła.

Widzę błąd "Tabela "Zadanie już istnieje" w dziennikach diagnostycznych.

Możesz zignorować ten błąd Hibernacji, ponieważ wskazuje, że kod aplikacji jest połączony z bazą danych MySQL. Aplikacja jest skonfigurowana do tworzenia niezbędnych tabel podczas uruchamiania (zobacz src/main/resources/META-INF/persistence.xml). Gdy aplikacja uruchamia się po raz pierwszy, powinna pomyślnie utworzyć tabele, ale po kolejnych ponownym uruchomieniu zostanie wyświetlony ten błąd, ponieważ tabele już istnieją.

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 P0v3 i można go skalować w górę lub w dół. Zobacz Cennik usługi App Service.
  • Serwer elastyczny MySQL jest tworzony w warstwie D2ds i można go skalować w górę lub w dół. Zobacz Cennik usługi Azure Database for MySQL.
  • 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 MySQL za siecią wirtualną przy użyciu innych narzędzi?

W tym samouczku aplikacja usługi App Service ma już łączność sieciową z serwerem MySQL i może uwierzytelniać się w usłudze Microsoft Entra przy użyciu przypisanej przez system tożsamości zarządzanej. Połączenie z bazą danych MySQL można nawiązać bezpośrednio z poziomu kontenera aplikacji, uruchamiając następujące polecenia w sesji SSH (pobierz <server><user>wartości , i <database> z AZURE_MYSQL_CONNECTIONSTRING ustawienia aplikacji):

apt-get update
apt-get install curl less mysql-client jq -y
mysql -h <server> --user <user> --database <database> --enable-cleartext-plugin --password=`curl "${IDENTITY_ENDPOINT}?resource=https://ossrdbms-aad.database.windows.net&api-version=2019-08-01" -H "X-IDENTITY-HEADER: $IDENTITY_HEADER" -s | jq -r '.access_token'`

Oto kilka kwestii do rozważenia:

  • Narzędzia instalowane w sesji SSH nie są utrwalane podczas ponownego uruchamiania aplikacji.
  • Jeśli wykonano kroki portalu i skonfigurowano program MySQL przy użyciu użytkownika Microsoft Entra jako administrator, możesz nawiązać połączenie z bazą danych MySQL przy użyciu użytkownika microsoft Entra.
  • Aby nawiązać połączenie z poziomu narzędzia klasycznego, takiego jak MySQL Workbench, maszyna musi znajdować się w sieci wirtualnej, takiej jak maszyna wirtualna platformy Azure wdrożona w tej samej sieci wirtualnej. Należy również oddzielnie skonfigurować uwierzytelnianie przy użyciu tożsamości zarządzanej lub użytkownika Firmy Microsoft Entra.
  • Aby nawiązać połączenie z maszyny w sieci lokalnej, która ma połączenie sieci VPN typu lokacja-lokacja z siecią wirtualną platformy Azure, nie można skonfigurować uwierzytelniania przy użyciu tożsamości zarządzanej, ale można skonfigurować uwierzytelnianie przy użyciu użytkownika entra firmy Microsoft.
  • Możesz również zintegrować usługę Azure Cloud Shell i nawiązać połączenie przy użyciu interfejsu wiersza polecenia platformy Azure lub interfejsu wiersza polecenia mySQL. Aby przeprowadzić uwierzytelnianie, możesz skonfigurować użytkownika firmy Microsoft Entra.

Jak mogę uzyskać prawidłowy token dostępu dla połączenia MySQL przy użyciu uwierzytelniania Firmy Microsoft Entra?

W przypadku użytkownika firmy Microsoft Entra, tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika, która jest autoryzowana do uzyskiwania dostępu do bazy danych MySQL, interfejs wiersza polecenia platformy Azure może pomóc w wygenerowaniu tokenu dostępu. W przypadku tożsamości zarządzanej tożsamość musi być skonfigurowana w aplikacji usługi App Service lub maszynie wirtualnej, na której jest uruchamiany interfejs wiersza polecenia platformy Azure.

# Sign in as a Microsoft Entra user
az login
# Sign in as the system-assigned managed identity
az login --identity
# Sign in as a user-assigned managed identity
az login --identity --username <client-id-of-user-assigned-identity>

# Get an access token
az account get-access-token --resource-type oss-rdbms

Jeśli chcesz, możesz również użyć polecenia az mysql flexible-server connect interfejsu wiersza polecenia platformy Azure, aby nawiązać połączenie z usługą MySQL. Po wyświetleniu monitu użyj tokenu dostępu jako hasła.

az mysql flexible-server connect -n <server-name-only> -u <user> -d <database> --interactive

Aby uzyskać więcej informacji, zobacz:

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

Na przykład przy użyciu automatycznie wygenerowanego pliku przepływu pracy z usługi App Service każdy git push rozpoczyna nowy przebieg kompilacji i wdrożenia. Z lokalnego klonu repozytorium GitHub należy wprowadzić żądane aktualizacje i wypchnąć je do usługi GitHub. Na przykład:

git add .
git commit -m "<some-message>"
git push origin starter-no-infra

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

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

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

Możesz zauważyć, ż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ź:

  • Zmień ten kod, aby używać źródła danych jdbc/AZURE_MYSQL_CONNECTIONSTRING_DS.
  • Niektóre importy w kodzie używają języka javax, ale mam aplikację Dżakarta.
  • Chcę, aby ten kod był uruchamiany tylko wtedy, gdy zmienna środowiskowa AZURE_MYSQL_CONNECTIONSTRING jest ustawiona.
  • Chcę, aby ten kod był uruchamiany tylko w usłudze aplikacja systemu Azure, a nie lokalnie.

Następne kroki

Dowiedz się więcej na temat uruchamiania aplikacji Java w usłudze App Service w przewodniku dla deweloperów.

Dowiedz się, jak zabezpieczyć aplikację przy użyciu domeny niestandardowej i certyfikatu.