Inicio rápido: Integración en Azure Database for PostgreSQL y Azure Cache for Redis

Nota

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a:❌ Básico o Estándar ✔️ Enterprise

En este artículo de inicio rápido se muestra cómo aprovisionar y preparar una instancia de Azure Database for PostgreSQL y una de Azure Cache for Redis que se usarán con aplicaciones que se ejecutan en el plan Enterprise de Azure Spring Apps.

En este artículo se usan estos servicios con fines de demostración. Puede conectar la aplicación a cualquier servicio de respaldo que prefiera mediante instrucciones similares a las de la sección Creación de conectores de servicio más adelante en este artículo.

Requisitos previos

Servicios de aprovisionamiento

Para agregar persistencia a la aplicación, cree una instancia de Azure Cache for Redis y un servidor flexible de Azure Database for PostgreSQL.

En los pasos siguientes se describe cómo aprovisionar una instancia de Azure Cache for Redis y un servidor flexible de Azure Database for PostgreSQL mediante la CLI de Azure.

  1. Cree variables para contener los nombres del recurso mediante los siguientes comandos. Asegúrese de reemplazar los marcadores de posición por sus propios valores.

    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. Use el siguiente comando para crear una instancia de Azure Cache for Redis:

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

    Nota

    La creación de Redis Cache tarda 20 minutos aproximadamente.

  3. Use el siguiente comando para crear una instancia de servidor flexible de 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. Use el siguiente comando para permitir conexiones de otros servicios de Azure al servidor flexible recién creado:

    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. Use el siguiente comando para habilitar la extensión uuid-ossp para el servidor flexible recién creado:

    az postgres flexible-server parameter set \
        --resource-group ${RESOURCE_GROUP} \
        --name azure.extensions \
        --value uuid-ossp \
        --server-name ${POSTGRES_SERVER_NAME}
    
  6. Use el siguiente comando para crear una base de datos para la aplicación Order Service:

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_order
    
  7. Use el siguiente comando para crear una base de datos para la aplicación Catalog Service:

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

Creación de conectores de servicio

En los siguientes pasos se muestra cómo enlazar aplicaciones que se ejecutan en el plan Enterprise de Azure Spring Apps a otros servicios de Azure mediante conectores de servicio.

  1. Use el siguiente comando para crear un conector de servicio a Azure Database for PostgreSQL para la aplicación 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. Use el siguiente comando para crear un conector de servicio a Azure Database for PostgreSQL para la aplicación Catalog Service:

    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. Use el siguiente comando para crear un conector de servicio a Azure Cache for Redis para la aplicación 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. Use el siguiente comando para volver a cargar la aplicación Catalog Service para cargar las nuevas propiedades de conexión:

    az spring app restart \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
    
  5. Use este comando para recuperar la información de conexión de la base de datos:

    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)
    

    Nota

    Si obtiene una excepción de comprobación SSL con Nofsql 6.0, asegúrese de cambiar el modo SSL de Require a VerifyFull. Para más información, consulte las notas de la versión 6.0 de Npgsql.

  6. Use el siguiente comando para actualizar la aplicación 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. Use los siguientes comandos para recuperar la información de conexión de Redis y actualizar la aplicación 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}"
    

Acceso a la aplicación

Recupere la dirección URL de Spring Cloud Gateway y explore la aplicación actualizada. Puede usar la salida del siguiente comando para explorar la aplicación:

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

Limpieza de recursos

Si planea seguir trabajando en otros inicios rápidos y tutoriales, considere la posibilidad de dejar estos recursos activos. Cuando ya no lo necesite, elimine el grupo de recursos, que elimina los recursos que contiene. Para eliminar el grupo de recursos mediante la CLI de Azure, use estos comandos:

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

Pasos siguientes

Continúe con cualquiera de los siguientes artículos de inicio rápido opcionales: