Aracılığıyla paylaş


Azure Container Apps'te Quarkus ile Java uygulaması dağıtma

Bu makalede, basit bir CRUD uygulamasıyla Red Hat Quarkus'u Microsoft Azure Container Apps'te hızla dağıtma adımları gösterilmektedir. Uygulama, JavaScript ön ucu ve REST uç noktası olan bir "yapılacaklar listesidir". PostgreSQL için Azure Veritabanı Esnek Sunucu, uygulama için kalıcılık katmanı sağlar. Makalede uygulamanızı yerel olarak test etme ve Container Apps'e dağıtma adımları gösterilmektedir.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Ubuntu, macOS veya Linux için Windows Alt Sistemi gibi Unix benzeri işletim sistemi yüklü yerel bir makine hazırlayın.
  • Java SE uygulama sürümü 17 veya üzerini yükleyin; örneğin, OpenJDK'nin Microsoft derlemesi.
  • Maven, sürüm 3.9.8 veya üzerini yükleyin.
  • İşletim sisteminiz için Docker veya Podman'ı yükleyin.
  • jq'yi yükleyin.
  • cURL'yi yükleyin.
  • Quarkus CLI, sürüm 3.12.1 veya üzerini yükleyin.
  • Unix benzeri ortamlar için Azure CLI. Bu makale yalnızca Azure CLI'nın Bash değişkenini gerektirir.
    • Azure CLI'yi yükleyin ve kodu kullanmadan DefaultAzureCredential önce Azure'da oturum açmak için az login komutuyla etkileşimli olarak oturum açın.
      az login
      
    • Bu makale, Azure CLI'nın en az 2.61.0 sürümünü gerektirir.

Uygulama projesini oluşturma

Bu makalenin örnek Java projesini kopyalamak için aşağıdaki komutu kullanın. Örnek GitHub'dadır.

git clone https://github.com/Azure-Samples/quarkus-azure
cd quarkus-azure
git checkout 2024-07-08
cd aca-quarkus

Ayrılmış HEAD durumunda olduğunu belirten bir ileti görürseniz, bu iletiyi yoksaymak güvenlidir. Bu makale herhangi bir işleme gerektirmediğinden, ayrılmış HEAD durumu uygundur.

Quarkus uygulamanızı yerel olarak test edin

Bu bölümdeki adımlarda uygulamayı yerel olarak nasıl çalıştırabileceğiniz gösterilmektedir.

Quarkus, geliştirme ve test modunda yapılandırılmamış hizmetlerin otomatik olarak sağlanmasını destekler. Quarkus bu özelliği geliştirme hizmetleri olarak ifade eder. Veritabanı hizmetine bağlanma gibi bir Quarkus özelliği eklediğinizi varsayalım. Uygulamayı test etmek istiyorsunuz ancak gerçek bir veritabanına bağlantıyı henüz tam olarak yapılandırmadınız. Quarkus, ilgili hizmetin saplama sürümünü otomatik olarak başlatır ve uygulamanızı buna bağlar. Daha fazla bilgi için Quarkus belgelerindeki Dev Services'e Genel Bakış bölümüne bakın.

Kapsayıcı ortamınızın Docker veya Podman'ın çalıştığından emin olun ve Quarkus geliştirme moduna girmek için aşağıdaki komutu kullanın:

quarkus dev

quarkus devyerine, kullanarak mvn quarkus:devMaven ile aynı şeyi gerçekleştirebilirsiniz.

Quarkus geliştirme modu kullanımınıza yönelik telemetri göndermek isteyip istemediğiniz sorulabilir. Öyleyse, istediğiniz gibi yanıtlayın.

Quarkus geliştirme modu, arka plan derlemesi ile canlı yeniden yüklemeyi etkinleştirir. Uygulama kaynak kodunuzun herhangi bir yönünü değiştirir ve tarayıcınızı yenilerseniz değişiklikleri görebilirsiniz. Derleme veya dağıtımla ilgili herhangi bir sorun varsa, bir hata sayfası size bildirir. Quarkus geliştirme modu, 5005 numaralı bağlantı noktasında hata ayıklayıcıyı dinler. Hata ayıklayıcının çalışmadan önce eklenmesini beklemek istiyorsanız komut satırını geçirin -Dsuspend . Hata ayıklayıcısını hiç istemiyorsanız kullanabilirsiniz -Ddebug=false.

Çıktı aşağıdaki örnekteki gibi görünmelidir:

__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
INFO  [io.quarkus] (Quarkus Main Thread) quarkus-todo-demo-app-aca 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.2.0.Final) started in 14.826s. 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-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>

Quarkus geliştirme modunun çalıştığı terminalde w tuşuna basın. w tuşu, uygulamayı göstermek Todo için varsayılan web tarayıcınızı açar. Uygulama GUI'sine http://localhost:8080 doğrudan da erişebilirsiniz.

Todo örnek uygulamasının ekran görüntüsü.

Yapılacaklar listesinden birkaç yapılacaklar öğesi seçmeyi deneyin. Kullanıcı arabirimi, üstü çizili metin stiliyle seçimi gösterir. Aşağıdaki ekran görüntüsünde gösterildiği gibi Todo uygulamalarını doğrula yazıp ENTER tuşuna basarak da yapılacaklar listesine yeni bir yapılacaklar öğesi ekleyebilirsiniz:

Yeni öğelerin eklendiği Todo örnek uygulamasının ekran görüntüsü.

Yerel PostgreSQL veritabanında depolayan tüm yapılacaklar öğelerini almak için RESTful API'sine (/api) erişin:

curl --verbose http://localhost:8080/api | jq .

Çıktı aşağıdaki örnekteki gibi görünmelidir:

* 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
  }
]

Quarkus geliştirme modundan çıkmak için q tuşuna basın.

Quarkus uygulamasını çalıştırmak için Azure kaynaklarını oluşturma

Bu bölümdeki adımlarda Quarkus örnek uygulamasını çalıştırmak için aşağıdaki Azure kaynaklarının nasıl oluşturulacağı gösterilmektedir:

  • esnek sunucu PostgreSQL için Azure Veritabanı
  • Azure Container Registry
  • Azure Container Apps

Bu kaynaklardan bazılarının Azure aboneliği kapsamında benzersiz adlara sahip olması gerekir. Bu benzersizliği sağlamak için baş harfleri, sıra, tarih, sonek desenini kullanabilirsiniz. Bu düzeni uygulamak için, kaynaklarınızın baş harflerini, bir dizi numarasını, bugünün tarihini ve bir tür kaynağa özgü soneki (örneğin, rg "kaynak grubu" için) listeleyerek kaynaklarınızı adlandırın. Aşağıdaki ortam değişkenleri bu düzeni kullanır. ve içindeki UNIQUE_VALUELOCATION DB_PASSWORD yer tutucu değerlerini kendi değerlerinizle değiştirin ve komutları terminalinizde çalıştırın.

export UNIQUE_VALUE=<your unique value, such as ejb091223>
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 DB_NAME=demodb
export DB_ADMIN=demouser
export DB_PASSWORD='<your desired password for the database server - for example, Secret123456>'
export ACA_ENV=${UNIQUE_VALUE}env
export ACA_NAME=${UNIQUE_VALUE}aca

PostgreSQL için Azure Veritabanı Esnek Sunucu oluşturma

PostgreSQL için Azure Veritabanı Esnek Sunucu, veritabanı yönetimi işlevleri ve yapılandırma ayarları üzerinde daha ayrıntılı denetim ve esneklik sağlamak için tasarlanmış tam olarak yönetilen bir veritabanı hizmetidir. Bu bölümde, Azure CLI kullanarak PostgreSQL için Azure Veritabanı Esnek Sunucu örneğinin nasıl oluşturulacağı gösterilmektedir. Daha fazla bilgi için bkz. Hızlı Başlangıç: Azure CLI kullanarak PostgreSQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma.

İlk olarak, aşağıdaki komutu kullanarak veritabanı sunucusunu ve diğer kaynakları içerecek bir kaynak grubu oluşturun:

az group create \
    --name $RESOURCE_GROUP_NAME \
    --location $LOCATION

Ardından, aşağıdaki komutu kullanarak PostgreSQL için Azure Veritabanı esnek bir sunucu örneği oluşturun:

az postgres flexible-server create \
    --name $DB_SERVER_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --admin-user $DB_ADMIN \
    --admin-password $DB_PASSWORD \
    --database-name $DB_NAME \
    --public-access 0.0.0.0 \
    --yes

Sunucu, veritabanı, yönetici kullanıcı ve güvenlik duvarı kurallarının oluşturulması birkaç dakika sürer. Komut başarılı olursa, çıkış aşağıdaki örneğe benzer şekilde görünür:

{
  "connectionString": "postgresql://<DB_ADMIN>:<DB_PASSWORD>@<DB_SERVER_NAME>.postgres.database.azure.com/<DB_NAME>?sslmode=require",
  "databaseName": "<DB_NAME>",
  "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2024-7-5_14-39-45",
  "host": "<DB_SERVER_NAME>.postgres.database.azure.com",
  "id": "/subscriptions/REDACTED/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<DB_SERVER_NAME>",
  "location": "East US",
  "password": "<DB_PASSWORD>",
  "resourceGroup": "<RESOURCE_GROUP_NAME>",
  "skuname": "Standard_D2s_v3",
  "username": "<DB_ADMIN>",
  "version": "13"
}

Microsoft Azure Container Registry örneği oluşturma

Quarkus bulutta yerel bir teknoloji olduğundan, Container Apps'te çalışan kapsayıcılar oluşturmak için yerleşik desteğe sahiptir. Container Apps, tamamen çalıştırılacak kapsayıcı görüntülerini bulduğu bir kapsayıcı kayıt defterine sahip olmasına bağlıdır. Container Apps, Azure Container Registry için yerleşik desteğe sahiptir.

Container Registry örneğini oluşturmak için az acr create komutunu kullanın. Aşağıdaki örnek, ortam değişkeninizin ${REGISTRY_NAME}değeriyle adlı n Container Registry örneği oluşturur:

az acr create \
    --resource-group $RESOURCE_GROUP_NAME \
    --location ${LOCATION} \
    --name $REGISTRY_NAME \
    --sku Basic \
    --admin-enabled

Kısa bir süre sonra aşağıdaki satırları içeren JSON çıktısını görmeniz gerekir:

  "provisioningState": "Succeeded",
  "publicNetworkAccess": "Enabled",
  "resourceGroup": "<YOUR_RESOURCE_GROUP>",

Docker'ınızı Container Registry örneğine bağlama

Container Registry örneğinde oturum açın. Oturum açmak, görüntü göndermenizi sağlar. Bağlantıyı doğrulamak için aşağıdaki komutları kullanın:

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

Docker yerine Podman kullanıyorsanız, komutta gerekli değişiklikleri yapın.

Container Registry örneğinde başarıyla oturum açtıysanız komut çıktısının sonunda görmeniz Login Succeeded gerekir.

Ortam oluşturun

Azure Container Apps'teki bir ortam, bir grup kapsayıcı uygulaması çevresinde güvenli bir sınır oluşturur. Aynı ortama dağıtılan Container Apps aynı sanal ağa dağıtılır ve günlükleri aynı Log Analytics çalışma alanına yazar. Aşağıdaki örnekte gösterildiği gibi bir ortam oluşturmak için az containerapp env create komutunu kullanın:

az containerapp env create \
    --resource-group $RESOURCE_GROUP_NAME \
    --location $LOCATION \
    --name $ACA_ENV

Uzantı yüklemeniz istenirse Y yanıtlayın.

Bulut yerel yapılandırmasını özelleştirme

Bulutta yerel bir teknoloji olan Quarkus, kapsayıcı görüntülerini otomatik olarak oluşturma olanağı sunar. Daha fazla bilgi için bkz . Kapsayıcı Görüntüleri. Geliştiriciler daha sonra uygulama görüntüsünü hedef kapsayıcılı platforma (örneğin Azure Container Apps) dağıtabilir.

Kapsayıcı görüntüsünü oluşturmak için aşağıdaki komutu kullanarak uzantıyı container-image-jib yerel terminalinize ekleyin:

quarkus ext add container-image-jib

Quarkus, uzantının arasında yer aldığından emin olmak için POM'yi <dependencies>değiştirir. adlı JBangbir şey yüklemeniz istenirse evet yanıtlayın ve yüklenmesine izin verin.

Çıktı aşağıdaki örnekteki gibi görünmelidir:

[SUCCESS] ✅  Extension io.quarkus:quarkus-container-image-jib has been installed

Uzantıların eklendiğini doğrulamak için çalıştırabilir git diff ve çıkışı inceleyebilirsiniz.

Quarkus, bulutta yerel bir teknoloji olarak yapılandırma profillerini destekler. Quarkus aşağıdaki üç yerleşik profile sahiptir:

  • dev - Geliştirme modundayken etkinleştirilir.
  • test - Testler çalıştırılırken etkinleştirilir.
  • prod - Geliştirme veya test modunda çalışmadığında varsayılan profil.

Quarkus gerektiğinde herhangi bir sayıda adlandırılmış profili destekler.

Bu bölümdeki kalan adımlar sizi src/main/resources/application.properties dosyasındaki değerleri açıklamayı kaldırmaya ve özelleştirmeye yönlendirir. baştaki öğesini kaldırarak ile # %prod. başlayan tüm satırların #sıkıştırılmadığından emin olun.

Ön ek, %prod. profilde çalıştırılırken bu özelliklerin prod etkin olduğunu gösterir. Yapılandırma profilleri hakkında daha fazla bilgi için Quarkus belgelerine bakın.

Veritabanı yapılandırmasını inceleme

Aşağıdaki veritabanı yapılandırma değişkenlerini ekleyin. Veritabanı bağlantısıyla ilgili , ve %prod.quarkus.datasource.password özellikleri%prod.quarkus.datasource.jdbc.url%prod.quarkus.datasource.username, güvenlik nedeniyle Azure Container Apps ortamı tarafından çalışma zamanında sağlandığından kasıtlı olarak boş bırakılır.

# Database configurations
%prod.quarkus.datasource.db-kind=postgresql
%prod.quarkus.datasource.jdbc.driver=org.postgresql.Driver
%prod.quarkus.datasource.jdbc.url=
%prod.quarkus.datasource.username=
%prod.quarkus.datasource.password=
%prod.quarkus.hibernate-orm.database.generation=create
%prod.quarkus.hibernate-orm.sql-load-script=no-file

Genellikle veritabanında kalıcı olan verilerin bırakılıp üretim ortamındaki örnek verilerle yeniden doldurulmasını beklemezsiniz. Bu nedenle, uygulamasının şemayı yalnızca ilk başlangıçta mevcut olmadığında oluşturması için quarkus.hibernate-orm.database.generation şemasının olarak create belirtildiğini görebilirsiniz. Ayrıca, veritabanı olarak no-filebelirtildiğinden hibernate-orm.sql-load-script herhangi bir örnek veriyle önceden doldurulmuyor. Bu ayar, uygulamayı daha önce geliştirme modunda yerel olarak çalıştırdığınızdan farklıdır. ve için quarkus.hibernate-orm.database.generation hibernate-orm.sql-load-script geliştirme modundaki varsayılan değerler sırasıyla ve import.sql şeklindedirdrop-and-create; bu da uygulamanın veritabanı şemasını her zaman bırakması ve yeniden oluşturması ve import.sql tanımlanan verileri yüklemesi anlamına gelir. import.sql dosyası Quarkus'tan bir kolaylık tesisidir. Quarkus jar dosyasında src/main/resources/import.sql dosyası varsa ve özelliğinin hibernate-orm.sql-load-script değeri iseimport.sql, bu dosyadaki SQL DML deyimleri uygulamanın başlangıç zamanında yürütülür.

Kapsayıcı görüntüsü yapılandırmasını özelleştirme

Bulutta yerel bir teknoloji olarak Quarkus, Docker ve Podman ile uyumlu OCI kapsayıcı görüntüleri oluşturmayı destekler. Aşağıdaki kapsayıcı görüntüsü değişkenlerini ekleyin. ve değerlerini <LOGIN_SERVER_VALUE> sırasıyla ve ${USER_NAME} ortam değişkenlerinin gerçek değerlerinin ${LOGIN_SERVER} değerleriyle <USER_NAME_VALUE> değiştirin.

# 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-aca
%prod.quarkus.container-image.tag=1.0

Kapsayıcı görüntüsünü derleme ve Container Registry'ye gönderme

Şimdi uygulamanın kendisini oluşturmak için aşağıdaki komutu kullanın. Bu komut, kapsayıcı görüntüsünü oluşturmak için Jib uzantısını kullanır.

quarkus build --no-tests

Çıktı ile BUILD SUCCESSbitmelidir.

veya podman komut satırını (CLI) kullanarak kapsayıcı görüntüsünün docker de oluşturulup oluşturulmadığını doğrulayabilirsiniz. Çıktı aşağıdaki örneğe benzer:

docker images | grep todo-quarkus-aca
<LOGIN_SERVER_VALUE>/<USER_NAME_VALUE>/todo-quarkus-aca   1.0       0804dfd834fd   2 minutes ago   407MB

Aşağıdaki komutu kullanarak kapsayıcı görüntülerini Container Registry'ye gönderin:

export TODO_QUARKUS_TAG=$(docker images | grep todo-quarkus-aca | head -n1 | cut -d " " -f1):1.0
echo ${TODO_QUARKUS_TAG}
docker push ${TODO_QUARKUS_TAG}

Çıkış aşağıdaki örneğe benzer görünmelidir:

The push refers to repository [<LOGIN_SERVER_VALUE>/<USER_NAME_VALUE>/todo-quarkus-aca]
188a550fce3d: Pushed
4e3afea591e2: Pushed
1db0eba807a6: Pushed
c72d9ccda0b2: Pushed
d7819b8a2d18: Pushed
d0e5cba6b262: Pushed
e0bac91f0f10: Pushed
1.0: digest: sha256:f9ccb476e2388efa0dfdf817625a94f2247674148a69b7e4846793e63c8be994 size: 1789

Uygulama görüntüsünü Container Registry'ye ilettiğinize göre, görüntüyü Container Registry'den çektikten sonra uygulamayı çalıştırmak üzere bir Container Apps örneği oluşturmak için aşağıdaki komutu kullanın:

export DATASOURCE_JDBC_URL=jdbc:postgresql://${DB_SERVER_NAME}.postgres.database.azure.com:5432/${DB_NAME}?sslmode=require
az containerapp create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $ACA_NAME \
    --image $TODO_QUARKUS_TAG \
    --environment $ACA_ENV \
    --registry-server $LOGIN_SERVER \
    --registry-username $USER_NAME \
    --registry-password $PASSWORD \
    --target-port 8080 \
    --secrets \
        jdbcurl=${DATASOURCE_JDBC_URL} \
        dbusername=${DB_ADMIN} \
        dbpassword=${DB_PASSWORD} \
    --env-vars \
        QUARKUS_DATASOURCE_JDBC_URL=secretref:jdbcurl \
        QUARKUS_DATASOURCE_USERNAME=secretref:dbusername \
        QUARKUS_DATASOURCE_PASSWORD=secretref:dbpassword \
    --ingress 'external'

--secrets seçeneği, veritabanı bağlantısıyla ilgili ortam değişkenleri ve QUARKUS_DATASOURCE_PASSWORDtarafından başvuruda bulunan gizli diziler QUARKUS_DATASOURCE_JDBC_URLQUARKUS_DATASOURCE_USERNAME oluşturmak için kullanılır. Bu ortam değişkenlerinin değerleri ve %prod.quarkus.datasource.username %prod.quarkus.datasource.passwordözelliklerine %prod.quarkus.datasource.passwordgeçirilir. Quarkus, dosyada değer yoksa karşılık gelen ortam değişkenlerinden değerleri aramasını application.properties bilir.

Başarılı çıkış, özelliğini "type": "Microsoft.App/containerApps"içeren bir JSON nesnesidir.

Aşağıdaki komutu kullanarak Todo uygulamasına erişmek için tam url alın:

export QUARKUS_URL=https://$(az containerapp show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $ACA_NAME \
    --query properties.configuration.ingress.fqdn -o tsv)
echo $QUARKUS_URL

değerine ${QUARKUS_URL}yeni bir web tarayıcısı açın. Ardından, metniyle Deployed the Todo app to Container Appsyeni bir yapılacaklar öğesi ekleyin. Tamamlandı olarak işaretlemek için bu öğeyi seçin.

Container Apps'te çalışan Todo örnek uygulamasının ekran görüntüsü.

Aşağıdaki örnekte gösterildiği gibi, PostgreSQL için Azure Veritabanı depolanan tüm yapılacaklar öğelerini almak için RESTful API'sine (/api) erişin:

curl --verbose -k ${QUARKUS_URL}/api | jq .

Çıktı aşağıdaki örnekteki gibi görünmelidir:

* Connected to <aca-name>.<random-id>.eastus.azurecontainerapps.io (20.231.235.79) port 443 (#0)
> GET /api HTTP/2
> Host: <aca-name>.<random-id>.eastus.azurecontainerapps.io
> user-agent: curl/7.88.1
> accept: */*
>
< HTTP/2 200
< content-length: 88
< content-type: application/json;charset=UTF-8
<
[
  {
    "id": 1,
    "title": "Deployed the Todo app to Container Apps",
    "completed": true,
    "order": 1,
    "url": null
  }
]

Azure Cloud Shell kullanarak veritabanının güncelleştirildiğini doğrulayın

Arama kutusunun yanındaki Cloud Shell simgesini ( ) seçerek Azure portalında Azure Cloud Shell'i açın.

Aşağıdaki komutu yerel olarak çalıştırın ve sonucu Azure Cloud Shell'e yapıştırın:

echo psql --host=${DB_SERVER_NAME}.postgres.database.azure.com --port=5432 --username=${DB_ADMIN} --dbname=${DB_NAME}

Parola istendiğinde, veritabanını oluştururken kullandığınız değeri kullanın.

Tüm yapılacaklar öğelerini almak için aşağıdaki sorguyu kullanın:

select * from todo;

Çıktı aşağıdaki örneğe benzer görünmelidir ve daha önce gösterilen Todo uygulama GUI'sinde aynı öğeleri içermelidir:

ASCII tablosu olarak sorgu çıktısının ekran görüntüsü.

Programdan psql çıkmak için \q girin ve Cloud Shell'e dönün.

Kaynakları temizleme

Azure ücretlerinden kaçınmak için gereksiz kaynakları temizlemeniz gerekir. Küme artık gerekli olmadığında az group delete komutunu kullanarak kaynak grubunu, kapsayıcı hizmetini, kapsayıcı kayıt defterini ve tüm ilgili kaynakları kaldırın.

git reset --hard
docker rmi ${TODO_QUARKUS_TAG}
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait

Quarkus geliştirme modu tarafından oluşturulan ve testcontainers kapsayıcı görüntülerini silmek postgres için de kullanabilirsinizdocker rmi.

Sonraki adımlar