Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan használhat jelszó nélküli kapcsolatokat az Azure-adatbázisokhoz az Azure Spring Appsben üzembe helyezett Spring Boot-alkalmazásokban.
Ebben az oktatóanyagban az alábbi feladatokat hajtja végre az Azure Portal vagy az Azure CLI használatával. Mindkét módszert az alábbi eljárások ismertetik.
- Az Azure Spring Apps egy példányának kiépítése.
- Alkalmazások létrehozása és üzembe helyezése az Azure Spring Appsben.
- Azure-adatbázisokhoz csatlakoztatott alkalmazások futtatása felügyelt identitással.
Jegyzet
Ez az oktatóanyag nem működik az R2DBC-ben.
Előfeltételek
- Egy Azure-előfizetés. Ha még nem rendelkezik ilyen fiókkal, a kezdés előtt hozzon létre egy ingyenes fiókot.
- Azure CLI 2.45.0-s vagy újabb verziója szükséges.
- Az Azure Spring Apps bővítmény. A bővítményt a következő paranccsal telepítheti:
az extension add --name spring. - Java Development Kit (JDK), 8-os, 11-es vagy 17-es verzió.
- Egy Git ügyfél.
- cURL vagy egy hasonló HTTP-segédprogramot a funkciók teszteléséhez.
- MySQL parancssori ügyfél, ha az Azure Database for MySQL futtatását választja. A kiszolgálóhoz az Azure Cloud Shell használatával csatlakozhat egy népszerű ügyféleszközzel, a mysql.exe parancssori eszközzel. Másik lehetőségként használhatja a
mysqlparancssort a helyi környezetben. - ODBC Driver 18 for SQL Server, ha úgy dönt, hogy az Azure SQL Database-t futtatja.
A munkakörnyezet előkészítése
Először állítson be néhány környezeti változót az alábbi parancsokkal:
export AZ_RESOURCE_GROUP=passwordless-tutorial-rg
export AZ_DATABASE_SERVER_NAME=<YOUR_DATABASE_SERVER_NAME>
export AZ_DATABASE_NAME=demodb
export AZ_LOCATION=<YOUR_AZURE_REGION>
export AZ_SPRING_APPS_SERVICE_NAME=<YOUR_AZURE_SPRING_APPS_SERVICE_NAME>
export AZ_SPRING_APPS_APP_NAME=hellospring
export AZ_DB_ADMIN_USERNAME=<YOUR_DB_ADMIN_USERNAME>
export AZ_DB_ADMIN_PASSWORD=<YOUR_DB_ADMIN_PASSWORD>
export AZ_USER_IDENTITY_NAME=<YOUR_USER_ASSIGNED_MANAGEMED_IDENTITY_NAME>
Cserélje le a helyőrzőket a jelen cikkben használt alábbi értékekre:
-
<YOUR_DATABASE_SERVER_NAME>: Az Azure Database-kiszolgáló neve, amelynek egyedinek kell lennie az Azure-ban. -
<YOUR_AZURE_REGION>: A használni kívánt Azure-régió. Alapértelmezés szerint használhatja aeastus, de azt javasoljuk, hogy konfiguráljon egy olyan régiót, amely közelebb van a lakóhelyéhez. Az elérhető régiók teljes listáját aaz account list-locationshasználatával tekintheti meg. -
<YOUR_AZURE_SPRING_APPS_SERVICE_NAME>: Az Azure Spring Apps-példány neve. A névnek 4 és 32 karakter közötti hosszúságúnak kell lennie, és csak kisbetűket, számokat és kötőjeleket tartalmazhat. A szolgáltatásnév első karakterének betűnek kell lennie, az utolsó karakternek pedig betűnek vagy számnak kell lennie. -
<AZ_DB_ADMIN_USERNAME>: Az Azure-adatbáziskiszolgáló rendszergazdai felhasználóneve. -
<AZ_DB_ADMIN_PASSWORD>: Az Azure-adatbáziskiszolgáló rendszergazdai jelszava. -
<YOUR_USER_ASSIGNED_MANAGEMED_IDENTITY_NAME>: A felhasználó által hozzárendelt felügyelt identitáskiszolgáló neve, amelynek egyedinek kell lennie az Azure-ban.
Az Azure Spring Apps egy példányának kiépítése
Az Azure Spring Apps egy példányának kiépítéséhez kövesse az alábbi lépéseket.
Frissítse az Azure CLI-t az Azure Spring Apps-bővítménysel az alábbi paranccsal:
az extension update --name springJelentkezzen be az Azure CLI-be, és válassza ki aktív előfizetését az alábbi parancsokkal:
az login az account list --output table az account set --subscription <name-or-ID-of-subscription>Az alábbi parancsokkal hozzon létre egy erőforráscsoportot az Azure Spring Apps szolgáltatás és az Azure Spring Apps szolgáltatás egy példányának létrehozásához:
az group create \ --name $AZ_RESOURCE_GROUP \ --location $AZ_LOCATION az spring create \ --resource-group $AZ_RESOURCE_GROUP \ --name $AZ_SPRING_APPS_SERVICE_NAME
Azure-adatbázispéldány létrehozása
Azure Database-példány kiépítéséhez kövesse az alábbi lépéseket.
Hozzon létre egy Azure Database for MySQL-kiszolgálót az alábbi paranccsal:
az mysql flexible-server create \ --resource-group $AZ_RESOURCE_GROUP \ --name $AZ_DATABASE_SERVER_NAME \ --location $AZ_LOCATION \ --admin-user $AZ_DB_ADMIN_USERNAME \ --admin-password $AZ_DB_ADMIN_PASSWORD \ --yes
Jegyzet
Ha nem ad meg admin-user vagy admin-password paramétereket, a rendszer alapértelmezés szerint létrehoz egy alapértelmezett rendszergazdai felhasználót vagy egy véletlenszerű rendszergazdai jelszót.
Hozzon létre egy új adatbázist a következő paranccsal:
az mysql flexible-server db create \ --resource-group $AZ_RESOURCE_GROUP \ --database-name $AZ_DATABASE_NAME \ --server-name $AZ_DATABASE_SERVER_NAME
Alkalmazás létrehozása hozzárendelt nyilvános végponttal
Az alkalmazás létrehozásához használja az alábbi parancsot.
az spring app create \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_APPS_SERVICE_NAME \
--name $AZ_SPRING_APPS_APP_NAME \
--runtime-version=Java_17
--assign-endpoint true
Az Azure Spring Apps csatlakoztatása az Azure-adatbázishoz
Először telepítse a Service Connector jelszó nélküli bővítményt az Azure CLI-hez:
az extension add --name serviceconnector-passwordless --upgrade
Ezután a következő paranccsal hozzon létre egy felhasználó által hozzárendelt felügyelt identitást a Microsoft Entra-hitelesítéshez. További információért lásd: Microsoft Entra-hitelesítés beállítása az Azure Database for MySQL - rugalmas kiszolgálóhoz.
export AZ_IDENTITY_RESOURCE_ID=$(az identity create \
--name $AZ_USER_IDENTITY_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--query id \
--output tsv)
Fontos
A felhasználó által hozzárendelt identitás létrehozása után kérje meg globális rendszergazdai vagy kiemelt szerepkör-rendszergazdai, hogy adja meg az alábbi engedélyeket az identitáshoz: User.Read.All, GroupMember.Read.Allés Application.Read.ALL. További információt az Active Directory-hitelesítésEngedélyek szakaszában talál.
Ezután az alábbi paranccsal hozzon létre jelszó nélküli kapcsolatot az adatbázissal.
az spring connection create mysql-flexible \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_APPS_SERVICE_NAME \
--app $AZ_SPRING_APPS_APP_NAME \
--target-resource-group $AZ_RESOURCE_GROUP \
--server $AZ_DATABASE_SERVER_NAME \
--database $AZ_DATABASE_NAME \
--system-identity mysql-identity-id=$AZ_IDENTITY_RESOURCE_ID
Ez a Service Connector-parancs a következő feladatokat hajtja végre a háttérben:
Engedélyezze a rendszer által hozzárendelt felügyelt identitást az Azure Spring Apps által üzemeltetett alkalmazás
$AZ_SPRING_APPS_APP_NAMEszámára.Állítsa a Microsoft Entra rendszergazdát az aktuális bejelentkezett felhasználóra.
Adjon hozzá egy
$AZ_SPRING_APPS_SERVICE_NAME/apps/$AZ_SPRING_APPS_APP_NAMEnevű adatbázis-felhasználót az 1. lépésben létrehozott felügyelt identitáshoz, és adja meg az adatbázis összes jogosultságát$AZ_DATABASE_NAMEa felhasználónak.Két konfiguráció hozzáadása az alkalmazáshoz
$AZ_SPRING_APPS_APP_NAME:spring.datasource.urlésspring.datasource.username.Jegyzet
Ha megjelenik a
The subscription is not registered to use Microsoft.ServiceLinkerhibaüzenet, futtassa aaz provider register --namespace Microsoft.ServiceLinkerparancsot a Service Connector erőforrás-szolgáltató regisztrálásához, majd futtassa újra a kapcsolati parancsot.
Az alkalmazás létrehozása és üzembe helyezése
Az alábbi lépések a mintaalkalmazás letöltését, konfigurálását, összeállítását és üzembe helyezését ismertetik.
A mintakódtár klónozásához használja a következő parancsot:
git clone https://github.com/Azure-Samples/quickstart-spring-data-jdbc-mysql passwordless-sampleAdja hozzá a következő függőséget a pom.xml fájlhoz:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-jdbc-mysql</artifactId> </dependency>Ez a függőség támogatja a Spring Cloud Azure startert.
Jegyzet
A Spring Cloud Azure-kódtár verzióinak anyagjegyzék (BOM) használatával történő kezeléséről a
Spring Cloud Azure fejlesztői útmutatójának című szakaszában olvashat.Első lépések Az alábbi paranccsal frissítse az application.properties fájlt:
cat << EOF > passwordless-sample/src/main/resources/application.properties logging.level.org.springframework.jdbc.core=DEBUG spring.datasource.azure.passwordless-enabled=true spring.sql.init.mode=always EOFA projekt a Maven használatával történő létrehozásához használja az alábbi parancsokat:
cd passwordless-sample ./mvnw clean package -DskipTestsAz alkalmazás célfájljának/demo-0.0.1-SNAPSHOT.jar fájljának üzembe helyezéséhez használja a következő parancsot:
az spring app deploy \ --name $AZ_SPRING_APPS_APP_NAME \ --service $AZ_SPRING_APPS_SERVICE_NAME \ --resource-group $AZ_RESOURCE_GROUP \ --artifact-path target/demo-0.0.1-SNAPSHOT.jarAz alkalmazás állapotának lekérdezése az üzembe helyezés után az alábbi paranccsal:
az spring app list \ --service $AZ_SPRING_APPS_SERVICE_NAME \ --resource-group $AZ_RESOURCE_GROUP \ --output tableAz alábbi példához hasonló kimenetnek kell megjelennie.
Name Location ResourceGroup Production Deployment Public Url Provisioning Status CPU Memory Running Instance Registered Instance Persistent Storage ----------------- ---------- --------------- ----------------------- --------------------------------------------------- --------------------- ----- -------- ------------------ --------------------- -------------------- <app name> eastus <resource group> default Succeeded 1 2 1/1 0/1 -
Az alkalmazás tesztelése
Az alkalmazás teszteléséhez használhatja a cURL-t. Először hozzon létre egy új "teendő" elemet az adatbázisban a következő paranccsal:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"description":"configuration","details":"congratulations, you have set up JDBC correctly!","done": "true"}' \
https://${AZ_SPRING_APPS_SERVICE_NAME}-hellospring.azuremicroservices.io
Ez a parancs a létrehozott elemet adja vissza az alábbi példában látható módon:
{"id":1,"description":"configuration","details":"congratulations, you have set up JDBC correctly!","done":true}
Ezután kérje le az adatokat a következő cURL-kéréssel:
curl https://${AZ_SPRING_APPS_SERVICE_NAME}-hellospring.azuremicroservices.io
Ez a parancs a "teendő" elemek listáját adja vissza, beleértve a létrehozott elemet is, ahogyan az a következő példában látható:
[{"id":1,"description":"configuration","details":"congratulations, you have set up JDBC correctly!","done":true}]
Erőforrások törlése
Az oktatóanyag során használt összes erőforrás törléséhez törölje az erőforráscsoportot az alábbi paranccsal:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes