Guia de início rápido: criar e implantar aplicativos no Azure Spring Apps usando o plano Enterprise

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 criar e implantar aplicativos no Azure Spring Apps usando o plano Enterprise.

Pré-requisitos

Transferir a aplicação de exemplo

Use os seguintes comandos para baixar o exemplo:

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

Provisionar uma instância de serviço

Use as etapas a seguir para provisionar uma instância de serviço do Azure Spring Apps.

  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. Esta etapa é necessária somente se sua assinatura nunca tiver sido usada para criar uma instância do plano Enterprise do Azure Spring Apps.

    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. Esta localização tem de ser uma localização que suporte o plano Azure Spring Apps Enterprise. Para obter mais informações, consulte as Perguntas frequentes do Azure Spring Apps.

  4. 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. O nome da sua instância de serviço do Azure Spring Apps deve ter entre 4 e 32 caracteres e pode conter apenas letras minúsculas, números e hífenes. 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 seguinte comando para criar um grupo de recursos:

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

    Para obter mais informações sobre grupos de recursos, consulte O que é o Azure Resource Manager?.

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

    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 Espaço de Trabalho do Log Analytics a ser usado para seu serviço Azure Spring Apps:

    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 seu Espaço de Trabalho do Log Analytics e a instância de serviço do Azure Spring Apps:

    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 Azure Spring Apps:

    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-servicee 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 do Aplicativo.

  1. Use o seguinte comando para criar um repositório de configuração para o Application Configuration Service:

    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 vincular aplicativos ao Serviço de Configuração de Aplicativo:

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

Implante aplicativos poliglotas com o Tanzu Build Service

Use as etapas a seguir para implantar e criar aplicativos. Para estas etapas, certifique-se de que o terminal está na pasta do projeto antes de executar quaisquer comandos.

  1. Use o seguinte comando para criar um construtor personalizado no Tanzu Build Service:

    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 pedido:

    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 frontend:

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

Gorjeta

Para solucionar problemas de implantações, você pode usar 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 da 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 pedido:

    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 frontend:

    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 do 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.

Navegue e experimente APIs com o API Portal

Use as etapas a seguir para configurar o API Portal.

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

    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 API Portal:

    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.


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

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