Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a cikk bemutatja, hogyan futtathatja az Open Libertyt az Azure Container Appsben. Ebben a cikkben a következő tevékenységeket hajtja végre:
- Futtassa Java, Java Enterprise Edition (EE), Jakarta EE vagy MicroProfile alkalmazását az Open Liberty futtatókörnyezetben.
- Az alkalmazás Docker-rendszerképének létrehozása Liberty-tárolórendszerképek használatával.
- Helyezze üzembe a tárolóalapú alkalmazást az Azure Container Appsben.
További információ az Open Libertyről: Az Open Liberty projekt oldala. Ez a cikk segítséget nyújt az üzembe helyezés gyors elvégzéséhez. Mielőtt éles használat előtt lennél, érdemes megismerkedned a Tuning Liberty-t.
Ha szeretne visszajelzést küldeni, vagy szorosan együttműködni a migrálási forgatókönyvekkel a Java Azure-megoldásokat fejlesztő mérnöki csapatával, töltse ki ezt a rövid felmérést az Azure-beli migrálásról , és adja meg a kapcsolattartási adatait. A programmenedzserek, építészek és mérnökök csapata azonnal kapcsolatba lép Önnel, hogy szoros együttműködést kezdeményezze.
Előfeltételek
- Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
- Készítsen elő egy helyi gépet Windows vagy Unix-szerű operációs rendszerrel – például Ubuntu, macOS vagy Windows alrendszer Linuxhoz.
-
Azure CLI-parancsok futtatásához telepítse az Azure CLI 2.62.0-s vagy újabb verzióját.
- Ha a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
- Futtassa a
az versiona telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra való frissítéshez futtassa aaz upgrade.
- Telepítse a Java Standard Edition (SE) 17-es verzióját – például az OpenJDK Microsoft-buildet.
- Telepítse Maven 3.9.8 vagy újabb verzióját.
- Győződjön meg arról, hogy a Git telepítve van.
Bejelentkezés az Azure-ba
Jelentkezzen be az Azure-előfizetésbe az az login paranccsal, és kövesse a képernyőn megjelenő utasításokat.
az login
Megjegyzés
A Legtöbb Azure CLI-parancsot ugyanúgy futtathatja a PowerShellben, mint a Bashben. A különbség csak változók használatakor létezik. A következő szakaszokban a különbségeket szükség esetén különböző lapokon tárgyaljuk.
Ha több Azure-bérlő van társítva az Azure-beli hitelesítő adataihoz, meg kell adnia, hogy melyik bérlőbe szeretne bejelentkezni. A bérlőt a --tenant lehetőséggel adhatja meg – például az login --tenant contoso.onmicrosoft.com.
Ha egyetlen bérlőn belül több előfizetéssel rendelkezik, győződjön meg arról, hogy azzal van bejelentkezve, amelyet használni szeretne a az account set --subscription <subscription-id>használatával.
Erőforráscsoport létrehozása
Az Azure-erőforráscsoport olyan logikai csoport, amelyben az Azure-erőforrások üzembe helyezése és kezelése zajlik.
Hozzon létre egy java-liberty-project nevű erőforráscsoportot a az group create hely eastus2 parancsával. Ezt az erőforráscsoportot később az Azure Container Registry (ACR) és az Azure Container Apps-példány létrehozásához használják.
export RESOURCE_GROUP_NAME=java-liberty-project
export LOCATION=eastus2
az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
ACR-példány létrehozása
Az ACR-példány létrehozásához használja a az acr create parancsot. Az alábbi példa létrehoz egy youruniqueacrnamenevű ACR-példányt. Győződjön meg arról, hogy youruniqueacrname egyedi az Azure-ban.
Megjegyzés
Ez a cikk a Container Registry ajánlott jelszó nélküli hitelesítési mechanizmusát használja. A felhasználónevet és jelszót továbbra is lehet használni a docker login-val, miután a az acr credential show-et használták azok beszerzésére. A felhasználónév és a jelszó használata kevésbé biztonságos, mint a jelszó nélküli hitelesítés.
export REGISTRY_NAME=youruniqueacrname
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--name $REGISTRY_NAME \
--sku Basic
Rövid idő elteltével megjelenik egy JSON-kimenet, amely a következő sorokat tartalmazza:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
Ezután a következő paranccsal kérje le a Container Registry-példány bejelentkezési kiszolgálóját. Erre az értékre akkor van szüksége, ha az alkalmazás lemezképét később telepíti az Azure Container Appsben.
export ACR_LOGIN_SERVER=$(az acr show \
--resource-group $RESOURCE_GROUP_NAME \
--name $REGISTRY_NAME \
--query 'loginServer' \
--output tsv)
Környezet létrehozása
Az Azure Container Apps környezete biztonságos határt hoz létre a tárolóalkalmazások egy csoportja körül. Az ugyanabban a környezetben üzembe helyezett Tárolóalkalmazások ugyanabban a virtuális hálózaton vannak üzembe helyezve, és naplókat írnak ugyanarra a Log Analytics-munkaterületre. Környezet létrehozásához használja a az containerapp env create parancsot. Az alábbi példa egy youracaenvnamenevű környezetet hoz létre:
export ACA_ENV=youracaenvname
az containerapp env create \
--resource-group $RESOURCE_GROUP_NAME \
--location $LOCATION \
--name $ACA_ENV
Ha a rendszer egy bővítmény telepítésére kéri, válaszoljon az Y válaszra.
Rövid idő elteltével megjelenik egy JSON-kimenet, amely a következő sorokat tartalmazza:
"provisioningState": "Succeeded",
"type": "Microsoft.App/managedEnvironments"
"resourceGroup": "java-liberty-project",
Egyetlen adatbázis létrehozása az Azure SQL Database-ben
Ebben a szakaszban egyetlen adatbázist hoz létre az Azure SQL Database-ben az alkalmazással való használatra.
Először az alábbi parancsokkal állítsa be az adatbázissal kapcsolatos környezeti változókat. Cserélje le a <your-unique-sql-server-name> az Azure SQL Database-kiszolgáló egyedi nevére.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
Ezután az alábbi parancsokkal hozzon létre egyetlen adatbázist az Azure SQL Database-ben, és állítsa be az aktuális bejelentkezett felhasználót Microsoft Entra-rendszergazdaként. További információ: rövid útmutató: Önálló adatbázis létrehozása – Azure SQL Database.
export ENTRA_ADMIN_NAME=$(az account show --query user.name --output tsv)
az sql server create \
--name $SQL_SERVER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $ENTRA_ADMIN_NAME \
--external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name $DB_NAME \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
Ezután az alábbi parancsokkal adja hozzá a helyi IP-címet az Azure SQL Database server tűzfalszabályaihoz, hogy a helyi gép később helyi tesztelés céljából csatlakozzon az adatbázishoz.
export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS
Megjegyzés
Biztonsági megfontolásokból olyan Azure SQL-kiszolgálót hoz létre, amelynek SQL-hitelesítése le van tiltva. A kiszolgáló hitelesítéséhez csak a Microsoft Entra-azonosítót használja a rendszer. Ha engedélyeznie kell az SQL-hitelesítést, tekintse meg az sql server create.
Az alkalmazás lemezképének konfigurálása és létrehozása
A Liberty-alkalmazás Azure Container Appsben való üzembe helyezéséhez és futtatásához tárolóba helyezheti az alkalmazást Docker-rendszerképként Open Liberty tárolórendszerképekhasználatával.
A mintaalkalmazást a Liberty futtatókörnyezetben szeretné üzembe helyezni? Kövesse az alábbi lépéseket ebben a szakaszban. Ezek a lépések a Mavent használják.
Tekintse meg az alkalmazást
Az útmutató mintakódjának előkészítéséhez használja az alábbi parancsokat. A minta a GitHubon található.
git clone https://github.com/Azure-Samples/open-liberty-on-aca.git
cd open-liberty-on-aca
export BASE_DIR=$PWD
git checkout 20250327
Ha az állapotról szóló detached HEAD üzenetet lát, ezt az üzenetet nyugodtan figyelmen kívül hagyhatja. Ez csak azt jelenti, hogy megnézett egy címkét.
Ez a cikk java-appot használ. Az alkalmazás fontos fájljainak fájlstruktúrája a következő:
java-app
├─ src/main/
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ Dockerfile
├─ pom.xml
├─ pom-azure-identity.xml
A java, az erőforrások és a webalkalmazás könyvtárai tartalmazzák a mintaalkalmazás forráskódját. A kód deklarál és használ egy nevű jdbc/JavaEECafeDBadatforrást.
A java-app gyökérkönyvtárában található egy Dockerfile, amellyel létrehozhatja az alkalmazás lemezképét az Open Liberty használatával.
A liberty/config könyvtárban aserver.xml fájl az Open Liberty adatbázis-kapcsolatának konfigurálására szolgál. Egy változó, azure.sql.connectionstring, kerül definiálásra, amelyet az Azure SQL Database-hez való csatlakozáshoz használnak.
A pom.xml fájl a Maven projektobjektum-modell (POM) fájl, amely a projekt konfigurációs adatait tartalmazza. A pom-azure-identity.xml fájl deklarálja a azure-identity függőséget, amelyet a Microsoft Entra ID használatával az Azure-szolgáltatások hitelesítésére használnak.
Megjegyzés
Ez a minta azure-identity kódtárat használ az Azure SQL Database-ben a Microsoft Entra-hitelesítés használatával történő hitelesítéshez, amely biztonsági szempontok esetén ajánlott. Ha SQL-hitelesítést kell használnia a Liberty-alkalmazásban, tekintse meg JDBC-relációs adatbázis-kapcsolatokat.
A projekt felépítése
Az alkalmazás létrehozásához használja az alábbi parancsokat:
cd $BASE_DIR/java-app
mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
Ha a build sikeres, a build végén az alábbihoz hasonló kimenetnek kell megjelennie.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.651 s
[INFO] Finished at: 2023-10-26T18:58:40-04:00
[INFO] ------------------------------------------------------------------------
Ha nem látja ezt a kimenetet, a folytatás előtt oldja meg és hárítsa el a problémát.
Projekt helyi tesztelése
A következő lépésekkel helyileg futtathatja és tesztelheti a projektet, mielőtt üzembe helyeznénk az Azure-ban. A kényelem érdekében használja a liberty-maven-plugin. Ha többet szeretne megtudni a webalkalmazásról, olvassa el a liberty-maven-pluginWebalkalmazás létrehozása a Mavennel című témakört. Az alkalmazáshoz bármilyen más mechanizmussal, például a helyi IDE-hez hasonlóan végezhet hasonló műveleteket.
Megjegyzés
Ha kiszolgáló nélküli adatbázis-telepítést választott, ellenőrizze, hogy az SQL-adatbázis nem lépett-e szüneteltető módba. Az ellenőrzés végrehajtásának egyik módja, ha bejelentkezik az adatbázis-lekérdezésszerkesztőbe az rövid útmutatóban leírtak szerint: Az Azure SQL Databaselekérdezéséhez használja az Azure Portal lekérdezésszerkesztőt (előzetes verzió).
Indítsa el az alkalmazást a következővel
liberty:run: .cd $BASE_DIR/java-app # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by the configuration variable azure.sql.connectionstring in server.xml. export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault" mvn liberty:runEllenőrizze, hogy az alkalmazás a várt módon működik-e. Ha sikeres, a parancs kimenetében a
[INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 11.086 seconds.hasonló üzenetnek kell megjelennie. A böngészőben nyissa meg ahttp://localhost:9080/annak ellenőrzéséhez, hogy az alkalmazás elérhető-e, és hogy az összes funkció működik-e.A leállításhoz nyomja le a Ctrl C billentyűkombinációt+. Válassza Y, ha arra kérik, hogy állítsa le a kötegelt feladatot.
Ha végzett, törölje azt a tűzfalszabályt, amely lehetővé teszi, hogy a helyi IP-cím hozzáférjen az Azure SQL Database-hez az alábbi paranccsal:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
Rendszerkép létrehozása az Azure Container Apps üzembe helyezéséhez
Most már futtathatja a az acr build parancsot a rendszerkép létrehozásához, ahogy az az alábbi példában is látható:
cd $BASE_DIR/java-app
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
A az acr build parancs feltölti a Dockerfile-ban megadott összetevőket a Container Registry-példányba, létrehozza a lemezképet, és tárolja azt a Container Registry-példányban.
Az alkalmazás üzembe helyezése az Azure Container Appsben
Az alábbi parancsokkal létrehozhat egy Azure Container Apps-példányt az alkalmazás futtatásához, miután lekérte a rendszerképet az ACR-ből. Ez a példa létrehoz egy youracainstancenamenevű Azure Container Apps-példányt:
export ACA_NAME=youracainstancename
az containerapp create \
--resource-group $RESOURCE_GROUP_NAME \
--name $ACA_NAME \
--image ${ACR_LOGIN_SERVER}/javaee-cafe:v1 \
--environment $ACA_ENV \
--registry-server $ACR_LOGIN_SERVER \
--registry-identity system \
--target-port 9080 \
--ingress 'external' \
--min-replicas 1
A sikeres kimenet egy JSON-objektum, beleértve a tulajdonságot "type": "Microsoft.App/containerApps"is.
Ezután csatlakoztassa az Azure SQL Database-kiszolgálót a tárolóalkalmazáshoz a Service Connector használatával az alábbi lépések végrehajtásával:
- Nyissa meg az Azure Portalt a böngészőben, és keresse meg az előző lépésben létrehozott Azure Container Apps-példányt.
- A navigációs ablakban válassza a Beállítások>szolgáltatás-összekötő (előzetes verzió) lehetőséget.
- Válassza a Create gombot. Ekkor megjelenik a Kapcsolat létrehozása előugró ablak.
- Az Alapszintű panel szolgáltatástípus esetén válassza az SQL Database lehetőséget. Ügyféltípus esetén válassza a Java lehetőséget. Hagyja meg a többi mezőt az alapértelmezett értékükön, majd válassza a Tovább: Hitelesítés lehetőséget.
- A Hitelesítés panel hitelesítési típusához válassza a Rendszer által hozzárendelt felügyelt identitást, majd válassza a Tovább: Hálózatkezelés lehetőséget.
- A Hálózatkezelés panelen válassza a Tovább: Véleményezés + létrehozás lehetőséget.
- A Véleményezés + létrehozás panelen várja meg, amíg az ellenőrzés befejeződik, majd válassza a Létrehozás a Cloud Shellen lehetőséget. Megnyílik a Cloud Shell, majd végrehajtja a parancsokat a kapcsolat létrehozásához. Várja meg, amíg a parancsok befejeződnek, majd zárja be a Cloud Shellt.
Megjegyzés
A Service Connector létrehoz egy titkos kulcsot a tárolóalkalmazásban, amely tartalmazza a AZURE_SQL_CONNECTIONSTRINGértékét, amely egy jelszó nélküli kapcsolati sztring az Azure SQL Database-hez. További információért tekintse meg az Azure SQL Database Service Connectorral való integrálásfelhasználó által hozzárendelt felügyelt identitás szakaszának mintaértékét.
Az alkalmazás tesztelése
Az alkalmazás eléréséhez használja a következő parancsot egy teljes körű URL-cím lekéréséhez:
echo https://$(az containerapp show \
--resource-group $RESOURCE_GROUP_NAME \
--name $ACA_NAME \
--query properties.configuration.ingress.fqdn \
--output tsv)
Az alkalmazás eléréséhez és teszteléséhez nyisson meg egy webböngészőt az URL-címre. Az alábbi képernyőképen a futó alkalmazás látható:
Az erőforrások rendbetétele
Az Azure-díjak elkerülése érdekében törölje a felesleges erőforrásokat. Amikor a fürtre már nincs szükség, a az group delete paranccsal távolítsa el az erőforráscsoportot, a konténer-regisztert, a konténeralkalmazásokat, az adatbázis-kiszolgálót, valamint minden kapcsolódó erőforrást.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Következő lépések
Az útmutatóban használt hivatkozásokból többet is megtudhat:
- Azure Konténer Alkalmazások
- Azure SQL Database integrálása a szolgáltatáscsatlakoztatóval
- Csatlakozás Microsoft Entra-hitelesítéssel
- Open Liberty
- A Liberty Server konfigurációjának megnyitása
- Liberty Maven beépülő modul
- Open Liberty Container Images
A WebSphere-termékek Azure-beli futtatásának lehetőségeiről további információt a WebSphere termékcsalád Azure-beli futtatására vonatkozó megoldások című témakörben talál .