Nasazení aplikace v Javě s Quarkus v clusteru Azure Kubernetes Service
V tomto článku se dozvíte, jak rychle nasadit Red Hat Quarkus ve službě Azure Kubernetes Service (AKS) pomocí jednoduché aplikace CRUD. Aplikace je seznam úkolů s front-endem JavaScriptu a koncovým bodem REST. Azure Database for PostgreSQL poskytuje vrstvu trvalosti aplikace. V článku se dozvíte, jak aplikaci otestovat místně a nasadit ji do AKS.
Požadavky
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
- Služba Azure Cloud Shell má všechny tyto předpoklady předinstalované. Další informace najdete v rychlém startu pro Azure Cloud Shell.
- Pokud příkazy v této příručce spouštíte místně (místo použití Azure Cloud Shellu), proveďte následující kroky:
- Připravte místní počítač s nainstalovaným operačním systémem Unix (například Ubuntu, macOS nebo Subsystém Windows pro Linux).
- Nainstalujte implementaci Java SE (například sestavení OpenJDK od Microsoftu).
- Nainstalujte Maven 3.5.0 nebo novější.
- Nainstalujte Docker nebo Podman pro váš operační systém.
- Nainstalujte jq.
- Nainstalujte cURL.
- Nainstalujte rozhraní příkazového řádku Quarkus.
- Azure CLI pro prostředí podobná unixovým systémům. Tento článek vyžaduje pouze variantu Bash Azure CLI.
Vývojář by měl nainstalovat Azure CLI a přihlásit se interaktivně pomocí příkazu az login pro přihlášení k Azure před použitím defaultAzureCredential v kódu. az login
- Tento článek vyžaduje aspoň verzi 2.31.0 Azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Vytvoření projektu aplikace
Pomocí následujícího příkazu naklonujte ukázkový projekt Java pro tento článek. Ukázka je na GitHubu.
git clone https://github.com/Azure-Samples/quarkus-azure
cd quarkus-azure
git checkout 2023-07-17
cd aks-quarkus
Pokud se zobrazí zpráva o tom, že je v odpojeném stavu HEAD , je tato zpráva v bezpečí ignorovat. Vzhledem k tomu, že tento článek nevyžaduje potvrzení, je vhodné odpojit stav HEAD.
Místní testování aplikace Quarkus
Kroky v této části ukazují, jak aplikaci spustit místně.
Quarkus podporuje automatické zřizování nekonfigurovaných služeb ve vývojovém a testovacím režimu. Quarkus se na tuto funkci odkazuje jako na vývojové služby. Řekněme, že zahrnete funkci Quarkus, například připojení k databázové službě. Chcete aplikaci otestovat, ale ještě jste nenakonfigurovali připojení k reálné databázi. Quarkus automaticky spustí verzi zástupných procedur příslušné služby a připojí k ní vaši aplikaci. Další informace najdete v tématu Přehled služby Dev Services v dokumentaci k Quarkus.
Ujistěte se, že je vaše prostředí kontejneru, Docker nebo Podman spuštěné, a pomocí následujícího příkazu přejděte do vývojového režimu Quarkus:
quarkus dev
quarkus dev
Místo toho můžete s Mavenem dosáhnout totéž pomocí mvn quarkus:dev
.
Může se zobrazit dotaz, jestli chcete odesílat telemetrická data o využití vývojového režimu Quarkus. Pokud ano, odpovězte tak, jak chcete.
Režim vývoje Quarkus umožňuje živé opětovné načítání s kompilací na pozadí. Pokud upravíte jakýkoli aspekt zdrojového kódu aplikace a aktualizujete prohlížeč, uvidíte změny. Pokud dojde k problémům s kompilací nebo nasazením, zobrazí se chybová stránka s informacemi. Režim vývoje Quarkus naslouchá ladicímu programu na portu 5005. Pokud chcete počkat na připojení ladicího programu před spuštěním, předejte -Dsuspend
ho na příkazovém řádku. Pokud ladicí program vůbec nechcete, můžete použít -Ddebug=false
.
Výstup by měl vypadat jako v následujícím příkladu:
__ ____ __ _____ ___ __ ____ ______
--/ __ \/ / / / _ | / _ \/ //_/ / / / __/
-/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
INFO [io.quarkus] (Quarkus Main Thread) quarkus-todo-demo-app-aks 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.2.0.Final) started in 3.377s. Listening on: http://localhost:8080
INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
INFO [io.quarkus] (Quarkus Main Thread) Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, hibernate-validator, jdbc-postgresql, narayana-jta, resteasy-reactive, resteasy-reactive-jackson, smallrye-context-propagation, vertx]
--
Tests paused
Press [e] to edit command line args (currently ''), [r] to resume testing, [o] Toggle test output, [:] for the terminal, [h] for more options>
Stiskněte klávesu w na terminálu, kde běží vývojový režim Quarkus. Klávesa w otevře výchozí webový prohlížeč pro zobrazení Todo
aplikace. K grafickému uživatelskému rozhraní http://localhost:8080
aplikace můžete přistupovat také přímo.
Zkuste vybrat několik položek úkolů v seznamu úkolů. Uživatelské rozhraní označuje výběr pomocí přeškrtnutého stylu textu. Novou položku seznamu úkolů můžete přidat také zadáním příkazu Ověřit aplikace todo a stisknutím klávesy ENTER, jak je znázorněno na následujícím snímku obrazovky:
Přístup k rozhraní RESTful API (/api
) a získejte všechny položky úkolů, které se ukládají v místní databázi PostgreSQL:
curl --verbose http://localhost:8080/api | jq .
Výstup by měl vypadat jako v následujícím příkladu:
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /api HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 200 OK
< content-length: 664
< Content-Type: application/json;charset=UTF-8
<
{ [664 bytes data]
100 664 100 664 0 0 13278 0 --:--:-- --:--:-- --:--:-- 15441
* Connection #0 to host localhost left intact
[
{
"id": 1,
"title": "Introduction to Quarkus Todo App",
"completed": false,
"order": 0,
"url": null
},
{
"id": 2,
"title": "Quarkus on Azure App Service",
"completed": false,
"order": 1,
"url": "https://learn.microsoft.com/en-us/azure/developer/java/eclipse-microprofile/deploy-microprofile-quarkus-java-app-with-maven-plugin"
},
{
"id": 3,
"title": "Quarkus on Azure Container Apps",
"completed": false,
"order": 2,
"url": "https://learn.microsoft.com/en-us/training/modules/deploy-java-quarkus-azure-container-app-postgres/"
},
{
"id": 4,
"title": "Quarkus on Azure Functions",
"completed": false,
"order": 3,
"url": "https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-first-quarkus"
},
{
"id": 5,
"title": "Verify Todo apps",
"completed": false,
"order": 5,
"url": null
}
]
Stisknutím klávesy q ukončete vývojový režim Quarkus.
Vytvoření prostředků Azure pro spuštění aplikace Quarkus
Kroky v této části ukazují, jak vytvořit následující prostředky Azure pro spuštění ukázkové aplikace Quarkus:
- Azure Database for PostgreSQL
- Azure Container Registry (ACR)
- Azure Kubernetes Service (AKS)
Některé z těchto prostředků musí mít jedinečné názvy v rozsahu předplatného Azure. K zajištění této jedinečnosti můžete použít iniciály, posloupnost, datum, vzor přípony . Pokud chcete tento vzor použít, pojmenujte prostředky uvedením iniciály, určitého pořadového čísla, dnešního data a nějaké přípony specifické pro prostředek – například rg
"skupina prostředků". Pomocí následujících příkazů definujte některé proměnné prostředí, které se mají použít později:
export UNIQUE_VALUE=<your unique value, such as ejb010717>
export RESOURCE_GROUP_NAME=${UNIQUE_VALUE}rg
export LOCATION=<your desired Azure region for deploying your resources. For example, eastus>
export REGISTRY_NAME=${UNIQUE_VALUE}reg
export DB_SERVER_NAME=${UNIQUE_VALUE}db
export CLUSTER_NAME=${UNIQUE_VALUE}aks
export AKS_NS=${UNIQUE_VALUE}ns
Vytvoření Azure Database for PostgreSQL
Azure Database for PostgreSQL je spravovaná služba pro spouštění, správu a škálování vysoce dostupných databází PostgreSQL v cloudu Azure. Tato část vás nasměruje na samostatný rychlý start, který ukazuje, jak vytvořit jeden server Azure Database for PostgreSQL a jak se k němu připojit. Pokud ale budete postupovat podle kroků v rychlém startu, musíte použít nastavení v následující tabulce k přizpůsobení nasazení databáze pro ukázkovou aplikaci Quarkus. Proměnné prostředí nahraďte jejich skutečnými hodnotami při vyplňování polí na webu Azure Portal.
Nastavení | Hodnota | Popis |
---|---|---|
Skupina prostředků | ${RESOURCE_GROUP_NAME} |
Vyberte, že chcete vytvořit novou IP adresu. Nasazení vytvoří tuto novou skupinu prostředků. |
Název serveru | ${DB_SERVER_NAME} |
Tato hodnota je součástí názvu hostitele databázového serveru. |
Umístění | ${LOCATION} |
V rozevíracím seznamu vyberte umístění. Poznamenejte si umístění. Musíte použít stejné umístění pro další prostředky Azure, které vytvoříte. |
Uživatelské jméno správce | quarkus | Vzorový kód předpokládá tuto hodnotu. |
Heslo | Tajný kód123456 | Vzorový kód předpokládá tuto hodnotu. |
S ohledem na tyto náhrady hodnot postupujte podle kroků v rychlém startu: Vytvoření serveru Azure Database for PostgreSQL pomocí webu Azure Portal až do části Konfigurace pravidla brány firewall. Potom v části Konfigurace pravidla brány firewall nezapomeňte vybrat Ano pro povolení přístupu ke službám Azure a pak vyberte Uložit. Pokud to neuděláte, vaše aplikace Quarkus nemůže získat přístup k databázi a jednoduše se nikdy nespustí.
Po dokončení kroků v rychlém startu v části Konfigurace pravidla brány firewall, včetně kroku povolení přístupu ke službám Azure, se vraťte do tohoto článku.
Vytvoření databáze todo v PostgreSQL
Server PostgreSQL, který jste vytvořili dříve, je prázdný. Nemá žádnou databázi, kterou můžete použít s aplikací Quarkus. Vytvořte novou databázi volanou todo
pomocí následujícího příkazu:
az postgres db create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name todo \
--server-name ${DB_SERVER_NAME}
Musíte použít todo
jako název databáze, protože vzorový kód předpokládá, že název databáze.
Pokud je příkaz úspěšný, výstup vypadá podobně jako v následujícím příkladu:
{
"charset": "UTF8",
"collation": "English_United States.1252",
"id": "/subscriptions/REDACTED/resourceGroups/ejb010718rg/providers/Microsoft.DBforPostgreSQL/servers/ejb010718db/databases/todo",
"name": "todo",
"resourceGroup": "ejb010718rg",
"type": "Microsoft.DBforPostgreSQL/servers/databases"
}
Vytvoření instance služby Microsoft Azure Container Registry
Vzhledem k tomu, že Quarkus je nativní cloudová technologie, má integrovanou podporu pro vytváření kontejnerů, které běží v Kubernetes. Kubernetes je zcela závislý na tom, že má registr kontejneru, ze kterého najde image kontejneru ke spuštění. AKS má integrovanou podporu služby Azure Container Registry (ACR).
K vytvoření instance ACR použijte příkaz az acr create. Následující příklad vytvoří instanci ACR s hodnotou proměnné prostředí ${REGISTRY_NAME}
:
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--location ${LOCATION} \
--name $REGISTRY_NAME \
--sku Basic \
--admin-enabled
Po krátké době byste měli vidět výstup JSON, který obsahuje následující řádky:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "<YOUR_RESOURCE_GROUP>",
Připojení do instance ACR do dockeru
Přihlaste se k instanci ACR. Přihlášení umožňuje nasdílení image. Pomocí následujících příkazů ověřte připojení:
export LOGIN_SERVER=$(az acr show \
--name $REGISTRY_NAME \
--query 'loginServer' \
--output tsv)
echo $LOGIN_SERVER
export USER_NAME=$(az acr credential show \
--name $REGISTRY_NAME \
--query 'username' \
--output tsv)
echo $USER_NAME
export PASSWORD=$(az acr credential show \
--name $REGISTRY_NAME \
--query 'passwords[0].value' \
--output tsv)
echo $PASSWORD
docker login $LOGIN_SERVER -u $USER_NAME -p $PASSWORD
Pokud místo Dockeru používáte Podman, proveďte potřebné změny příkazu.
Pokud jste se úspěšně přihlásili k instanci ACR, měli byste vidět Login Succeeded
na konci výstupu příkazu.
Vytvoření clusteru AKS
Pomocí příkazu az aks create vytvořte cluster AKS. Následující příklad vytvoří cluster s názvem s hodnotou proměnné ${CLUSTER_NAME}
prostředí s jedním uzlem. Cluster je připojený k instanci služby ACR, kterou jste vytvořili v předchozím kroku. Dokončení tohoto příkazu trvá několik minut.
az aks create \
--resource-group $RESOURCE_GROUP_NAME \
--location ${LOCATION} \
--name $CLUSTER_NAME \
--attach-acr $REGISTRY_NAME \
--node-count 1 \
--generate-ssh-keys \
--enable-managed-identity
Po několika minutách se příkaz dokončí a vrátí informace o clusteru ve formátu JSON, včetně následujícího výstupu:
"nodeResourceGroup": "MC_<your resource_group_name>_<your cluster name>_<your region>",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "<your resource group name>",
Připojení do clusteru AKS
Ke správě clusteru Kubernetes použijete kubectl
klienta příkazového řádku Kubernetes. Pokud používáte Azure Cloud Shell, kubectl
je už nainstalovaný. Pokud chcete nainstalovat kubectl
místně, použijte příkaz az aks install-cli , jak je znázorněno v následujícím příkladu:
az aks install-cli
Další informace o kubectl
nástroji příkazového řádku (kubectl) najdete v dokumentaci Kubernetes.
Pokud chcete nakonfigurovat kubectl
připojení ke clusteru Kubernetes, použijte příkaz az aks get-credentials , jak je znázorněno v následujícím příkladu. Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.
az aks get-credentials \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--overwrite-existing \
--admin
Úspěšný výstup obsahuje text podobný následujícímu příkladu:
Merged "ejb010718aks-admin" as current context in /Users/edburns/.kube/config
Možná je užitečné aliasovat k
kubectl
. Pokud ano, použijte následující příkaz:
alias k=kubectl
Pokud chcete ověřit připojení ke clusteru, použijte kubectl get
příkaz k vrácení seznamu uzlů clusteru, jak je znázorněno v následujícím příkladu:
kubectl get nodes
Následující příklad výstupu ukazuje jeden uzel vytvořený v předchozích krocích. Ujistěte se, že je stav uzlu připravený:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready agent 76s v1.23.8
Vytvoření nového oboru názvů v AKS
Pomocí následujícího příkazu vytvořte ve službě Kubernetes nový obor názvů pro vaši aplikaci Quarkus:
kubectl create namespace ${AKS_NS}
Výstup by měl vypadat jako v následujícím příkladu:
namespace/<your namespace> created
Přizpůsobení nativní konfigurace cloudu
Jako nativní cloudová technologie nabízí Quarkus možnost automaticky konfigurovat prostředky pro standardní Kubernetes, Red Hat OpenShift a Knative. Další informace najdete v průvodci Quarkus Kubernetes, příručkou Quarkus OpenShift a příručkou Quarkus Knative. Vývojáři mohou aplikaci nasadit do cílového clusteru Kubernetes použitím vygenerovaných manifestů.
Pokud chcete vygenerovat příslušné prostředky Kubernetes, přidejte do quarkus-kubernetes
místního terminálu následující příkaz:container-image-jib
quarkus ext add kubernetes container-image-jib
Quarkus upraví POM, aby se zajistilo, že jsou tato rozšíření uvedena jako <dependencies>
. Pokud se zobrazí výzva k instalaci s názvem JBang
, odpovězte ano a povolte instalaci.
Výstup by měl vypadat jako v následujícím příkladu:
[SUCCESS] ✅ Extension io.quarkus:quarkus-kubernetes has been installed
[SUCCESS] ✅ Extension io.quarkus:quarkus-container-image-jib has been installed
Pokud chcete ověřit přidání rozšíření, můžete spustit git diff
a prozkoumat výstup.
Jako nativní technologie cloudu podporuje Quarkus pojem konfiguračních profilů. Quarkus má následující tři předdefinované profily:
dev
- Aktivováno v režimu vývojetest
- Aktivováno při spouštění testůprod
– Výchozí profil, pokud není spuštěný ve vývojovém nebo testovacím režimu
Quarkus podle potřeby podporuje libovolný počet pojmenovaných profilů.
Zbývající kroky v této části vás nasměruje na zrušení komentáře a přizpůsobení hodnot v souboru src/main/resources/application.properties . Ujistěte se, že všechny řádky začínající # %prod.
na začátku jsou nekommentovány odebráním úvodních #
řádků .
Předpona prod.
označuje, že tyto vlastnosti jsou aktivní při spuštění v prod
profilu. Další informace o konfiguračních profilech najdete v dokumentaci k Quarkus.
Konfigurace databáze
Přidejte následující konfigurační proměnné databáze. Nahraďte hodnoty <DB_SERVER_NAME_VALUE>
skutečnými hodnotami ${DB_SERVER_NAME}
proměnné prostředí.
# Database configurations
%prod.quarkus.datasource.db-kind=postgresql
%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://<DB_SERVER_NAME_VALUE>.postgres.database.azure.com:5432/todo
%prod.quarkus.datasource.jdbc.driver=org.postgresql.Driver
%prod.quarkus.datasource.username=quarkus@<DB_SERVER_NAME_VALUE>
%prod.quarkus.datasource.password=Secret123456
%prod.quarkus.hibernate-orm.database.generation=drop-and-create
Konfigurace Kubernetes
Přidejte následující proměnné konfigurace Kubernetes. Nezapomeňte nastavit service-type
přístup k load-balancer
aplikaci externě.
# AKS configurations
%prod.quarkus.kubernetes.deployment-target=kubernetes
%prod.quarkus.kubernetes.service-type=load-balancer
Konfigurace image kontejneru
Jako nativní technologie cloudu podporuje Quarkus generování imagí kontejnerů OCI kompatibilních s Dockerem a Podmanem. Přidejte následující proměnné image kontejneru. Nahraďte hodnoty <LOGIN_SERVER_VALUE>
a <USER_NAME_VALUE>
hodnotami skutečných hodnot ${LOGIN_SERVER}
proměnných prostředí a ${USER_NAME}
proměnných prostředí.
# Container Image Build
%prod.quarkus.container-image.build=true
%prod.quarkus.container-image.registry=<LOGIN_SERVER_VALUE>
%prod.quarkus.container-image.group=<USER_NAME_VALUE>
%prod.quarkus.container-image.name=todo-quarkus-aks
%prod.quarkus.container-image.tag=1.0
Sestavení image kontejneru a jeho nasdílení do ACR
Teď pomocí následujícího příkazu sestavte samotnou aplikaci. Tento příkaz používá rozšíření Kubernetes a Jib k sestavení image kontejneru.
quarkus build --no-tests
Výstup by měl končit .BUILD SUCCESS
Soubory manifestu Kubernetes se generují v cíli nebo kubernetes, jak je znázorněno v následujícím příkladu:
tree target/kubernetes
target/kubernetes
├── kubernetes.json
└── kubernetes.yml
0 directories, 2 files
Pomocí příkazového podman
řádku nebo příkazového řádku můžete ověřit, jestli se image kontejneru vygenerujedocker
. Výstup vypadá podobně jako v následujícím příkladu:
docker images | grep todo
<LOGIN_SERVER_VALUE>/<USER_NAME_VALUE>/todo-quarkus-aks 1.0 b13c389896b7 18 minutes ago 420MB
Nasdílení imagí kontejneru do služby ACR pomocí následujícího příkazu:
export TODO_QUARKUS_TAG=$(docker images | grep todo-quarkus-aks | head -n1 | cut -d " " -f1)
echo ${TODO_QUARKUS_TAG}
docker push ${TODO_QUARKUS_TAG}:1.0
Výstup by měl vypadat zhruba jako v tomto příkladu:
The push refers to repository [<LOGIN_SERVER_VALUE>/<USER_NAME_VALUE>/todo-quarkus-aks]
dfd615499b3a: Pushed
56f5cf1aa271: Pushed
4218d39b228e: Pushed
b0538737ed64: Pushed
d13845d85ee5: Pushed
60609ec85f86: Pushed
1.0: digest: sha256:0ffd70d6d5bb3a4621c030df0d22cf1aa13990ca1880664d08967bd5bab1f2b6 size: 1995
Teď, když jste aplikaci nasdíleli do ACR, můžete AKS říct, aby aplikaci spustila.
Nasazení aplikace Quarkus do AKS
Kroky v této části ukazují, jak spustit ukázkovou aplikaci Quarkus na prostředcích Azure, které jste vytvořili.
Použití kubectl k nasazení aplikace Quarkus do AKS
Nasaďte prostředky Kubernetes pomocí kubectl
příkazového řádku, jak je znázorněno v následujícím příkladu:
kubectl apply -f target/kubernetes/kubernetes.yml -n ${AKS_NS}
Výstup by měl vypadat jako v následujícím příkladu:
deployment.apps/quarkus-todo-demo-app-aks created
Pomocí následujícího příkazu ověřte, že je aplikace spuštěná:
kubectl -n $AKS_NS get pods
Pokud hodnota pole zobrazuje něco jiného STATUS
než Running
, před pokračováním problém vyřešte a vyřešte problém. S prozkoumáním protokolů podů vám může pomoct následující příkaz:
kubectl -n $AKS_NS logs $(kubectl -n $AKS_NS get pods | grep quarkus-todo-demo-app-aks | cut -d " " -f1)
EXTERNAL-IP
Pomocí následujícího příkazu získejte přístup k aplikaci Todo:
kubectl get svc -n ${AKS_NS}
Výstup by měl vypadat jako v následujícím příkladu:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
quarkus-todo-demo-app-aks LoadBalancer 10.0.236.101 20.12.126.200 80:30963/TCP 37s
Pomocí následujícího příkazu můžete uložit hodnotu EXTERNAL-IP
proměnné prostředí jako plně kvalifikovanou adresu URL:
export QUARKUS_URL=http://$(kubectl get svc -n ${AKS_NS} | grep quarkus-todo-demo-app-aks | cut -d " " -f10)
echo $QUARKUS_URL
Otevřete nový webový prohlížeč s hodnotou ${QUARKUS_URL}
. Potom přidejte novou položku úkolu s textem Deployed the Todo app to AKS
. Introduction to Quarkus Todo App
Vyberte také položku jako dokončenou.
Přístup k rozhraní RESTful API (/api
) a získejte všechny položky úkolů uložené v databázi Azure PostgreSQL, jak je znázorněno v následujícím příkladu:
curl --verbose ${QUARKUS_URL}/api | jq .
Výstup by měl vypadat jako v následujícím příkladu:
* Connected to 20.237.68.225 (20.237.68.225) port 80 (#0)
> GET /api HTTP/1.1
> Host: 20.237.68.225
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 200 OK
< content-length: 828
< Content-Type: application/json;charset=UTF-8
<
[
{
"id": 2,
"title": "Quarkus on Azure App Service",
"completed": false,
"order": 1,
"url": "https://learn.microsoft.com/en-us/azure/developer/java/eclipse-microprofile/deploy-microprofile-quarkus-java-app-with-maven-plugin"
},
{
"id": 3,
"title": "Quarkus on Azure Container Apps",
"completed": false,
"order": 2,
"url": "https://learn.microsoft.com/en-us/training/modules/deploy-java-quarkus-azure-container-app-postgres/"
},
{
"id": 4,
"title": "Quarkus on Azure Functions",
"completed": false,
"order": 3,
"url": "https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-first-quarkus"
},
{
"id": 5,
"title": "Deployed the Todo app to AKS",
"completed": false,
"order": 5,
"url": null
},
{
"id": 1,
"title": "Introduction to Quarkus Todo App",
"completed": true,
"order": 0,
"url": null
}
]
Ověření aktualizace databáze pomocí Azure Cloud Shellu
Otevřete Azure Cloud Shell na webu Azure Portal výběrem ikony Cloud Shellu , jak je znázorněno na následujícím snímku obrazovky:
Spusťte místně následující příkaz a vložte výsledek do Azure Cloud Shellu:
echo psql --host=${DB_SERVER_NAME}.postgres.database.azure.com --port=5432 --username=quarkus@${DB_SERVER_NAME} --dbname=todo
Po zobrazení výzvy k zadání hesla použijte hodnotu, kterou jste použili při vytváření databáze.
Pomocí následujícího dotazu získejte všechny položky úkolů:
select * from todo;
Výstup by měl vypadat podobně jako v následujícím příkladu a měl by obsahovat stejné položky v grafickém uživatelském rozhraní aplikace Todo zobrazeném dříve:
Pokud se zobrazí MORE
ve výstupu, zadáním q ukončete pager.
Zadáním \q ukončete psql
program a vraťte se do Cloud Shellu.
Vyčištění prostředků
Abyste se vyhnuli poplatkům za Azure, měli byste vyčistit nepotřebné prostředky. Pokud už cluster nepotřebujete, pomocí příkazu az group delete odeberte skupinu prostředků, službu kontejneru, registr kontejneru a všechny související prostředky.
git reset --hard
docker rmi ${TODO_QUARKUS_TAG}:1.0
docker rmi postgres
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Můžete také použít docker rmi
k odstranění imagí postgres
kontejneru a testcontainers
vygenerovaných vývojovými režimy Quarkus.