Övning – Konfigurera Azure Container Apps
I den här lektionen skapar du en Azure-resursgrupp som innehåller programmets resurser. Sedan konfigurerar du PostgreSQL-databasen med hjälp av Azure CLI. Slutligen konfigurerar du Quarkus-programmet för åtkomst till den fjärranslutna PostgreSQL-databasen. Använd valfri terminal för att köra kommandona.
Förbereda arbetsmiljön
Du måste konfigurera vissa miljövariabler. Här följer några kommentarer om de variabler som du skapar:
| Variabel | Beskrivning |
|---|---|
AZ_PROJECT |
Namnet på projektet. För att hålla det här värdet unikt rekommenderar vi att du använder AZ_PROJECT_<your initials>. |
AZ_RESOURCE_GROUP |
Namnet på resursgruppen som innehåller resurserna. |
AZ_LOCATION |
Azurregionen Vi rekommenderar att du använder en region som är nära där du bor. Om du vill se listan över tillgängliga regioner anger du az account list-locations i en kommandotolk. |
AZ_CONTAINERAPP |
Namnet på den Azure Container Apps-instans som innehåller containrarna. |
AZ_CONTAINERAPP_ENV |
Namnet på Azure Container Apps-miljön. |
AZ_POSTGRES_SERVER_NAME |
Namnet på PostgreSQL-servern. Icke-numeriska tecken tillåts inte: -, _, !, $, #, %. Namnet ska vara unikt i Hela Azure. Se till att använda en unik identifierare. |
AZ_POSTGRES_DB_NAME |
PostgreSQL-databasnamnet. Standardnamnet för PostgreSQL-databasen är postgres. |
AZ_POSTGRES_USERNAME |
Standardadministratörsanvändarnamnet för PostgreSQL-databasservern. |
AZ_POSTGRES_PASSWORD |
Standardlösenordet för PostgreSQL-databasservern. Använd ett säkert lösenord. |
Not
Du kan namnge dina Azure-resurser på valfritt sätt, men vi rekommenderar att du läser förkortningsexempel för Azure-resurser. Den här artikeln innehåller exempelförkortningar för många Azure-resurser (till exempel rg för resursgrupper och ca för containerappar).
Använd följande kommandon för att konfigurera variablerna. Se till att ändra värdena enligt beskrivningen i föregående tabell.
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>}"
Dessa miljövariabler används i resten av den här modulen.
Skapa sedan en resursgrupp:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
Skapa en instans av Azure Database for PostgreSQL
Nu ska du skapa en hanterad PostgreSQL-server. Kör följande kommando för att skapa en liten instans av Azure Database for PostgreSQL:
Om du aldrig har skapat en PostgreSQL-server tidigare måste du registrera providern. Om du vill registrera PostgreSQL-providern kör du följande kommando:
az provider register --namespace Microsoft.DBforPostgreSQL
Skapa sedan PostgreSQL-servern.
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"
Det här kommandot skapar en liten PostgreSQL-server som använder de variabler som du konfigurerade tidigare.
Konfigurera Quarkus för åtkomst till PostgreSQL-databasen
Nu ska du ansluta Quarkus-programmet till PostgreSQL-databasen. För att göra det måste du först hämta anslutningssträngen för databasen:
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"
Observera anslutningssträngen som returneras.
Not
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren, till exempel för databaser, cacheminnen, meddelanden eller AI-tjänster, kräver en hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Använd endast det här flödet när säkrare alternativ, till exempel hanterade identiteter för lösenordslösa eller nyckellösa anslutningar, inte är genomförbara. För lokala datoråtgärder föredrar du användaridentiteter för lösenordslösa eller nyckellösa anslutningar.
Konfigurera Quarkus-programmet för att ansluta till PostgreSQL-databasen
Uppdatera application.properties-filen i src/main/resources-mappen i projektet för att konfigurera anslutningssträngen till PostgreSQL-databasen. Om du vill göra det anger du egenskapen quarkus.datasource.jdbc.url till det tidigare utdatavärdet $POSTGRES_CONNECTION_STRING_SSL. Den &ssl=true&sslmode=require delen av anslutningssträngen tvingar drivrutinen att använda SSL, ett krav för Azure Database for PostgreSQL.
quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>
Kör Quarkus-programmet lokalt för att testa fjärrdatabasanslutningen
Använd det här kommandot för att köra programmet lokalt:
./mvnw clean quarkus:dev # On Mac or Linux
mvnw.cmd clean quarkus:dev # On Windows
När Quarkus körs skapar du några att göra-åtgärder med hjälp av följande cURL-kommandon i ett separat terminalfönster:
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
Kontrollera sedan att att göra-posterna finns i databasen genom att komma åt GET-slutpunkten som har definierats i to-do-appen.
curl http://127.0.0.1:8080/api/todos
Du bör se följande utdata:
[
{
"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"
}
]
Om du ser dessa utdata har du kört Quarkus-programmet och anslutit till den fjärranslutna PostgreSQL-databasen.