Поделиться через


Краткое руководство. Интеграция с База данных Azure для PostgreSQL и Кэш Azure для Redis

Примечание.

Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

Эта статья относится к: ❎ Basic/Standard ✅ Enterprise

В этом кратком руководстве показано, как подготовить и подготовить База данных Azure для PostgreSQL и Кэш Azure для Redis для использования с приложениями, работающими в плане Azure Spring Apps Enterprise.

В этой статье используются эти службы для демонстрационных целей. Вы можете подключить приложение к любой службе резервной копии, используя инструкции, аналогичные тем, которые приведены в разделе "Создание соединителей служб" далее в этой статье.

Необходимые компоненты

Подготовка служб

Чтобы добавить сохраняемость в приложение, создайте Кэш Azure для Redis и гибкий сервер База данных Azure для PostgreSQL.

Ниже описано, как подготовить экземпляр Кэш Azure для Redis и гибкий сервер База данных Azure для PostgreSQL с помощью Azure CLI.

Примечание.

Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.

  1. Создайте переменные для хранения имен ресурсов с помощью следующих команд. Обязательно замените заполнители своими значениями.

    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. Чтобы создать экземпляр Кэш Azure для Redis, используйте следующую команду:

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

    Примечание.

    Создание кэша Redis занимает около 20 минут.

  3. Используйте следующую команду, чтобы создать экземпляр гибкого сервера База данных Azure для 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. Используйте следующую команду, чтобы разрешить подключения из других служб Azure к только что созданному гибкому серверу:

    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. Используйте следующую команду, чтобы включить uuid-ossp расширение для только что созданного гибкого сервера:

    az postgres flexible-server parameter set \
        --resource-group ${RESOURCE_GROUP} \
        --name azure.extensions \
        --value uuid-ossp \
        --server-name ${POSTGRES_SERVER_NAME}
    
  6. Используйте следующую команду, чтобы создать базу данных для приложения службы заказов:

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_order
    
  7. Используйте следующую команду, чтобы создать базу данных для приложения службы каталогов:

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

Создание соединителей служб

Ниже показано, как привязать приложения, работающие в плане Azure Spring Apps Enterprise, к другим службам Azure с помощью соединителей служб.

  1. Используйте следующую команду, чтобы создать соединитель службы для База данных Azure для PostgreSQL для приложения службы заказов:

    Примечание.

    Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.

    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. Используйте следующую команду, чтобы создать соединитель службы для База данных Azure для PostgreSQL для приложения службы каталогов:

    Примечание.

    Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.

    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. Используйте следующую команду, чтобы создать соединитель службы для Кэш Azure для Redis для приложения службы корзины:

    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. Используйте следующую команду, чтобы перезагрузить приложение службы каталогов, чтобы загрузить новые свойства подключения:

    az spring app restart \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
    
  5. Чтобы получить сведения о подключении к базе данных, используйте следующую команду:

    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)
    

    Примечание.

    Если вы получаете исключение проверки SSL с Nofsql 6.0, обязательно измените режим SSL на Require VerifyFull. Дополнительные сведения см. в заметках о выпуске Npgsql 6.0.

  6. Чтобы обновить приложение службы заказов, используйте следующую команду:

    Примечание.

    Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.

    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. Используйте следующие команды, чтобы получить сведения о подключении Redis и обновить приложение службы корзины:

    Примечание.

    Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, например для баз данных, кэшей, сообщений или служб ИИ, требует очень высокой степени доверия к приложению и несет риски, не присутствующих в других потоках. Используйте этот поток, только если более безопасные параметры, такие как управляемые удостоверения для бессерверных или бессерверных подключений, не являются жизнеспособными. Для локальных операций компьютера предпочитайте удостоверения пользователей для бессерверных или бессерверных подключений.

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

Доступ к приложению

Получите URL-адрес для Spring Cloud Gateway и изучите обновленное приложение. Выходные данные из следующей команды можно использовать для изучения приложения:

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

Очистка ресурсов

Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Удалите ненужную группу ресурсов. Ресурсы в ней будут также удалены. Чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:

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

Следующие шаги

Перейдите к любому из следующих необязательных кратких руководств: