Share via


Guia de Início Rápido: Criar e implantar aplicativos no Azure Spring Apps

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 a: ✔️ Básico/Standard ❌ Enterprise

Este guia de início rápido explica como compilar e implantar os aplicativos Spring no Azure Spring Apps usando a CLI do Azure.

Pré-requisitos

Baixar o aplicativo de exemplo

Use as etapas a seguir para baixar o aplicativo de exemplo. Se você estiver usando o Azure Cloud Shell, mude para um prompt de comando local.

  1. Crie uma pasta e clone o repositório de aplicativo de exemplo.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Navegue até o diretório do repositório.

    cd azure-spring-apps-samples
    

Implantar PlanetWeatherProvider

Use as etapas a seguir para implantar o projeto PlanetWeatherProvider.

  1. Crie um aplicativo para o projeto PlanetWeatherProvider na sua instância dos Aplicativos Spring do Azure.

    az spring app create --name planet-weather-provider --runtime-version NetCore_31
    

    Para habilitar o registro automático de serviço, você deu ao aplicativo o mesmo nome que o valor de spring.application.name no arquivo appsettings.json do projeto:

    "spring": {
      "application": {
        "name": "planet-weather-provider"
      }
    }
    

    Este comando pode levar vários minutos para ser executado.

  2. Altere o diretório para a pasta do projeto PlanetWeatherProvider.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Crie os binários e o arquivo .zip a ser implantado.

    dotnet publish -c release -o ./publish
    

    Dica

    O arquivo de projeto contém o seguinte XML para empacotar os binários em um arquivo .zip depois de gravá-los na pasta ./publish:

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Implante o projeto no Azure.

    Verifique se o prompt de comando está na pasta do projeto antes de executar o comando a seguir.

    az spring app deploy \
        --name planet-weather-provider \
        --runtime-version NetCore_31 \
        --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \
        --artifact-path ./publish-deploy-planet.zip
    

    A opção --main-entry especifica o caminho relativo da pasta raiz do arquivo .zip para o arquivo .dll que contém o ponto de entrada do aplicativo. Depois que o serviço carrega o arquivo .zip, ele extrai todos os arquivos e pastas e tenta executar o ponto de entrada no arquivo .dll especificado.

    Este comando pode levar vários minutos para ser executado.

Implantar SolarSystemWeather

Use as etapas a seguir para implantar o projeto SolarSystemWeather.

  1. Crie outro aplicativo na instância do Azure Spring Apps, para o projeto.

    az spring app create --name solar-system-weather --runtime-version NetCore_31
    

    solar-system-weather é o nome especificado no arquivo appsettings.json do projeto SolarSystemWeather.

    Este comando pode levar vários minutos para ser executado.

  2. Altere o diretório para o projeto SolarSystemWeather.

    cd ../solar-system-weather
    
  3. Crie os binários e o arquivo .zip a ser implantado.

    dotnet publish -c release -o ./publish
    
  4. Implante o projeto no Azure.

    az spring app deploy \
        --name solar-system-weather \
        --runtime-version NetCore_31 \
        --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \
        --artifact-path ./publish-deploy-solar.zip
    

    Este comando pode levar vários minutos para ser executado.

Atribuir ponto de extremidade público

Antes de testar o aplicativo, obtenha um ponto de extremidade público para uma solicitação HTTP GET para o aplicativo solar-system-weather.

  1. Execute o comando a seguir para atribuir o ponto de extremidade.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Execute o comando a seguir para obter a URL do ponto de extremidade.

    Windows:

    az spring app show --name solar-system-weather --output table
    

    Linux:

    az spring app show --name solar-system-weather | grep url
    

Testar o aplicativo

Para testar o aplicativo, envie uma solicitação GET ao aplicativo solar-system-weather. Em um navegador, vá até a URL pública com /weatherforecast acrescentado. Por exemplo: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast

A saída é JSON:

[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]

Essa resposta mostra que ambos os aplicativos Spring estão funcionando. O aplicativo SolarSystemWeather retorna os dados recuperados do aplicativo PlanetWeatherProvider.

Este artigo explica como compilar e implantar aplicativos Spring no Azure Spring Apps. Você pode usar a CLI do Azure, o plug-in do Maven ou o Intellij. Este artigo descreve cada alternativa.

Pré-requisitos

Compilar os aplicativos Spring localmente

Use os comandos a seguir para clonar o repositório de exemplo, navegar até a pasta de exemplo e compilar o projeto.

git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud

A compilação do projeto leva de 5-10 a 10 minutos. Quando o projeto estiver compilado, você deverá ter arquivos JAR individuais para cada serviço nas respectivas pastas.

Criar e implantar aplicativos no Azure Spring Apps

Use as etapas a seguir para criar e implantar aplicativos no Azure Spring Apps usando a CLI.

  1. Se você não executou os comandos a seguir nos guias de início rápido anteriores, execute-os agora para definir os padrões da CLI.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Criar os dois Aplicativos Spring principais para PetClinic: api-gateway e customers-service.

    az spring app create \
        --name api-gateway \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi \
        --assign-endpoint
    az spring app create \
        --name customers-service \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi
    
  3. Implante os arquivos JAR criados na etapa anterior.

    az spring app deploy \
        --name api-gateway \
        --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    az spring app deploy \
        --name customers-service \
        --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    
  4. Consulte o status do aplicativo após as implantações usando o comando a seguir.

    az spring app list --output table
    

    Esse comando produz uma saída semelhante ao seguinte exemplo:

    Name               Location    ResourceGroup    Production Deployment    Public Url                                           Provisioning Status    CPU    Memory    Running Instance    Registered Instance    Persistent Storage
    -----------------  ----------  ---------------  -----------------------  ---------------------------------------------------  ---------------------  -----  --------  ------------------  ---------------------  --------------------
    api-gateway        eastus      xxxxxx-sp         default                  https://<service name>-api-gateway.azuremicroservices.io   Succeeded              1      2         1/1                 1/1                    -
    customers-service  eastus      <service name>         default                                                                       Succeeded              1      2         1/1                 1/1                    -
    

Verificar os serviços

Acessar api-gateway e customers-service de um navegador com a URL Pública mostrada anteriormente, no formato de https://<service name>-api-gateway.azuremicroservices.io.

Captura de tela do aplicativo de amostra PetClinic que mostra a página Proprietários.

Dica

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

Implantar aplicativos extras

Para fazer com que o aplicativo PetClinic funcione com todos os recursos, como Servidor de Administração, Visitas e Veterinários, implante os outros aplicativos com os seguintes comandos:

az spring app create \
    --name admin-server \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi \
    --assign-endpoint
az spring app create \
    --name vets-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app create \
    --name visits-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app deploy \
    --name admin-server \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name vets-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name visits-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"

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