Nasazení aplikací Java Spring Boot do Azure Container Apps
V tomto článku se dozvíte, jak nasadit aplikaci Java Spring Boot s přihlašovacím účtem Microsoft Entra do Azure Container Apps.
Tento článek předpokládá, že jste dokončili jeden z následujících článků pouze pomocí karty Spustit místně a teď chcete nasadit do Azure. Tyto pokyny jsou stejné jako pokyny na kartě Nasazení do Azure v těchto článcích:
- Zabezpečení aplikací Spring Boot v Javě pomocí Microsoft Entra ID
- Zabezpečení aplikací Java Spring Boot pomocí Azure Active Directory B2C
- Povolení aplikací Java Spring Boot pro přihlášení uživatelů a přístup k Microsoft Graphu
- Zabezpečení aplikací Spring Boot v Javě pomocí rolí a deklarací rolí
- Zabezpečení aplikací Spring Boot v Javě pomocí skupin a deklarací identity skupin
Požadavky
- Účet Azure. Pokud žádné nemáte, vytvořte si bezplatný účet. K pokračování potřebujete oprávnění přispěvatele nebo vlastníka předplatného Azure. Další informace viz Přiřazení rolí Azure pomocí webu Azure Portal.
- Rozhraní příkazového řádku Azure.
- Rozšíření Azure Container Apps CLI, verze
0.3.47
nebo vyšší Pokud chcete nainstalovat nejnovější verzi, použijteaz extension add --name containerapp --upgrade --allow-preview
příkaz. - Sada Java Development Kit verze 17 nebo vyšší.
- Maven.
Příprava projektu Spring
Pomocí následujících kroků připravte projekt:
K sestavení projektu použijte následující příkaz Mavenu :
mvn clean verify
Spusťte ukázkový projekt místně pomocí následujícího příkazu:
mvn spring-boot:run
Nastavení
Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte následující příkaz a podle pokynů dokončete proces ověřování.
az login
Pokud chcete zajistit, že používáte nejnovější verzi rozhraní příkazového řádku, spusťte příkaz upgrade.
az upgrade
Dále nainstalujte nebo aktualizujte rozšíření Azure Container Apps pro rozhraní příkazového řádku.
Pokud se při spouštění az containerapp
příkazů v Azure CLI zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.
az extension add --name containerapp --upgrade
Poznámka:
Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí --allow-preview true
nástroje .
az extension add --name containerapp --upgrade --allow-preview true
Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App
názvů a Microsoft.OperationalInsights
obory názvů.
Poznámka:
Prostředky Azure Container Apps se migrovaly z Microsoft.Web
oboru názvů do Microsoft.App
oboru názvů. Další podrobnosti najdete v tématu Migrace oboru názvů z webu Microsoft.Web na Microsoft.App v březnu 2022 .
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Vytvoření prostředí Azure Container Apps
Po dokončení nastavení Azure CLI můžete definovat proměnné prostředí, které se používají v tomto článku.
Definujte následující proměnné v prostředí 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"
Vytvořte skupinu prostředků.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Vytvořte prostředí s automaticky vygenerovaným pracovním prostorem služby Log Analytics.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Zobrazí výchozí doménu prostředí kontejnerové aplikace. Poznamenejte si tuto doménu, abyste ji mohli použít v dalších částech.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Příprava aplikace na nasazení
Když nasadíte aplikaci do Azure Container Apps, adresa URL pro přesměrování se změní na adresu URL pro přesměrování nasazené instance aplikace v Azure Container Apps. Pomocí následujícího postupu změňte tato nastavení v souboru application.yml :
Přejděte do souboru src\main\resources\application.yml vaší aplikace a změňte hodnotu
post-logout-redirect-uri
na název domény nasazené aplikace, jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit<API_NAME>
a<default-domain-of-container-app-environment>
nahradit skutečnými hodnotami. Například s výchozí doménou pro prostředí Azure Container App z předchozího kroku ams-identity-api
s názvem vaší aplikace byste tuto hodnotu použilihttps://ms-identity-api.<default-domain>
post-logout-redirect-uri
.post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
Po uložení tohoto souboru pomocí následujícího příkazu znovu sestavte aplikaci:
mvn clean package
Důležité
Soubor application.yml aplikace aktuálně obsahuje hodnotu tajného klíče klienta v parametru client-secret
. Tuto hodnotu v tomto souboru není vhodné zachovat. Pokud soubor potvrdíte do úložiště Git, může se stát, že riskujete. Doporučený přístup najdete v tématu Správa tajných kódů v Azure Container Apps.
Aktualizace registrace aplikace Microsoft Entra ID
Vzhledem k tomu, že se identifikátor URI přesměrování změní v nasazené aplikaci v Azure Container Apps, musíte také změnit identifikátor URI přesměrování v registraci aplikace Microsoft Entra ID. K provedení této změny použijte následující postup:
Přejděte na stránku Microsoft identity platform pro vývojáře Registrace aplikací.
Pomocívyhledávacího
java-servlet-webapp-authentication
Výběrem jejího názvu otevřete registraci aplikace.
Zvolte Ověřování z nabídky příkazů.
V části Identifikátory URI pro přesměrování webu - vyberte Přidat identifikátor URI.
Vyplňte identifikátor URI aplikace a připojte
/login/oauth2/code/
ho ,https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/
například .Zvolte Uložit.
Nasazení aplikace
Nasaďte balíček JAR do Azure Container Apps.
Poznámka:
V případě potřeby můžete v proměnných prostředí sestavení Java zadat verzi sady JDK. Další informace najdete v tématu Vytváření proměnných prostředí pro Javu v Azure Container Apps.
Teď můžete soubor WAR nasadit pomocí příkazu ROZHRANÍ příkazového az containerapp up
řádku.
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
Poznámka:
Výchozí verze sady JDK je 17. Pokud potřebujete změnit verzi sady JDK kvůli kompatibilitě s aplikací, můžete pomocí argumentu --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION>
upravit číslo verze.
Další proměnné prostředí sestavení najdete v tématu Vytváření proměnných prostředí pro Javu v Azure Container Apps.
Ověření aplikace
V tomto příkladu containerapp up
--query properties.configuration.ingress.fqdn
příkaz obsahuje argument, který vrátí plně kvalifikovaný název domény (FQDN), označovaný také jako adresa URL aplikace. Pomocí následujících kroků zkontrolujte protokoly aplikace a prozkoumejte případné problémy s nasazením:
Přejděte na adresu URL výstupní aplikace ze stránky Výstupy v části Nasazení.
V navigačním podokně na stránce Přehled instance služby Azure Container Apps vyberte Protokoly a zkontrolujte protokoly aplikace.
Více informací
- Microsoft Identity Platform (Microsoft Entra ID pro vývojáře)
- Přehled knihovny Microsoft Authentication Library (MSAL)
- Rychlý start: registrace aplikace pomocí platformy identity Microsoft
- Rychlý start: Konfigurace klientské aplikace pro přístup k webovým rozhraním API
- Principy prostředí souhlasu aplikace Microsoft Entra ID
- Vysvětlení souhlasu uživatele a správce
- Přehled objektů aplikace a instančního objektu v Microsoft Entra ID
- Národní cloudy
- Ukázky kódu MSAL
- Klientská knihovna Microsoft Entra ID Spring Boot Starter pro Javu
- Microsoft Authentication Library pro Javu (MSAL4J)
- Wikiweb MSAL4J
- Tokeny ID
- Přístupové tokeny na platformě Microsoft Identity Platform
Další kroky
Další informace a další možnosti nasazení najdete v následujících článcích: