Cvičení – nastavení Azure Container Apps
V této lekci vytvoříte skupinu prostředků Azure, která obsahuje prostředky pro aplikaci. Pak nastavíte databázi PostgreSQL pomocí Azure CLI. Nakonec nakonfigurujete aplikaci Quarkus pro přístup ke vzdálené databázi PostgreSQL. Ke spuštění příkazů použijte terminál podle vašeho výběru.
Příprava pracovního prostředí
Je potřeba nastavit některé proměnné prostředí. Tady je několik poznámek k proměnným, které vytvoříte:
Proměnná | Popis |
---|---|
AZ_PROJECT |
Název projektu. Pokud chcete tuto hodnotu zachovat jedinečnou, doporučujeme použít AZ_PROJECT_<your initials> . |
AZ_RESOURCE_GROUP |
Název skupiny prostředků, která obsahuje zdroje. |
AZ_LOCATION |
Oblast Azure. Doporučujeme použít oblast, která je blízko místa, kde žijete. Seznam dostupných oblastí zobrazíte zadáním az account list-locations na příkazovém řádku. |
AZ_CONTAINERAPP |
Název instance Azure Container Apps, která obsahuje kontejnery. |
AZ_CONTAINERAPP_ENV |
Název prostředí Azure Container Apps. |
AZ_POSTGRES_SERVER_NAME |
Název vašeho serveru PostgreSQL. Neosamocené znaky nejsou povoleny: -, _, !, $, #, %. Název by měl být jedinečný v rámci Azure. Nezapomeňte použít jedinečný identifikátor. |
AZ_POSTGRES_DB_NAME |
Název databáze PostgreSQL. Výchozí název databáze PostgreSQL je postgres . |
AZ_POSTGRES_USERNAME |
Výchozí uživatelské jméno správce pro váš databázový server PostgreSQL. |
AZ_POSTGRES_PASSWORD |
Výchozí heslo pro váš databázový server PostgreSQL. Použijte zabezpečené heslo. |
Poznámka
Prostředky Azure můžete pojmenovat libovolným způsobem, ale doporučujeme vám projít si příklady zkratek prostředků Azure. Tento článek obsahuje ukázkové zkratky pro mnoho prostředků Azure (například rg
pro skupiny prostředků a ca
pro kontejnerové aplikace).
K nastavení proměnných použijte následující příkazy. Nezapomeňte upravit hodnoty, jak je popsáno v předchozí tabulce.
export AZ_PROJECT_<your initials>="azure-deploy-quarkus"
export AZ_RESOURCE_GROUP="rg${AZ_PROJECT_<your initials>}"
export AZ_LOCATION="eastus"
export AZ_CONTAINERAPP="ca${AZ_PROJECT_<your initials>}"
export AZ_CONTAINERAPP_ENV="cae${AZ_PROJECT_<your initials>}"
export AZ_POSTGRES_DB_NAME="postgres${AZ_PROJECT_<your initials>}"
export AZ_POSTGRES_USERNAME="<user-name>"
export AZ_POSTGRES_PASSWORD="<secure-password>"
export AZ_POSTGRES_SERVER_NAME="psql${AZ_PROJECT_<your initials>}"
Tyto proměnné prostředí se používají ve zbytku tohoto modulu.
Dále vytvořte skupinu prostředků:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
Vytvoření instance Azure Database for PostgreSQL
Teď vytvoříte spravovaný server PostgreSQL. Spuštěním následujícího příkazu vytvořte malou instanci Azure Database for PostgreSQL:
Pokud jste ještě nikdy nevytvořili Server PostgreSQL, musíte poskytovatele zaregistrovat. Pokud chcete zaregistrovat zprostředkovatele PostgreSQL, spusťte následující příkaz:
az provider register --namespace Microsoft.DBforPostgreSQL
Pak vytvořte Server PostgreSQL.
az postgres flexible-server create \
--resource-group "$AZ_RESOURCE_GROUP" \
--location "$AZ_LOCATION" \
--name "$AZ_POSTGRES_SERVER_NAME" \
--database-name "$AZ_POSTGRES_DB_NAME" \
--admin-user "$AZ_POSTGRES_USERNAME" \
--admin-password "$AZ_POSTGRES_PASSWORD" \
--public-access "All" \
--tier "Burstable" \
--sku-name "Standard_B1ms" \
--storage-size 32 \
--version "16"
Tento příkaz vytvoří malý server PostgreSQL, který používá proměnné, které jste nastavili dříve.
Konfigurace Quarkus pro přístup k databázi PostgreSQL
Teď připojíte aplikaci Quarkus k databázi PostgreSQL. Pokud to chcete udělat, musíte nejprve získat připojovací řetězec pro databázi:
export POSTGRES_CONNECTION_STRING=$(
az postgres flexible-server show-connection-string \
--server-name "$AZ_POSTGRES_SERVER_NAME" \
--database-name "$AZ_POSTGRES_DB_NAME" \
--admin-user "$AZ_POSTGRES_USERNAME" \
--admin-password "$AZ_POSTGRES_PASSWORD" \
--query "connectionStrings.jdbc" \
--output tsv
)
export POSTGRES_CONNECTION_STRING_SSL="$POSTGRES_CONNECTION_STRING&ssl=true"
echo "POSTGRES_CONNECTION_STRING_SSL=$POSTGRES_CONNECTION_STRING_SSL"
Poznamenejte si vrácený připojovací řetězec.
Poznámka
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například u databází, mezipamětí, zasílání zpráv nebo služeb AI, vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok používejte pouze v případě, že nejsou možné zabezpečit možnosti, jako jsou spravované identity pro připojení bez hesla nebo bez klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.
Konfigurace aplikace Quarkus pro připojení k databázi PostgreSQL
Aktualizujte soubor application.properties
ve složce src/main/resources
projektu a nakonfigurujte připojovací řetězec do databáze PostgreSQL. Uděláte to tak, že vlastnost quarkus.datasource.jdbc.url
nastavíte na dříve výstupní hodnotu $POSTGRES_CONNECTION_STRING_SSL
. Část &ssl=true&sslmode=require
připojovacího řetězce vynutí, aby ovladač používal protokol SSL, což je požadavek pro Azure Database for PostgreSQL.
quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>
Spusťte aplikaci Quarkus místně a otestujte připojení ke vzdálené databázi.
Pomocí tohoto příkazu spusťte aplikaci místně:
./mvnw clean quarkus:dev # On Mac or Linux
mvnw.cmd clean quarkus:dev # On Windows
Když je quarkus spuštěný, vytvořte několik úkolů pomocí následujících příkazů cURL v samostatném okně terminálu:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"description":"Take Quarkus MS Learn","details":"Take the MS Learn on deploying Quarkus to Azure Container Apps","done": "true"}' \
http://127.0.0.1:8080/api/todos
curl --header "Content-Type: application/json" \
--request POST \
--data '{"description":"Take Azure Container Apps MS Learn","details":"Take the ACA Learn module","done": "false"}' \
http://127.0.0.1:8080/api/todos
Dále zkontrolujte, že jsou v databázi úkoly tak, že se připojíte k GET koncovému bodu, který je definován v aplikaci to-do.
curl http://127.0.0.1:8080/api/todos
Měl by se zobrazit následující výstup:
[
{
"id": 1,
"description": "Take Quarkus MS Learn",
"details": "Take the MS Learn on deploying Quarkus to Azure Container Apps",
"done": true,
"createdAt": "2025-02-26T08:03:28.390854Z"
},
{
"id": 2,
"description": "Take Azure Container Apps MS Learn",
"details": "Take the ACA Learn module",
"done": false,
"createdAt": "2025-02-26T08:03:34.142249Z"
}
]
Pokud se zobrazí tento výstup, úspěšně jste spustili aplikaci Quarkus a připojili se ke vzdálené databázi PostgreSQL.