Wdrażanie aplikacji Java Spring Boot w usłudze Azure Container Apps
W tym artykule pokazano, jak wdrożyć aplikację Java Spring Boot z logowaniem przy użyciu konta Microsoft Entra w usłudze Azure Container Apps.
W tym artykule założono, że ukończono jeden z następujących artykułów przy użyciu tylko karty Uruchom lokalnie , a teraz chcesz wdrożyć na platformie Azure. Te instrukcje są takie same jak te na karcie Wdrażanie na platformie Azure w następujących artykułach:
- Zabezpieczanie aplikacji Java Spring Boot przy użyciu identyfikatora Entra firmy Microsoft
- Zabezpieczanie aplikacji Java Spring Boot przy użyciu usługi Azure Active Directory B2C
- Włączanie aplikacji Java Spring Boot w celu logowania użytkowników i uzyskiwania dostępu do programu Microsoft Graph
- Zabezpieczanie aplikacji Java Spring Boot przy użyciu ról i oświadczeń ról
- Zabezpieczanie aplikacji Java Spring Boot przy użyciu grup i oświadczeń grup
Wymagania wstępne
- Konto Azure. Jeśli jej nie masz, utwórz bezpłatne konto. Aby kontynuować, musisz mieć uprawnienie Współautor lub Właściciel w subskrypcji platformy Azure. Aby uzyskać więcej informacji, zobacz przypisywanie ról Azure za pomocą portalu Azure.
- Interfejs wiersza polecenia platformy Azure.
- Rozszerzenie interfejsu wiersza polecenia usługi Azure Container Apps, wersja
0.3.47
lub nowsza. Aby zainstalować najnowszą wersję, użyjaz extension add --name containerapp --upgrade --allow-preview
polecenia . - Zestaw Java Development Kit w wersji 17 lub nowszej.
- Maven.
Przygotowywanie projektu Spring
Aby przygotować projekt, wykonaj następujące czynności:
Użyj następującego polecenia narzędzia Maven , aby skompilować projekt:
mvn clean verify
Uruchom przykładowy projekt lokalnie, używając następującego polecenia:
mvn spring-boot:run
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
Uwaga
Zasoby usługi Azure Container Apps zostały zmigrowane z Microsoft.Web
przestrzeni nazw do Microsoft.App
przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Migracja przestrzeni nazw z witryny Microsoft.Web do Microsoft.App w marcu 2022 r.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Tworzenie środowiska usługi Azure Container Apps
Teraz, gdy konfiguracja interfejsu wiersza polecenia platformy Azure została ukończona, możesz zdefiniować zmienne środowiskowe używane w tym artykule.
Zdefiniuj następujące zmienne w powłoce powłoki bash.
export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"
Utwórz grupę zasobów.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Utwórz środowisko z automatycznie wygenerowanym obszarem roboczym usługi Log Analytics.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Pokaż domyślną domenę środowiska aplikacji kontenera. Zanotuj tę domenę do użycia w kolejnych sekcjach.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Przygotowywanie aplikacji do wdrożenia
Podczas wdrażania aplikacji w usłudze Azure Container Apps adres URL przekierowania zmienia się na adres URL przekierowania wdrożonego wystąpienia aplikacji w usłudze Azure Container Apps. Wykonaj następujące kroki, aby zmienić te ustawienia w pliku application.yml :
Przejdź do pliku src\main\resources\application.yml aplikacji i zmień wartość
post-logout-redirect-uri
na nazwę domeny wdrożonej aplikacji, jak pokazano w poniższym przykładzie. Pamiętaj, aby zastąpić<API_NAME>
wartości i<default-domain-of-container-app-environment>
wartościami rzeczywistymi. Na przykład w przypadku domeny domyślnej dla środowiska aplikacji kontenera platformy Azure z poprzedniego kroku ims-identity-api
nazwy aplikacji należy użyćhttps://ms-identity-api.<default-domain>
wartościpost-logout-redirect-uri
.post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
Po zapisaniu tego pliku użyj następującego polecenia, aby ponownie skompilować aplikację:
mvn clean package
Ważne
Plik application.yml aplikacji przechowuje obecnie wartość klucza tajnego klienta w parametrze client-secret
. Nie jest dobrym rozwiązaniem, aby zachować tę wartość w tym pliku. Jeśli zatwierdzisz plik w repozytorium Git, możesz również podejmowania ryzyka. Aby zapoznać się z zalecanym podejściem, zobacz Zarządzanie wpisami tajnymi w usłudze Azure Container Apps.
Aktualizowanie rejestracji aplikacji Microsoft Entra ID
Ponieważ identyfikator URI przekierowania zmienia się w wdrożonej aplikacji w usłudze Azure Container Apps, musisz również zmienić identyfikator URI przekierowania w rejestracji aplikacji Microsoft Entra ID. Aby wprowadzić tę zmianę, wykonaj następujące czynności:
Przejdź do strony Platforma tożsamości Microsoft dla deweloperów Rejestracje aplikacji.
Użyj pola wyszukiwania, aby wyszukać rejestrację aplikacji — na przykład
java-servlet-webapp-authentication
.Otwórz rejestrację aplikacji, wybierając jej nazwę.
Wybierz Uwierzytelnianie z menu poleceń.
W sekcji Identyfikatory URI przekierowania sieci Web - wybierz pozycję Dodaj identyfikator URI.
Wypełnij identyfikator URI aplikacji, dołączając
/login/oauth2/code/
na przykładhttps://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/
.Wybierz pozycję Zapisz.
Wdrażanie aplikacji
Wdróż pakiet JAR w usłudze Azure Container Apps.
Uwaga
W razie potrzeby możesz określić wersję zestawu JDK w zmiennych środowiskowych kompilacji języka Java. Aby uzyskać więcej informacji, zobacz Kompilowanie zmiennych środowiskowych dla języka Java w usłudze Azure Container Apps.
Teraz możesz wdrożyć plik WAR za pomocą polecenia interfejsu az containerapp up
wiersza polecenia.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
Uwaga
Domyślna wersja zestawu JDK to 17. Jeśli musisz zmienić wersję zestawu JDK pod kątem zgodności z aplikacją, możesz użyć argumentu --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION>
, aby dostosować numer wersji.
Aby uzyskać więcej zmiennych środowiskowych kompilacji, zobacz Build environment variables for Java in Azure Container Apps (Tworzenie zmiennych środowiskowych dla języka Java w usłudze Azure Container Apps).
Weryfikowanie aplikacji
W tym przykładzie containerapp up
polecenie zawiera --query properties.configuration.ingress.fqdn
argument, który zwraca w pełni kwalifikowaną nazwę domeny (FQDN), znany również jako adres URL aplikacji. Wykonaj następujące kroki, aby sprawdzić dzienniki aplikacji w celu zbadania dowolnego problemu z wdrażaniem:
Uzyskaj dostęp do adresu URL aplikacji wyjściowej na stronie Dane wyjściowe sekcji Wdrażanie.
W okienku nawigacji na stronie Przegląd wystąpienia usługi Azure Container Apps wybierz pozycję Dzienniki, aby sprawdzić dzienniki aplikacji.
Więcej informacji
- Platforma tożsamości Microsoft (Microsoft Entra ID dla deweloperów)
- Omówienie biblioteki Microsoft Authentication Library (MSAL)
- Szybki start: Rejestrowanie aplikacji za pomocą platformy tożsamości firmy Microsoft
- Szybki start: konfigurowanie aplikacji klienckiej w celu uzyskiwania dostępu do internetowych interfejsów API
- Omówienie środowisk wyrażania zgody aplikacji Entra ID firmy Microsoft
- Omówienie zgody użytkownika i administratora
- Obiekty aplikacji i jednostki usługi w usłudze Microsoft Entra ID
- Chmury krajowe
- Przykłady kodu biblioteki MSAL
- Microsoft Entra ID Spring Boot Starter biblioteka kliencka dla języka Java
- Biblioteka uwierzytelniania firmy Microsoft dla języka Java (MSAL4J)
- MSAL4J Wiki
- Tokeny identyfikatorów
- Tokeny dostępu w Platforma tożsamości Microsoft
Następne kroki
Aby uzyskać więcej informacji i innych opcji wdrażania, zobacz następujące artykuły: