Ö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 |
Azure-regionen. 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:
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&sslmode=require"
echo "POSTGRES_CONNECTION_STRING_SSL=$POSTGRES_CONNECTION_STRING_SSL"
Observera anslutningssträngen som returneras.
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:
[
{
"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
}
]
Om du ser dessa utdata har du kört Quarkus-programmet och anslutit till den fjärranslutna PostgreSQL-databasen.