Início Rápido: Criar e implantar aplicativos nos Aplicativos Spring do Azure usando o plano Enterprise

Observação

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

Este artigo se aplica ao:❌ nível Básico/Standard ✔️ nível Enterprise

Este início rápido mostra como criar e implantar aplicativos nos Aplicativos Spring do Azure usando o plano Enterprise.

Pré-requisitos

Baixar o aplicativo de exemplo

Use os seguintes comandos para baixar a amostra:

git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store

Provisionar uma instância de serviço

Siga as seguintes etapas para provisionar uma instância de serviço de Aplicativos Spring do Azure.

  1. Use o seguinte comando para entrar na CLI do Azure e escolher sua assinatura ativa:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Use o comando a seguir para aceitar os termos legais e as declarações de privacidade do plano Enterprise. Essa etapa só será necessária se sua assinatura nunca tiver sido usada para criar uma instância do plano Enterprise dos Aplicativos Spring do Azure.

    az provider register --namespace Microsoft.SaaS
    az term accept \
        --publisher vmware-inc \
        --product azure-spring-cloud-vmware-tanzu-2 \
        --plan asa-ent-hr-mtr
    
  3. Selecione uma localização. Esse local deve ser um local que dê suporte ao plano Enterprise dos Aplicativos Spring do Azure. Para obter mais informações, consulte Perguntas frequentes dos Aplicativos Spring do Azure.

  4. Crie variáveis para manter os nomes dos recursos usando os comandos a seguir. Substitua os espaços reservados pelos seus valores. O nome da instância de serviço dos Aplicativos Spring do Azure deve ter entre 4 e 32 caracteres e pode conter apenas letras minúsculas, números e hifens. O primeiro caractere do nome do serviço deve ser uma letra e o último caractere deve ser uma letra ou um número.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Use o comando a seguir para criar um grupo de recursos:

    az group create \
        --name ${RESOURCE_GROUP} \
        --location ${LOCATION}
    

    Para saber mais sobre os grupos de recursos, confira O que é o Azure Resource Manager?.

  6. Use o seguinte comando para criar uma instância de serviço de Aplicativos Spring do Azure:

    az spring create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --sku enterprise \
        --enable-application-configuration-service \
        --enable-service-registry \
        --enable-gateway \
        --enable-api-portal
    
  7. Use o seguinte comando para criar um workspace do Log Analytics a ser usado para seu serviço de Aplicativos Spring do Azure:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Use os seguintes comandos para recuperar a ID do recurso para o workspace do Log Analytics e a instância de serviço de Aplicativos Spring do Azure:

    export LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --query id \
        --output tsv)
    
    export AZURE_SPRING_APPS_RESOURCE_ID=$(az spring show \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --query id \
        --output tsv)
    
  9. Use o seguinte comando para definir as configurações de diagnóstico para o Serviço de Aplicativos Spring do Azure:

    az monitor diagnostic-settings create \
        --name "send-logs-and-metrics-to-log-analytics" \
        --resource ${AZURE_SPRING_APPS_RESOURCE_ID} \
        --workspace ${LOG_ANALYTICS_RESOURCE_ID} \
        --logs '[
             {
               "category": "ApplicationConsole",
               "enabled": true,
               "retentionPolicy": {
                 "enabled": false,
                 "days": 0
               }
             },
             {
                "category": "SystemLogs",
                "enabled": true,
                "retentionPolicy": {
                  "enabled": false,
                  "days": 0
                }
              },
             {
                "category": "IngressLogs",
                "enabled": true,
                "retentionPolicy": {
                  "enabled": false,
                  "days": 0
                 }
               }
           ]' \
           --metrics '[
             {
               "category": "AllMetrics",
               "enabled": true,
               "retentionPolicy": {
                 "enabled": false,
                 "days": 0
               }
             }
           ]'
    
  10. Use os seguintes comandos para criar aplicativos para cart-service, order-service, payment-service, catalog-service e frontend:

    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME}
    

Externalizar a configuração com o Serviço de Configuração de Aplicativo

Use as etapas a seguir para configurar o Serviço de Configuração de Aplicativos.

  1. Use o seguinte comando para criar um repositório de configuração para o Serviço de Configuração de Aplicativos:

    az spring application-configuration-service git repo add \
        --resource-group ${RESOURCE_GROUP} \
        --name acme-fitness-store-config \
        --service ${SERVICE_NAME} \
        --label main \
        --patterns "catalog/default,catalog/key-vault,identity/default,identity/key-vault,payment/default" \
        --uri "https://github.com/Azure-Samples/acme-fitness-store-config"
    
  2. Use os seguintes comandos para associar aplicativos ao Serviço de Configuração de Aplicativos:

    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app payment-service \
        --service ${SERVICE_NAME}
    
    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app catalog-service \
        --service ${SERVICE_NAME}
    

Ativar o registro e a descoberta do serviço

Para ativar o registro e a descoberta do serviço, use os seguintes comandos para associar aplicativos ao Registro de Serviço:

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app payment-service \
    --service ${SERVICE_NAME}

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app catalog-service \
    --service ${SERVICE_NAME}

Implantar aplicativos poliglotas com o Serviço de Build do Tanzu

Use as seguintes etapas para implantar e criar aplicativos. Para essas etapas, verifique se o terminal está na pasta do projeto antes de executar quaisquer comandos.

  1. Use o seguinte comando para criar um construtor personalizado no Serviço de Build do Tanzu:

    az spring build-service builder create \
        --resource-group ${RESOURCE_GROUP} \
        --name quickstart-builder \
        --service ${SERVICE_NAME} \
        --builder-file azure-spring-apps-enterprise/resources/json/tbs/builder.json
    
  2. Use o seguinte comando para criar e implantar o serviço de pagamento:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern payment/default \
        --source-path apps/acme-payment \
        --build-env BP_JVM_VERSION=17
    
  3. Use o seguinte comando para criar e implantar o serviço de catálogo:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern catalog/default \
        --source-path apps/acme-catalog \
        --build-env BP_JVM_VERSION=17
    
  4. Use o seguinte comando para criar e implantar o serviço de ordem:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Use o seguinte comando para criar e implantar o serviço de carrinho:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --env "CART_PORT=8080" \
        --source-path apps/acme-cart
    
  6. Use o seguinte comando para criar e implantar o aplicativo de front-end:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME} \
        --source-path apps/acme-shopping
    

Dica

Para solucionar problemas de implantações, use o seguinte comando para obter streaming de logs em tempo real sempre que o aplicativo estiver em execução: az spring app logs --name <app name> --follow.

Encaminhar solicitações para aplicativos com o Spring Cloud Gateway

Use as etapas a seguir para configurar o Spring Cloud Gateway e configurar rotas para aplicativos.

  1. Use o seguinte comando para atribuir um ponto de extremidade ao Spring Cloud Gateway:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Use os seguintes comandos para configurar as informações de API do Spring Cloud Gateway:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*"
    
  3. Use o seguinte comando para criar rotas para o serviço de carrinho:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-routes \
        --service ${SERVICE_NAME} \
        --app-name cart-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/cart-service.json
    
  4. Use o seguinte comando para criar rotas para o serviço de ordem:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-routes \
        --service ${SERVICE_NAME} \
        --app-name order-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/order-service.json
    
  5. Use o seguinte comando para criar rotas para o serviço de catálogo:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-routes \
        --service ${SERVICE_NAME} \
        --app-name catalog-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service.json
    
  6. Use o seguinte comando para criar rotas para o front-end:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend-routes \
        --service ${SERVICE_NAME} \
        --app-name frontend \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/frontend.json
    
  7. Use os seguintes comandos para recuperar a URL no Spring Cloud Gateway:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${GATEWAY_URL}"
    

    Você pode abrir a URL de saída em um navegador para explorar o aplicativo implantado.

Procurar e experimentar APIs com o Portal de API

Execute as etapas a seguir para configurar o Portal de API.

  1. Use o seguinte comando para atribuir um ponto de extremidade ao Portal de API:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Use os seguintes comandos para recuperar a URL do portal da API:

    export PORTAL_URL=$(az spring api-portal show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${PORTAL_URL}"
    

    Você pode abrir a URL de saída em um navegador para explorar as APIs do aplicativo.


Limpar os recursos

Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não for mais necessário, exclua o grupo de recursos, que excluirá os recursos no 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óximas etapas

Agora que você criou e implantou seu aplicativo com êxito, continue em qualquer um dos seguintes inícios rápidos opcionais: