Share via


Guia de início rápido: integrar com o Banco de Dados do Azure para PostgreSQL e o Cache do Azure para Redis

Nota

Azure Spring Apps é o novo nome para o serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns lugares por um tempo enquanto trabalhamos para atualizar ativos, como capturas de tela, vídeos e diagramas.

Este artigo aplica-se a:❌ Basic/Standard ✔️ Enterprise

Este guia de início rápido mostra como provisionar e preparar um Banco de Dados do Azure para PostgreSQL e um Cache do Azure para Redis a serem usados com aplicativos executados no plano do Azure Spring Apps Enterprise.

Este artigo usa esses serviços para fins de demonstração. Você pode conectar seu aplicativo a qualquer serviço de suporte de sua escolha usando instruções semelhantes às da seção Criar conectores de serviço mais adiante neste artigo.

Pré-requisitos

Serviços de prestação

Para adicionar persistência ao aplicativo, crie um Cache do Azure para Redis e um Banco de Dados do Azure para Servidor Flexível PostgreSQL.

As etapas a seguir descrevem como provisionar uma instância do Cache do Azure para Redis e um Banco de Dados do Azure para Servidor Flexível PostgreSQL usando a CLI do Azure.

  1. Crie variáveis para manter os nomes dos recursos usando os comandos a seguir. Certifique-se de substituir os espaços reservados pelos seus próprios 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 o seguinte comando para criar uma instância do Cache do Azure para Redis:

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

    Nota

    A criação do Cache Redis leva aproximadamente 20 minutos.

  3. Use o seguinte comando para criar um Banco de Dados do Azure para a instância do Servidor Flexível 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 o seguinte comando para permitir conexões de outros Serviços do Azure com o Servidor Flexível recém-criado:

    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 o seguinte comando para habilitar a uuid-ossp extensão para o Servidor Flexível recém-criado:

    az postgres flexible-server parameter set \
        --resource-group ${RESOURCE_GROUP} \
        --name azure.extensions \
        --value uuid-ossp \
        --server-name ${POSTGRES_SERVER_NAME}
    
  6. Use o seguinte comando para criar um banco de dados para o aplicativo Order Service:

    az postgres flexible-server db create \
        --resource-group ${RESOURCE_GROUP} \
        --server-name ${POSTGRES_SERVER_NAME} \
        --database-name acmefit_order
    
  7. Use o seguinte comando para criar um banco de dados para o aplicativo Serviço de Catálogo:

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

Criar conectores de serviço

As etapas a seguir mostram como vincular aplicativos em execução no plano do Azure Spring Apps Enterprise a outros serviços do Azure usando os Conectores de Serviço.

  1. Use o seguinte comando para criar um conector de serviço para o Banco de Dados do Azure para PostgreSQL para o aplicativo 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 o seguinte comando para criar um conector de serviço para o Banco de Dados do Azure para PostgreSQL para o aplicativo Serviço de Catálogo:

    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 o seguinte comando para criar um conector de serviço para o Cache Redis do Azure para o aplicativo 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 o seguinte comando para recarregar o aplicativo Serviço de Catálogo para carregar as novas propriedades de conexão:

    az spring app restart \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME}
    
  5. Use o seguinte comando para recuperar as informações de conexão do banco de dados:

    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

    Se você receber uma exceção de verificação SSL com o Nofsql 6.0, certifique-se de alterar o modo SSL de Require para VerifyFull. Para obter mais informações, consulte as Notas de versão do Npgsql 6.0.

  6. Use o seguinte comando para atualizar o aplicativo 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 os seguintes comandos para recuperar informações de conexão do Redis e atualizar o aplicativo 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}"
    

Aceda à aplicação

Recupere a URL do Spring Cloud Gateway e explore o aplicativo atualizado. Você pode usar a saída do seguinte comando para explorar o aplicativo:

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

Clean up resources (Limpar recursos)

Se você planeja continuar trabalhando com guias de início rápido e tutoriais subsequentes, convém deixar esses recursos no lugar. Quando não for mais necessário, exclua o grupo de recursos, que exclui os recursos do grupo de recursos. Para excluir o grupo de recursos usando a CLI do Azure, use os seguintes comandos:

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

Próximos passos

Continue para qualquer um dos seguintes inícios rápidos opcionais: