Oefening: Azure Container Apps instellen
In deze eenheid maakt u een Azure-resourcegroep die de resources voor de toepassing bevat. Vervolgens stelt u de PostgreSQL-database in met behulp van de Azure CLI. Ten slotte configureert u de Quarkus-toepassing voor toegang tot de externe PostgreSQL-database. Gebruik een terminal van uw keuze om de opdrachten uit te voeren.
De werkomgeving voorbereiden
U moet enkele omgevingsvariabelen instellen. Hier volgen enkele opmerkingen over de variabelen die u gaat maken:
Variabele | Beschrijving |
---|---|
AZ_PROJECT |
De naam van het project. Als u deze waarde uniek wilt houden, raden we u aan deze waarde te gebruiken AZ_PROJECT_<your initials> . |
AZ_RESOURCE_GROUP |
De naam van de resourcegroep die de resources bevat. |
AZ_LOCATION |
De Azure-regio. U wordt aangeraden een regio te gebruiken die zich dicht bij de locatie bevindt. Voer een opdrachtprompt in az account list-locations om de lijst met beschikbare regio's weer te geven. |
AZ_CONTAINERAPP |
De naam van het Azure Container Apps-exemplaar dat de containers bevat. |
AZ_CONTAINERAPP_ENV |
De naam van de Azure Container Apps-omgeving. |
AZ_POSTGRES_SERVER_NAME |
De naam van uw PostgreSQL-server. Niet-numerieke tekens zijn niet toegestaan: -, _, !, $, #, %. De naam moet uniek zijn in Azure. Zorg ervoor dat u een unieke id gebruikt. |
AZ_POSTGRES_DB_NAME |
De naam van de PostgreSQL-database. De standaardnaam van de PostgreSQL-database is postgres . |
AZ_POSTGRES_USERNAME |
De standaardgebruikersnaam van de beheerder voor uw PostgreSQL-databaseserver. |
AZ_POSTGRES_PASSWORD |
Het standaardwachtwoord voor uw PostgreSQL-databaseserver. Gebruik een beveiligd wachtwoord. |
Notitie
U kunt uw Azure-resources op elke gewenste manier een naam geven, maar we raden u aan afkortingsvoorbeelden voor Azure-resources te bekijken. Dit artikel bevat voorbeeld afkortingen voor veel Azure-resources (bijvoorbeeld rg
voor resourcegroepen en ca
voor container-apps).
Gebruik de volgende opdrachten om de variabelen in te stellen. Zorg ervoor dat u de waarden wijzigt zoals beschreven in de voorgaande tabel.
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>}"
Deze omgevingsvariabelen worden in de rest van deze module gebruikt.
Maak vervolgens een resourcegroep:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
Een exemplaar van Azure Database for PostgreSQL maken
U maakt nu een beheerde PostgreSQL-server. Voer de volgende opdracht uit om een klein exemplaar van Azure Database for PostgreSQL te maken:
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"
Met deze opdracht maakt u een kleine PostgreSQL-server die gebruikmaakt van de variabelen die u eerder hebt ingesteld.
Quarkus configureren voor toegang tot de PostgreSQL-database
U verbindt de Quarkus-toepassing nu met de PostgreSQL-database. Hiervoor moet u eerst de verbindingsreeks voor de database verkrijgen:
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"
Noteer de verbindingsreeks die wordt geretourneerd.
De Quarkus-toepassing configureren om verbinding te maken met de PostgreSQL-database
Werk het application.properties
bestand in de src/main/resources
map van het project bij om de verbindingsreeks naar de PostgreSQL-database te configureren. Hiervoor stelt u de quarkus.datasource.jdbc.url
eigenschap in op de eerder uitgevoerde $POSTGRES_CONNECTION_STRING_SSL
waarde. Het &ssl=true&sslmode=require
deel van de verbindingsreeks dwingt het stuurprogramma om SSL te gebruiken, een vereiste voor Azure Database for PostgreSQL.
quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>
De Quarkus-toepassing lokaal uitvoeren om de externe databaseverbinding te testen
Gebruik deze opdracht om de toepassing lokaal uit te voeren:
./mvnw clean quarkus:dev # On Mac or Linux
mvnw.cmd clean quarkus:dev # On Windows
Wanneer Quarkus wordt uitgevoerd, maakt u een paar taken met behulp van de volgende cURL-opdrachten in een afzonderlijk terminalvenster:
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
Controleer vervolgens of de taken zich in de database bevinden door toegang te krijgen tot het GET-eindpunt dat is gedefinieerd in de taken-app:
curl http://127.0.0.1:8080/api/todos
U moet de volgende uitvoer zien:
[
{
"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
}
]
Als u deze uitvoer ziet, hebt u de Quarkus-toepassing uitgevoerd en verbinding gemaakt met de externe PostgreSQL-database.