Øvelse – Konfigurere Azure Container Apps
I denne enheten oppretter du en Azure-ressursgruppe som inneholder ressursene for programmet. Deretter konfigurerer du PostgreSQL-databasen ved hjelp av Azure CLI. Til slutt konfigurerer du Quarkus-programmet for å få tilgang til den eksterne PostgreSQL-databasen. Bruk en terminal du ønsker for å kjøre kommandoene.
Klargjøre arbeidsmiljøet
Du må konfigurere noen miljøvariabler. Her er noen notater om variablene du oppretter:
| Variabel | Beskrivelse |
|---|---|
AZ_PROJECT |
Navnet på prosjektet. Hvis du vil holde denne verdien unik, anbefaler vi at du bruker AZ_PROJECT_<your initials>. |
AZ_RESOURCE_GROUP |
Navnet på ressursgruppen som inneholder ressursene. |
AZ_LOCATION |
Azure-området. Vi anbefaler at du bruker et område som er i nærheten av der du bor. Hvis du vil se listen over tilgjengelige områder, skriver du inn az account list-locations i en ledetekst. |
AZ_CONTAINERAPP |
Navnet på Azure Container Apps-forekomsten som inneholder beholderne. |
AZ_CONTAINERAPP_ENV |
Navnet på Azure Container Apps-miljøet. |
AZ_POSTGRES_SERVER_NAME |
Navnet på PostgreSQL-serveren. Ikke-numeriske tegn er ikke tillatt: -, _, !, $, #, %. Navnet skal være unikt på tvers av Azure. Pass på å bruke en unik identifikator. |
AZ_POSTGRES_DB_NAME |
PostgreSQL-databasenavnet. Standardnavnet for PostgreSQL-databasen er postgres. |
AZ_POSTGRES_USERNAME |
Standard brukernavn for administrator for PostgreSQL-databaseserveren. |
AZ_POSTGRES_PASSWORD |
Standardpassordet for PostgreSQL-databaseserveren. Bruk et sikkert passord. |
Notat
Du kan gi azure-ressursene et navn slik du ønsker, men vi anbefaler at du går gjennom eksemplene på forkortelse for Azure-ressurser. Denne artikkelen inneholder eksempler på forkortelser for mange Azure-ressurser (for eksempel rg for ressursgrupper og ca for beholderapper).
Bruk følgende kommandoer til å konfigurere variablene. Pass på å endre verdiene som beskrevet i den forrige tabellen.
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>}"
Disse miljøvariablene brukes i resten av denne modulen.
Deretter oppretter du en ressursgruppe:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
Opprette en forekomst av Azure Database for PostgreSQL
Nå oppretter du en administrert PostgreSQL-server. Kjør følgende kommando for å opprette en liten forekomst av Azure Database for PostgreSQL:
Hvis du aldri har opprettet en PostgreSQL-server før, må du registrere leverandøren. Hvis du vil registrere PostgreSQL-leverandøren, kjører du følgende kommando:
az provider register --namespace Microsoft.DBforPostgreSQL
Deretter oppretter du PostgreSQL-serveren.
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"
Denne kommandoen oppretter en liten PostgreSQL-server som bruker variablene du konfigurerte tidligere.
Konfigurer Quarkus for å få tilgang til PostgreSQL-databasen
Nå kobler du Quarkus-programmet til PostgreSQL-databasen. Hvis du vil gjøre dette, må du først hente tilkoblingsstrengen for 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"
Legg merke til tilkoblingsstrengen som returneres.
Notat
Microsoft anbefaler at du bruker den sikreste godkjenningsflyten som er tilgjengelig. Godkjenningsflyten som er beskrevet i denne prosedyren, for eksempel for databaser, hurtigbuffere, meldinger eller AI-tjenester, krever høy grad av tillit til programmet og medfører risikoer som ikke finnes i andre flyter. Bruk denne flyten bare når sikrere alternativer, for eksempel administrerte identiteter for passordløse eller nøkkelløse tilkoblinger, ikke er levedyktige. For lokale maskinoperasjoner foretrekker du brukeridentiteter for passordløse eller nøkkelløse tilkoblinger.
Konfigurer Quarkus-programmet for å koble til PostgreSQL-databasen
Oppdater application.properties-filen i src/main/resources-mappen i prosjektet for å konfigurere tilkoblingsstrengen til PostgreSQL-databasen. Hvis du vil gjøre dette, angir du quarkus.datasource.jdbc.url-egenskapen til den tidligere utdataverdien $POSTGRES_CONNECTION_STRING_SSL. Den &ssl=true&sslmode=require delen av tilkoblingsstrengen tvinger driveren til å bruke SSL, et krav for Azure Database for PostgreSQL.
quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>
Kjør Quarkus-programmet lokalt for å teste tilkoblingen til den eksterne databasen
Bruk denne kommandoen til å kjøre programmet lokalt:
./mvnw clean quarkus:dev # On Mac or Linux
mvnw.cmd clean quarkus:dev # On Windows
Når Quarkus kjører, oppretter du noen gjøremål ved hjelp av følgende cURL-kommandoer i et eget terminalvindu:
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
Deretter kontrollerer du at gjøremålene er i databasen ved å få tilgang til GET-endepunktet som er definert i to-do-appen:
curl http://127.0.0.1:8080/api/todos
Du skal se følgende 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"
}
]
Hvis du ser dette utdataene, har du kjørt Quarkus-programmet og koblet til den eksterne PostgreSQL-databasen.