Gyakorlat – Az Azure Container Apps beállítása

Befejeződött

Ebben a leckében egy Azure-erőforráscsoportot hoz létre, amely az alkalmazás erőforrásait tartalmazza. Ezt követően az Azure CLI használatával állíthatja be a PostgreSQL-adatbázist. Végül konfigurálja a Quarkus-alkalmazást a távoli PostgreSQL-adatbázis eléréséhez. A parancsok futtatásához használjon egy tetszőleges terminált.

A munkakörnyezet előkészítése

Be kell állítania néhány környezeti változót. Íme néhány megjegyzés a létrehozható változókról:

Változó Leírás
AZ_PROJECT A projekt neve. Ennek az értéknek az egyedi megőrzéséhez javasoljuk, hogy használja a következőt AZ_PROJECT_<your initials>: .
AZ_RESOURCE_GROUP Az erőforrásokat tartalmazó erőforráscsoport neve.
AZ_LOCATION Az Azure-régió. Javasoljuk, hogy olyan régiót használjon, amely közel van a lakóhelyéhez. Az elérhető régiók listájának megtekintéséhez írja be az account list-locations a parancssorba.
AZ_CONTAINERAPP A tárolókat tartalmazó Azure Container Apps-példány neve.
AZ_CONTAINERAPP_ENV Az Azure Container Apps-környezet neve.
AZ_POSTGRES_SERVER_NAME A PostgreSQL-kiszolgáló neve. A nemnalfanumerikus karakterek nem engedélyezettek: -, _, !, $, #, %. A névnek egyedinek kell lennie az Azure-ban. Ügyeljen arra, hogy egyedi azonosítót használjon.
AZ_POSTGRES_DB_NAME A PostgreSQL-adatbázis neve. A PostgreSQL-adatbázis alapértelmezett neve a következő postgres: .
AZ_POSTGRES_USERNAME A PostgreSQL-adatbáziskiszolgáló alapértelmezett rendszergazdai felhasználóneve.
AZ_POSTGRES_PASSWORD A PostgreSQL-adatbáziskiszolgáló alapértelmezett jelszava. Használjon biztonságos jelszót.

Feljegyzés

Az Azure-erőforrásokat tetszőleges módon elnevezheti, de javasoljuk, hogy tekintse át az Azure-erőforrások rövidítési példáit. Ez a cikk számos Azure-erőforráshoz (például rg erőforráscsoportokhoz és ca tárolóalkalmazásokhoz) tartalmaz példa rövidítéseket.

A változók beállításához használja az alábbi parancsokat. Mindenképpen módosítsa az előző táblázatban leírt értékeket.

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>}"

Ezek a környezeti változók a modul többi részében használatosak.

Ez után hozzon létre egy erőforráscsoportot:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION

Azure Database for PostgreSQL-példány létrehozása

Most létrehoz egy felügyelt PostgreSQL-kiszolgálót. Futtassa a következő parancsot az Azure Database for PostgreSQL kis példányának létrehozásához:

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"

Ez a parancs létrehoz egy kis PostgreSQL-kiszolgálót, amely a korábban beállított változókat használja.

A Quarkus konfigurálása a PostgreSQL-adatbázis eléréséhez

Most csatlakoztatni fogja a Quarkus alkalmazást a PostgreSQL-adatbázishoz. Ehhez először be kell szereznie az adatbázis kapcsolati sztring:

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&sslmode=require"

echo "POSTGRES_CONNECTION_STRING_SSL=$POSTGRES_CONNECTION_STRING_SSL"

Figyelje meg a visszaadott kapcsolati sztring.

A Quarkus-alkalmazás konfigurálása a PostgreSQL-adatbázishoz való csatlakozáshoz

Frissítse a application.properties fájlt a src/main/resources projekt mappájában, hogy konfigurálja a kapcsolati sztring a PostgreSQL-adatbázisra. Ehhez állítsa a quarkus.datasource.jdbc.url tulajdonságot a korábban kimeneti $POSTGRES_CONNECTION_STRING_SSL értékre. A &ssl=true&sslmode=require kapcsolati sztring része arra kényszeríti az illesztőprogramot, hogy SSL-t használjon, ami az Azure Database for PostgreSQL követelménye.

quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>

Futtassa a Quarkus alkalmazást helyileg a távoli adatbázis-kapcsolat teszteléséhez

Az alkalmazás helyi futtatásához használja ezt a parancsot:

./mvnw clean quarkus:dev    # On Mac or Linux
mvnw.cmd clean quarkus:dev  # On Windows

Amikor a Quarkus fut, hozzon létre néhány teendőt a következő cURL-parancsok használatával egy külön terminálablakban:

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

Ezután ellenőrizze, hogy a teendők szerepelnek-e az adatbázisban a teendő alkalmazásban definiált GET-végpont eléréséhez:

curl http://127.0.0.1:8080/api/todos

A következő kimenetnek kell megjelennie:

[
   {
      "description" : "Take Quarkus MS Learn",
      "details" : "Take the MS Learn on deploying Quarkus to Azure Container Apps",
      "done" : true,
      "id" : 1
   },
   {
      "description" : "Take Azure Container Apps MS Learn",
      "details" : "Take the ACA Learn module",
      "done" : false,
      "id" : 2
   }
]

Ha ezt a kimenetet látja, sikeresen futtatta a Quarkus alkalmazást, és csatlakozott a távoli PostgreSQL-adatbázishoz.