Краткое руководство. Интеграция с База данных Azure для PostgreSQL и Кэш Azure для Redis
Примечание.
Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.
Эта статья относится к:❌ Basic/Standard ✔️ Enterprise
В этом кратком руководстве показано, как подготовить и подготовить База данных Azure для PostgreSQL и Кэш Azure для Redis для использования с приложениями, работающими в плане Azure Spring Apps Enterprise.
В этой статье используются эти службы для демонстрационных целей. Вы можете подключить приложение к любой службе резервного копирования, используя инструкции, аналогичные инструкциям в разделе "Создание службы Подключение ors" далее в этой статье.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Изучите и выполните раздел "Требования" плана Enterprise в Azure Marketplace.
- Azure CLI версии 2.45.0 или более поздней.
- Git.
- jq
- Расширение плана Azure Spring Apps Enterprise. Используйте следующую команду, чтобы удалить предыдущие версии и установить последнее расширение плана Enterprise. Если вы ранее установили
spring-cloud
расширение, удалите его, чтобы избежать несоответствий конфигурации и версий.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Выполните действия, описанные в статье "Сборка и развертывание приложений в Azure Spring Apps" с помощью плана Enterprise.
Подготовка служб
Чтобы добавить сохраняемость в приложение, создайте Кэш Azure для Redis и гибкий сервер База данных Azure для PostgreSQL.
Ниже описано, как подготовить экземпляр Кэш Azure для Redis и гибкий сервер База данных Azure для PostgreSQL с помощью Azure CLI.
Создайте переменные для хранения имен ресурсов с помощью следующих команд. Обязательно замените заполнители своими значениями.
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>
Чтобы создать экземпляр Кэш Azure для Redis, используйте следующую команду:
az redis create \ --resource-group ${RESOURCE_GROUP} \ --name ${REDIS_CACHE_NAME} \ --location ${REGION} \ --sku Basic \ --vm-size c0
Примечание.
Создание кэша Redis занимает около 20 минут.
Используйте следующую команду, чтобы создать экземпляр гибкого сервера База данных 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
Используйте следующую команду, чтобы разрешить подключения из других служб 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
Используйте следующую команду, чтобы включить
uuid-ossp
расширение для только что созданного гибкого сервера:az postgres flexible-server parameter set \ --resource-group ${RESOURCE_GROUP} \ --name azure.extensions \ --value uuid-ossp \ --server-name ${POSTGRES_SERVER_NAME}
Используйте следующую команду, чтобы создать базу данных для приложения службы заказов:
az postgres flexible-server db create \ --resource-group ${RESOURCE_GROUP} \ --server-name ${POSTGRES_SERVER_NAME} \ --database-name acmefit_order
Используйте следующую команду, чтобы создать базу данных для приложения службы каталогов:
az postgres flexible-server db create \ --resource-group ${RESOURCE_GROUP} \ --server-name ${POSTGRES_SERVER_NAME} \ --database-name acmefit_catalog
Создание Подключение служб
В следующих шагах показано, как привязать приложения, работающие в плане Azure Spring Apps Enterprise, к другим службам Azure с помощью Подключение оров служб.
Используйте следующую команду, чтобы создать соединитель службы для База данных 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
Используйте следующую команду, чтобы создать соединитель службы для База данных 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
Используйте следующую команду, чтобы создать соединитель службы для Кэш 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
Используйте следующую команду, чтобы перезагрузить приложение службы каталогов, чтобы загрузить новые свойства подключения:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --name catalog-service \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
Чтобы получить сведения о подключении к базе данных, используйте следующую команду:
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.Чтобы обновить приложение службы заказов, используйте следующую команду:
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}"
Используйте следующие команды, чтобы получить сведения о подключении 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 ..."
Следующие шаги
Перейдите к любому из следующих необязательных кратких руководств: