Události
Vytváření inteligentních aplikací
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
V tomto článku se dozvíte, jak používat bez hesla připojení k databázím Azure v aplikacích Spring Boot nasazených v Azure Spring Apps.
V tomto kurzu provedete následující úlohy pomocí webu Azure Portal nebo Azure CLI. Obě metody jsou vysvětleny v následujících postupech.
Poznámka
Tento kurz nefunguje pro R2DBC.
az extension add --name spring
.mysql
v místním prostředí.Nejprve pomocí následujících příkazů nastavte některé proměnné prostředí:
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>
Zástupné symboly nahraďte následujícími hodnotami, které se používají v tomto článku:
<YOUR_DATABASE_SERVER_NAME>
: Název vašeho serveru Azure Database, který by měl být jedinečný v rámci Azure.<YOUR_AZURE_REGION>
: Oblast Azure, kterou chcete použít. Ve výchozím nastavení můžete použít eastus
, ale doporučujeme nakonfigurovat oblast blíže k umístění, kde žijete. Úplný seznam dostupných oblastí můžete zobrazit pomocí az account list-locations
.<YOUR_AZURE_SPRING_APPS_SERVICE_NAME>
: Název instance Azure Spring Apps. Název musí mít délku 4 až 32 znaků a může obsahovat jenom malá písmena, číslice a pomlčky. První znak názvu služby musí být písmeno a poslední znak musí být písmeno nebo číslo.<AZ_DB_ADMIN_USERNAME>
: Uživatelské jméno správce vašeho databázového serveru Azure.<AZ_DB_ADMIN_PASSWORD>
: Heslo správce vašeho databázového serveru Azure.<YOUR_USER_ASSIGNED_MANAGEMED_IDENTITY_NAME>
: Název serveru spravované identity přiřazeného uživatelem, který by měl být jedinečný v rámci Azure.Pomocí následujících kroků zřiďte instanci Azure Spring Apps.
Pomocí následujícího příkazu aktualizujte Azure CLI pomocí rozšíření Azure Spring Apps:
az extension update --name spring
Přihlaste se k Azure CLI a zvolte své aktivní předplatné pomocí následujících příkazů:
az login
az account list --output table
az account set --subscription <name-or-ID-of-subscription>
Pomocí následujících příkazů vytvořte skupinu prostředků, která bude obsahovat vaši službu Azure Spring Apps a instanci služby Azure Spring Apps:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
az spring create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_SPRING_APPS_SERVICE_NAME
Ke zřízení instance služby Azure Database použijte následující postup.
Pomocí následujícího příkazu vytvořte server Azure Database for MySQL:
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
Poznámka
Pokud nezadáte parametry admin-user
nebo admin-password
, systém ve výchozím nastavení vygeneruje výchozího uživatele správce nebo náhodné heslo správce.
Pomocí následujícího příkazu vytvořte novou databázi:
az mysql flexible-server db create \
--resource-group $AZ_RESOURCE_GROUP \
--database-name $AZ_DATABASE_NAME \
--server-name $AZ_DATABASE_SERVER_NAME
K vytvoření aplikace použijte následující příkaz.
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
Nejprve nainstalujte rozšíření Service Connector bez hesla pro Azure CLI:
az extension add --name serviceconnector-passwordless --upgrade
Potom pomocí následujícího příkazu vytvořte spravovanou identitu přiřazenou uživatelem pro ověřování Microsoft Entra. Další informace viz Nastavení ověřování Microsoft Entra pro Azure Database for MySQL - Flexible Server.
export AZ_IDENTITY_RESOURCE_ID=$(az identity create \
--name $AZ_USER_IDENTITY_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--query id \
--output tsv)
Důležité
Po vytvoření identity přiřazené uživatelem požádejte globálního správce nebo správce privilegovaných rolí udělit následující oprávnění pro tuto identitu: User.Read.All
, GroupMember.Read.All
a Application.Read.ALL
. Další informace najdete v části
Dále pomocí následujícího příkazu vytvořte připojení bez hesla k databázi.
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
Tento příkaz konektoru služby provede na pozadí následující úlohy:
Povolte spravovanou identitu přiřazenou systémem pro aplikaci $AZ_SPRING_APPS_APP_NAME
hostované službou Azure Spring Apps.
Nastavte správce Microsoft Entra na aktuálně přihlášeného uživatele.
Přidejte uživatele databáze s názvem $AZ_SPRING_APPS_SERVICE_NAME/apps/$AZ_SPRING_APPS_APP_NAME
pro spravovanou identitu vytvořenou v kroku 1 a udělte tomuto uživateli všechna oprávnění $AZ_DATABASE_NAME
databáze.
Do aplikace $AZ_SPRING_APPS_APP_NAME
přidejte dvě konfigurace: spring.datasource.url
a spring.datasource.username
.
Poznámka
Pokud se zobrazí chybová zpráva The subscription is not registered to use Microsoft.ServiceLinker
, spusťte příkaz az provider register --namespace Microsoft.ServiceLinker
pro registraci poskytovatele prostředků konektoru služeb a spusťte příkaz připojení znovu.
Následující kroky popisují, jak stáhnout, nakonfigurovat, sestavit a nasadit ukázkovou aplikaci.
Pomocí následujícího příkazu naklonujte úložiště ukázkového kódu:
git clone https://github.com/Azure-Samples/quickstart-spring-data-jdbc-mysql passwordless-sample
Do souboru pom.xml přidejte následující závislost:
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-jdbc-mysql</artifactId>
</dependency>
Tato závislost přidává podporu startéru Spring Cloud Azure.
Poznámka
Další informace o tom, jak spravovat verze knihoven Spring Cloud Azure pomocí BOM, najdete v části Začínáme příručky pro vývojáře Spring Cloud Azure.
Pomocí následujícího příkazu aktualizujte soubor application.properties:
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
EOF
K sestavení projektu pomocí Mavenu použijte následující příkazy:
cd passwordless-sample
./mvnw clean package -DskipTests
Použijte následující příkaz k nasazení souboru target/demo-0.0.1-SNAPSHOT.jar pro aplikaci:
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.jar
Pomocí následujícího příkazu odešlete dotaz na stav aplikace po nasazení:
az spring app list \
--service $AZ_SPRING_APPS_SERVICE_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--output table
Měl by se zobrazit výstup podobný následujícímu příkladu.
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 -
K otestování aplikace můžete použít cURL. Nejprve vytvořte novou položku "todo" v databázi pomocí následujícího příkazu:
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
Tento příkaz vrátí vytvořenou položku, jak je znázorněno v následujícím příkladu:
{"id":1,"description":"configuration","details":"congratulations, you have set up JDBC correctly!","done":true}
Potom načtěte data pomocí následujícího požadavku cURL:
curl https://${AZ_SPRING_APPS_SERVICE_NAME}-hellospring.azuremicroservices.io
Tento příkaz vrátí seznam položek "todo", včetně položky, kterou jste vytvořili, jak je znázorněno v následujícím příkladu:
[{"id":1,"description":"configuration","details":"congratulations, you have set up JDBC correctly!","done":true}]
Pokud chcete vyčistit všechny prostředky použité v tomto kurzu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Události
Vytváření inteligentních aplikací
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Nasazení aplikace Spring Boot do služby Aplikace Azure Service - Training
Vytvořte aplikaci Spring Boot, připojte ji k databázi MySQL a pak ji nasaďte do služby Azure App Service.
Certifikace
Microsoft Certified: Přidružení správce služby Azure Database - Certifications
Správa infrastruktury databáze SQL Serveru pro cloudové, místní a hybridní relační databáze pomocí nabídek relačních databází Microsoft PaaS.