Exercice - Configurer Azure Container Apps
Dans cette unité, vous créez un groupe de ressources Azure qui contient les ressources de l’application. Vous configurez ensuite la base de données PostgreSQL en utilisant Azure CLI. Enfin, vous configurez l’application Quarkus pour accéder à la base de données PostgreSQL distante. Utilisez un terminal de votre choix pour exécuter les commandes.
Préparer l’environnement de travail
Vous devez configurer certaines variables d’environnement. Voici quelques notes sur les variables que vous allez créer :
Variable | Description |
---|---|
AZ_PROJECT |
Nom du projet. Pour que cette valeur reste unique, nous vous recommandons d’utiliser AZ_PROJECT_<your initials> . |
AZ_RESOURCE_GROUP |
Nom du groupe de ressources qui détient les ressources. |
AZ_LOCATION |
Région Azure. Nous vous recommandons d’utiliser une région proche de là où vous vous trouvez. Pour obtenir la liste complète des régions disponibles, entrez az account list-locations à une invite de commandes. |
AZ_CONTAINERAPP |
Nom de l’instance Azure Container Apps qui détient les conteneurs. |
AZ_CONTAINERAPP_ENV |
Nom de l’environnement Azure Container Apps. |
AZ_POSTGRES_SERVER_NAME |
Nom de votre serveur PostgreSQL. Les caractères non alphanumériques ne sont pas autorisés : -, _, !, $, #, %. Le nom doit être unique dans tout Azure. Veillez à utiliser un identificateur unique. |
AZ_POSTGRES_DB_NAME |
Nom de la base de données PostgreSQL. Le nom par défaut de la base de données PostgreSQL est postgres . |
AZ_POSTGRES_USERNAME |
Nom d’utilisateur administrateur par défaut de votre serveur de base de données PostgreSQL. |
AZ_POSTGRES_PASSWORD |
Mot de passe par défaut de votre serveur de base de données PostgreSQL. Utilisez un mot de passe sécurisé. |
Remarque
Vous pouvez nommer vos ressources Azure comme vous le souhaitez, mais nous vous recommandons de consulter Exemples d’abréviations pour les ressources Azure. Cet article fournit des exemples d’abréviations pour de nombreuses ressources Azure (par exemple, rg
pour les groupes de ressources et ca
pour les applications conteneur).
Utilisez les commandes suivantes pour configurer les variables. Veillez à modifier les valeurs comme décrit dans le tableau précédent.
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>}"
Ces variables d’environnement sont utilisées tout au long du reste de ce module.
Créez ensuite un groupe de ressources :
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
Créer une instance d’Azure Database pour PostgreSQL
Vous allez maintenant créer un serveur PostgreSQL managé. Exécutez la commande suivante pour créer une petite instance Azure Database pour 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"
Cette commande crée un petit serveur PostgreSQL qui utilise les variables que vous avez configurées.
Configurer Quarkus pour accéder à la base de données PostgreSQL
Vous allez maintenant connecter l’application Quarkus à la base de données PostgreSQL. Pour ce faire, vous devez d’abord obtenir la chaîne de connexion de la base de données :
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"
Notez la chaîne de connexion retournée.
Configurer l’application Quarkus pour se connecter à la base de données PostgreSQL
Mettez à jour le fichier application.properties
dans le dossier src/main/resources
du projet pour configurer la chaîne de connexion à la base de données PostgreSQL. Pour ce faire, définissez la propriété quarkus.datasource.jdbc.url
sur la valeur $POSTGRES_CONNECTION_STRING_SSL
générée précédente. La partie &ssl=true&sslmode=require
de la chaîne de connexion force le pilote à utiliser le protocole SSL, qui est une condition requise pour Azure Database pour PostgreSQL.
quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>
Exécuter l’application Quarkus localement pour tester la connexion à la base de données distante
Utilisez cette commande pour exécuter l’application localement :
./mvnw clean quarkus:dev # On Mac or Linux
mvnw.cmd clean quarkus:dev # On Windows
Quand Quarkus est exécuté, créez quelques tâches en utilisant les commandes cURL suivantes dans une fenêtre de terminal distincte :
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
Ensuite, vérifiez que les tâches se trouvent dans la base de données en accédant au point de terminaison GET qui est défini dans l’application de tâches :
curl http://127.0.0.1:8080/api/todos
Vous devez normalement voir la sortie suivante :
[
{
"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
}
]
Si vous voyez cette sortie, vous avez réussi à exécuter l’application Quarkus et à vous connecter à la base de données PostgreSQL distante.