Szybki start: integracja z usługami Azure Database for PostgreSQL i Azure Cache for Redis

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy:❌ Podstawowa/Standardowa ✔️ Enterprise

W tym przewodniku Szybki start pokazano, jak aprowizować i przygotować usługę Azure Database for PostgreSQL oraz usługę Azure Cache for Redis do użycia z aplikacjami uruchomionymi w planie Azure Spring Apps Enterprise.

W tym artykule te usługi są używane do celów demonstracyjnych. Aplikację można połączyć z dowolną wybraną usługą zapasową, korzystając z instrukcji podobnych do tych w sekcji Create Service Połączenie ors (Tworzenie usług Połączenie or) w dalszej części tego artykułu.

Wymagania wstępne

Aprowizuj usługi

Aby dodać trwałość do aplikacji, utwórz usługę Azure Cache for Redis i serwer elastyczny usługi Azure Database for PostgreSQL.

W poniższych krokach opisano sposób aprowizowania wystąpienia usługi Azure Cache for Redis i serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu interfejsu wiersza polecenia platformy Azure.

  1. Utwórz zmienne do przechowywania nazw zasobów przy użyciu następujących poleceń. Pamiętaj, aby zastąpić symbole zastępcze własnymi wartościami.

    export REGION=<region>
    export RESOURCE_GROUP=<resource-group-name>
    export REDIS_CACHE_NAME=<redis-cache-name>
    export POSTGRES_SERVER_NAME=<postgres-server-name>
    export POSTGRES_USERNAME=<postgres-username>
    export POSTGRES_PASSWORD=<postgres-password>
    export AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME=<Azure-Spring-Apps-service-instance-name>
    
  2. Użyj następującego polecenia, aby utworzyć wystąpienie usługi Azure Cache for Redis:

    az redis create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${REDIS_CACHE_NAME} \
        --location ${REGION} \
        --sku Basic \
        --vm-size c0
    

    Uwaga

    Tworzenie pamięci podręcznej Redis Cache trwa około 20 minut.

  3. Użyj następującego polecenia, aby utworzyć wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL:

    az postgres flexible-server create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${POSTGRES_SERVER_NAME} \
        --location ${REGION} \
        --admin-user ${POSTGRES_USERNAME} \
        --admin-password ${POSTGRES_PASSWORD} \
        --yes
    
  4. Użyj następującego polecenia, aby zezwolić na połączenia z innych usług platformy Azure do nowo utworzonego serwera elastycznego:

    az postgres flexible-server firewall-rule create \
        --rule-name allAzureIPs \
        --name ${POSTGRES_SERVER_NAME} \
        --resource-group ${RESOURCE_GROUP} \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 0.0.0.0
    
  5. Użyj następującego polecenia, aby włączyć uuid-ossp rozszerzenie dla nowo utworzonego serwera elastycznego:

    az postgres flexible-server parameter set \
        --resource-group ${RESOURCE_GROUP} \
        --name azure.extensions \
        --value uuid-ossp \
        --server-name ${POSTGRES_SERVER_NAME}
    
  6. Użyj następującego polecenia, aby utworzyć bazę danych dla aplikacji Order Service:

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_order
    
  7. Użyj następującego polecenia, aby utworzyć bazę danych dla aplikacji usługi katalogu:

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_catalog
    

Tworzenie Połączenie orów usług

W poniższych krokach pokazano, jak powiązać aplikacje uruchomione w planie Azure Spring Apps Enterprise z innymi usługami platformy Azure przy użyciu Połączenie or usługi.

  1. Użyj następującego polecenia, aby utworzyć łącznik usługi w usłudze Azure Database for PostgreSQL dla aplikacji Order Service:

    az spring connection create postgres-flexible \
        --resource-group ${RESOURCE_GROUP} \
        --target-resource-group ${RESOURCE_GROUP} \
        --connection order_service_db \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --app order-service \
        --deployment default \
        --server ${POSTGRES_SERVER_NAME} \
        --database acmefit_order \
        --secret name=${POSTGRES_USERNAME} secret=${POSTGRES_PASSWORD} \
        --client-type dotnet
    
  2. Użyj następującego polecenia, aby utworzyć łącznik usługi w usłudze Azure Database for PostgreSQL dla aplikacji usługi katalogu:

    az spring connection create postgres-flexible \
        --resource-group ${RESOURCE_GROUP} \
        --target-resource-group ${RESOURCE_GROUP} \
        --connection catalog_service_db \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --app catalog-service \
        --deployment default \
        --server ${POSTGRES_SERVER_NAME} \
        --database acmefit_catalog \
        --secret name=${POSTGRES_USERNAME} secret=${POSTGRES_PASSWORD} \
        --client-type springboot
    
  3. Użyj następującego polecenia, aby utworzyć łącznik usługi w usłudze Azure Cache for Redis dla aplikacji Cart Service:

    az spring connection create redis \
        --resource-group ${RESOURCE_GROUP} \
        --target-resource-group ${RESOURCE_GROUP} \
        --connection cart_service_cache \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --app cart-service \
        --deployment default \
        --server ${REDIS_CACHE_NAME} \
        --database 0 \
        --client-type java
    
  4. Użyj następującego polecenia, aby ponownie załadować aplikację usługi katalogu, aby załadować nowe właściwości połączenia:

    az spring app restart \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
    
  5. Użyj następującego polecenia, aby pobrać informacje o połączeniu z bazą danych:

    export POSTGRES_CONNECTION_STR=$(az spring connection show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --deployment default \
        --connection order_service_db \
        --app order-service \
        | jq '.configurations[0].value' -r)
    

    Uwaga

    Jeśli otrzymasz wyjątek weryfikacji SSL z programem Nofsql 6.0, pamiętaj, aby zmienić tryb SSL z Require na VerifyFull. Aby uzyskać więcej informacji, zobacz Informacje o wersji serwera Npgsql 6.0.

  6. Użyj następującego polecenia, aby zaktualizować aplikację Order Service:

    az spring app update \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --env "DatabaseProvider=Postgres" "ConnectionStrings__OrderContext=${POSTGRES_CONNECTION_STR}"
    
  7. Użyj następujących poleceń, aby pobrać informacje o połączeniu usługi Redis i zaktualizować aplikację usługi Cart Service:

    export REDIS_CONN_STR=$(az spring connection show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --deployment default \
        --app cart-service \
        --connection cart_service_cache | jq -r '.configurations[0].value')
    
    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} | jq -r '.properties.url')
    
    az spring app update \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --env "CART_PORT=8080" "REDIS_CONNECTIONSTRING=${REDIS_CONN_STR}" "AUTH_URL=https://${GATEWAY_URL}"
    

Uzyskiwanie dostępu do aplikacji

Pobierz adres URL usługi Spring Cloud Gateway i zapoznaj się ze zaktualizowaną aplikacją. Możesz użyć danych wyjściowych z następującego polecenia, aby zapoznać się z aplikacją:

export GATEWAY_URL=$(az spring gateway show \
    --resource-group ${RESOURCE_GROUP} \
    --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} | jq -r '.properties.url')

echo "https://${GATEWAY_URL}"

Czyszczenie zasobów

Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start i samouczkami, możesz pozostawić te zasoby na miejscu. Gdy grupa zasobów nie będzie już potrzebna, usuń grupę zasobów, która usuwa zasoby w grupie zasobów. Aby usunąć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure, użyj następujących poleceń:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Następne kroki

Przejdź do dowolnego z następujących opcjonalnych przewodników Szybki start: