Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure App Service poskytuje vysoce škálovatelnou službu pro hostování webů s automatickými opravami v Azure. Poskytuje také managed identity pro vaši aplikaci, což je řešení pro zabezpečení přístupu k Azure Database for PostgreSQL a dalším službám Azure. Spravované identity ve službě App Service usnadňují zabezpečení vaší aplikace odstraněním tajných kódů z vaší aplikace, jako jsou přihlašovací údaje v proměnných prostředí. V tomto kurzu se naučíte:
- Vytvořte databázi PostgreSQL.
- Nasaďte ukázkovou aplikaci do Azure App Service na Tomcat pomocí balíčku WAR.
- Nakonfigurujte webovou aplikaci Tomcat tak, aby používala ověřování Microsoft Entra s databází PostgreSQL.
- Připojte se k databázi PostgreSQL pomocí spravované identity pomocí konektoru služby.
Pokud účet Azure nemáte, vytvořte si účet free než začnete.
Požadavky
- Git
- Java Development Kit (JDK)
- Odborník
- Azure CLI verze 2.45.0 nebo vyšší.
Naklonujte ukázkovou aplikaci a připravte úložiště.
Spuštěním následujících příkazů v terminálu naklonujte ukázkové úložiště a nastavte prostředí ukázkové aplikace.
git clone https://github.com/Azure-Samples/Passwordless-Connections-for-Java-Apps
cd Passwordless-Connections-for-Java-Apps/Tomcat/
Vytvořte Azure Database for PostgreSQL
Podle těchto kroků vytvořte ve svém předplatném Azure Database for Postgres. Aplikace Tomcat se připojí k této databázi a ukládá její data při spuštění a uchovává stav aplikace bez ohledu na to, kde aplikaci spouštíte.
Přihlaste se k Azure CLI a volitelně nastavte své předplatné, pokud máte více než jedno připojené k přihlašovacím údajům.
az login az account set --subscription <subscription-ID>Vytvořte skupinu prostředků Azure a poznamenejte si název skupiny prostředků.
export RESOURCE_GROUP=<resource-group-name> export LOCATION=eastus az group create --name $RESOURCE_GROUP --location $LOCATIONVytvořte Azure Database for PostgreSQL server. Server se vytvoří s účtem správce, ale nepoužívá se, protože k provádění úloh správy použijeme účet správce Microsoft Entra.
export POSTGRESQL_ADMIN_USER=azureuser # PostgreSQL admin access rights won't be used because Azure AD authentication is leveraged to administer the database. export POSTGRESQL_ADMIN_PASSWORD=<admin-password> export POSTGRESQL_HOST=<postgresql-host-name> # Create a PostgreSQL server. az postgres flexible-server create \ --resource-group $RESOURCE_GROUP \ --name $POSTGRESQL_HOST \ --location $LOCATION \ --admin-user $POSTGRESQL_ADMIN_USER \ --admin-password $POSTGRESQL_ADMIN_PASSWORD \ --public-access 0.0.0.0 \ --sku-name Standard_D2s_v3Vytvořte databázi pro aplikaci.
export DATABASE_NAME=checklist az postgres flexible-server db create \ --resource-group $RESOURCE_GROUP \ --server-name $POSTGRESQL_HOST \ --database-name $DATABASE_NAME
Nasazení aplikace do služby App Service
Pomocí těchto kroků sestavte soubor WAR a nasaďte ho do Azure App Service na Tomcat pomocí balíčku WAR.
Ukázková aplikace obsahuje pom.xml soubor, který může vygenerovat soubor WAR. Aplikaci sestavíte spuštěním následujícího příkazu.
mvn clean package -f pom.xmlVytvořte prostředek Azure App Service na Linuxu s použitím Tomcat 9.0.
export APPSERVICE_PLAN=<app-service-plan> export APPSERVICE_NAME=<app-service-name> # Create an App Service plan az appservice plan create \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_PLAN \ --location $LOCATION \ --sku B1 \ --is-linux # Create an App Service resource. az webapp create \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_NAME \ --plan $APPSERVICE_PLAN \ --runtime "TOMCAT:10.0-java11"Nasaďte balíček WAR do služby App Service.
az webapp deploy \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_NAME \ --src-path target/app.war \ --type war
Připojte databázi Postgres s řešením pro identitní konektivitu
Dále připojte databázi pomocí konektoru služby.
Nainstalujte rozšíření konektoru Service Connector bez hesla pro Azure CLI:
az extension add --name serviceconnector-passwordless --upgrade
Pak připojte aplikaci k databázi Postgres pomocí spravované identity přiřazené systémem pomocí konektoru služby.
Pokud chcete toto připojení vytvořit, spusťte příkaz az webapp connection create .
az webapp connection create postgres-flexible \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--target-resource-group $RESOURCE_GROUP \
--server $POSTGRESQL_HOST \
--database $DATABASE_NAME \
--system-identity \
--client-type java
Tento příkaz vytvoří připojení mezi vaší webovou aplikací a serverem PostgreSQL a spravuje ověřování prostřednictvím spravované identity přiřazené systémem.
Dále aktualizujte nastavení aplikace a přidejte do connection string modul plug-in.
export AZURE_POSTGRESQL_CONNECTIONSTRING=$(\
az webapp config appsettings list \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
| jq -c -r '.[] \
| select ( .name == "AZURE_POSTGRESQL_CONNECTIONSTRING" ) \
| .value')
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--settings 'CATALINA_OPTS=-DdbUrl="'"${AZURE_POSTGRESQL_CONNECTIONSTRING}"'&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin"'
Otestování ukázkové webové aplikace
Otestujte aplikaci spuštěním následujícího příkazu.
export WEBAPP_URL=$(az webapp show \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--query defaultHostName \
--output tsv)
# Create a list
curl -X POST -H "Content-Type: application/json" -d '{"name": "list1","date": "2022-03-21T00:00:00","description": "Sample checklist"}' https://${WEBAPP_URL}/checklist
# Create few items on the list 1
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 1"}' https://${WEBAPP_URL}/checklist/1/item
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 2"}' https://${WEBAPP_URL}/checklist/1/item
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 3"}' https://${WEBAPP_URL}/checklist/1/item
# Get all lists
curl https://${WEBAPP_URL}/checklist
# Get list 1
curl https://${WEBAPP_URL}/checklist/1
Vyčištění prostředků
V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud v budoucnu tyto prostředky nepotřebujete, odstraňte skupinu prostředků spuštěním následujícího příkazu v Cloud Shell:
az group delete --name myResourceGroup
Spuštění tohoto příkazu může trvat minutu.
Další kroky
Další informace o spouštění aplikací Java na App Service on Linux najdete v příručce pro vývojáře.
Zjistěte, jak zabezpečit aplikaci pomocí vlastní domény a certifikátu.