Ćwiczenie — konfigurowanie usługi Azure Container Apps

Ukończone

W tej lekcji utworzysz grupę zasobów platformy Azure zawierającą zasoby dla aplikacji. Następnie skonfigurujesz bazę danych PostgreSQL przy użyciu interfejsu wiersza polecenia platformy Azure. Na koniec skonfigurujesz aplikację Quarkus w celu uzyskania dostępu do zdalnej bazy danych PostgreSQL. Użyj wybranego terminalu, aby uruchomić polecenia.

Przygotowywanie środowiska roboczego

Należy skonfigurować niektóre zmienne środowiskowe. Oto kilka uwag dotyczących zmiennych, które utworzysz:

Zmienna opis
AZ_PROJECT Nazwa projektu. Aby zachować tę wartość unikatową, zalecamy użycie polecenia AZ_PROJECT_<your initials>.
AZ_RESOURCE_GROUP Nazwa grupy zasobów, która zawiera zasoby.
AZ_LOCATION Region świadczenia usługi Azure. Zalecamy użycie regionu, który znajduje się blisko miejsca zamieszkania. Aby wyświetlić listę dostępnych regionów, wprowadź az account list-locations w wierszu polecenia.
AZ_CONTAINERAPP Nazwa wystąpienia usługi Azure Container Apps, które przechowuje kontenery.
AZ_CONTAINERAPP_ENV Nazwa środowiska usługi Azure Container Apps.
AZ_POSTGRES_SERVER_NAME Nazwa serwera PostgreSQL. Znaki nieliczbowe nie są dozwolone: -, _, !, $, #, %. Nazwa powinna być unikatowa na platformie Azure. Pamiętaj, aby użyć unikatowego identyfikatora.
AZ_POSTGRES_DB_NAME Nazwa bazy danych PostgreSQL. Domyślną nazwą bazy danych PostgreSQL jest postgres.
AZ_POSTGRES_USERNAME Domyślna nazwa użytkownika administratora serwera bazy danych PostgreSQL.
AZ_POSTGRES_PASSWORD Domyślne hasło serwera bazy danych PostgreSQL. Użyj bezpiecznego hasła.

Uwaga

Zasoby platformy Azure można nazwać w dowolny sposób, ale zalecamy przejrzenie przykładów skrótów dla zasobów platformy Azure. Ten artykuł zawiera przykładowe skróty dla wielu zasobów platformy Azure (na przykład rg dla grup zasobów i ca aplikacji kontenerów).

Użyj następujących poleceń, aby skonfigurować zmienne. Pamiętaj, aby zmodyfikować wartości zgodnie z opisem w poprzedniej tabeli.

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>}"

Te zmienne środowiskowe są używane w pozostałej części tego modułu.

Następnie utwórz grupę zasobów:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION

Tworzenie wystąpienia usługi Azure Database for PostgreSQL

Teraz utworzysz zarządzany serwer PostgreSQL. Uruchom następujące polecenie, aby utworzyć małe wystąpienie usługi 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"

To polecenie tworzy mały serwer PostgreSQL, który używa skonfigurowanych wcześniej zmiennych.

Konfigurowanie aplikacji Quarkus w celu uzyskania dostępu do bazy danych PostgreSQL

Teraz połączysz aplikację Quarkus z bazą danych PostgreSQL. W tym celu należy najpierw uzyskać parametry połączenia dla bazy danych:

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"

Zwróć uwagę na zwrócone parametry połączenia.

Konfigurowanie aplikacji Quarkus w celu nawiązania połączenia z bazą danych PostgreSQL

application.properties Zaktualizuj plik w src/main/resources folderze projektu, aby skonfigurować parametry połączenia do bazy danych PostgreSQL. W tym celu ustaw quarkus.datasource.jdbc.url właściwość na wcześniejszą wartość wyjściową $POSTGRES_CONNECTION_STRING_SSL . Część &ssl=true&sslmode=require parametry połączenia wymusza użycie protokołu SSL przez sterownik— wymaganie dla usługi Azure Database for PostgreSQL.

quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>

Uruchamianie aplikacji Quarkus lokalnie w celu przetestowania połączenia zdalnej bazy danych

Użyj tego polecenia, aby uruchomić aplikację lokalnie:

./mvnw clean quarkus:dev    # On Mac or Linux
mvnw.cmd clean quarkus:dev  # On Windows

Po uruchomieniu aplikacji Quarkus utwórz kilka zadań do wykonania przy użyciu następujących poleceń cURL w osobnym oknie terminalu:

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

Następnie sprawdź, czy zadania do wykonania znajdują się w bazie danych, korzystając z punktu końcowego GET zdefiniowanego w aplikacji do wykonania:

curl http://127.0.0.1:8080/api/todos

Powinny zostać wyświetlone następujące dane wyjściowe:

[
   {
      "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
   }
]

Jeśli zobaczysz te dane wyjściowe, pomyślnie uruchomisz aplikację Quarkus i połączysz się z zdalną bazą danych PostgreSQL.