Guia de início rápido: criar e implantar aplicativos no Azure Spring Apps
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
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
- Conclusão dos inícios rápidos anteriores desta série:
- Provisione uma instância de serviço do Azure Spring Apps.
- Configure o Azure Spring Apps Config Server.
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.
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
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.
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.
Altere o diretório para a pasta do
PlanetWeatherProvider
projeto.cd steeltoe-sample/src/planet-weather-provider
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>
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.
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 noSolarSystemWeather
arquivo appsettings.json do projeto.Este comando pode levar vários minutos para ser executado.
Altere o diretório para o
SolarSystemWeather
projeto.cd ../solar-system-weather
Crie os binários e .zip arquivo a ser implantado.
dotnet publish -c release -o ./publish
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.
Execute o seguinte comando para atribuir o ponto de extremidade.
az spring app update --name solar-system-weather --assign-endpoint true
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
- Conclusão dos inícios rápidos anteriores desta série:
- Provisione uma instância de serviço do Azure Spring Apps.
- Configure o Azure Spring Apps Config Server.
- JDK 17
- Maven 3.0 ou superior
- Uma subscrição do Azure. Se você não tiver uma assinatura, crie uma conta gratuita antes de começar.
- Opcionalmente, a CLI do Azure versão 2.45.0 ou superior. Instale a extensão Azure Spring Apps com o seguinte comando:
az extension add --name spring
- Opcionalmente, o Kit de Ferramentas do Azure para IntelliJ.
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.
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>
Crie os dois principais aplicativos Spring para PetClinic:
api-gateway
ecustomers-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
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"
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
.
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 ..."