Partilhar via


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

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 explica como criar e implantar aplicativos Spring no Azure Spring Apps usando a CLI do Azure.

Pré-requisitos

Transferir a aplicação de exemplo

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

  1. Crie uma nova 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 o PlanetWeatherProvider

Use as etapas a seguir para implantar o projeto PlanetWeatherProvider.

  1. Crie um aplicativo para o projeto em sua instância do PlanetWeatherProvider Azure Spring Apps.

    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 no arquivo de appsettings.json do spring.application.name 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 PlanetWeatherProvider projeto.

    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
    

    Gorjeta

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

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

    Certifique-se de que o prompt de comando está na pasta do projeto antes de executar o seguinte comando.

    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 --main-entry opção 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, em seguida, tenta executar o ponto de entrada no arquivo .dll especificado.

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

Implantar o SolarSystemWeather

Use as etapas a seguir para implantar o projeto SolarSystemWeather.

  1. Crie outro aplicativo em sua 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 SolarSystemWeather arquivo appsettings.json do projeto.

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

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

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

    dotnet publish -c release -o ./publish
    
  4. Implemente 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 solar-system-weather aplicativo.

  1. Execute o seguinte comando para atribuir o ponto de extremidade.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Execute o seguinte comando 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 a aplicação

Para testar o aplicativo, envie uma solicitação GET para o solar-system-weather aplicativo. Em um navegador, navegue até a URL pública anexada /weatherforecast a ela. 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 SolarSystemWeather aplicativo retorna os dados recuperados do PlanetWeatherProvider aplicativo.

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

Pré-requisitos

Crie os aplicativos Spring localmente

Use os comandos a seguir para clonar o repositório de exemplo, navegue até a pasta de exemplo e crie 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 a 10 minutos. Quando o projeto é compilado, você deve ter arquivos JAR individuais para cada serviço em suas respetivas 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 seguintes comandos nos inícios rápidos anteriores, execute-os agora para definir os padrões da CLI.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Crie os dois principais aplicativos Spring 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 implantações com o seguinte comando.

    az spring app list --output table
    

    Este comando produz uma saída semelhante ao exemplo a seguir:

    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

Acesso api-gateway e customers-service a partir de um navegador com o URL público mostrado anteriormente, no formato de https://<service name>-api-gateway.azuremicroservices.io.

Captura de ecrã da aplicação de exemplo PetClinic que mostra a página Proprietários.

Gorjeta

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

Implantar aplicativos extras

Para que o aplicativo PetClinic funcione com todos os recursos, como Admin Server, 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"

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