Inicio rápido: Compilación e implementación de aplicaciones en Azure Spring Apps
Nota:
Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retirada de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.
El plan Estándar por consumo y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.
Este artículo se aplica a: ✔️ Nivel Básico o Estándar ❌ Nivel Enterprise
Esta guía de inicio rápido explica cómo se compilan e implementan aplicaciones de Spring en Azure Spring Apps mediante la CLI de Azure.
Requisitos previos
- Finalización de los inicios rápidos anteriores en esta serie:
Descarga de la aplicación de ejemplo
Siga los siguientes pasos para descargar la app de muestra. Si ha estado usando Azure Cloud Shell, cambie a un símbolo del sistema local.
Cree una carpeta y clone el repositorio de la aplicación de ejemplo.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Navegue al directorio del repositorio.
cd azure-spring-apps-samples
Implementación de PlanetWeatherProvider
Siga estos pasos para implementar el proyecto PlanetWeatherProvider.
Cree una aplicación en la instancia de Azure Spring Apps para el proyecto
PlanetWeatherProvider
.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Para habilitar el registro automático de servicios, ha dado a la aplicación el mismo nombre que el valor de
spring.application.name
en el archivo appsettings.json del proyecto:"spring": { "application": { "name": "planet-weather-provider" } }
La ejecución de este comando puede llevar varios minutos.
Cambie el directorio a la carpeta del proyecto
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
Cree los archivos binarios y el archivo .zip que se va a implementar.
dotnet publish -c release -o ./publish
Sugerencia
El archivo del proyecto contiene el siguiente código XML para empaquetar los archivos binarios en un archivo .zip después de escribirlos en la carpeta ./publish:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Implemente el proyecto en Azure.
Asegúrese de que el símbolo del sistema se encuentre en la carpeta del proyecto antes de ejecutar el siguiente 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
La opción
--main-entry
especifica la ruta de acceso relativa de la carpeta raíz del archivo .zip al archivo .dll que contiene el punto de entrada de la aplicación. Una vez que el servicio carga el archivo .zip, extrae todos los archivos y carpetas e intenta ejecutar el punto de entrada en el archivo .dll especificado.La ejecución de este comando puede llevar varios minutos.
Implementación de SolarSystemWeather
Siga estos pasos para implementar el proyecto SolarSystemWeather.
Cree otra aplicación en la instancia de Azure Spring Apps para el proyecto.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
es el nombre que se especifica en el archivo appsettings.json del proyectoSolarSystemWeather
.La ejecución de este comando puede llevar varios minutos.
Cambie el directorio al proyecto
SolarSystemWeather
.cd ../solar-system-weather
Cree los archivos binarios y el archivo .zip que se va a implementar.
dotnet publish -c release -o ./publish
Implemente el proyecto en 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
La ejecución de este comando puede llevar varios minutos.
Asignación del punto de conexión público
Antes de probar la aplicación, obtenga un punto de conexión público para una solicitud HTTP GET a la aplicación solar-system-weather
.
Ejecute el siguiente comando para asignar el punto de conexión.
az spring app update --name solar-system-weather --assign-endpoint true
Ejecute el siguiente comando para obtener la dirección URL del punto de conexión.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
Prueba de la aplicación
Para probar la aplicación, envíe una solicitud GET a la aplicación solar-system-weather
. En un explorador, vaya a la dirección URL pública con /weatherforecast
anexado a esta. Por ejemplo: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
El resultado JSON es:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
Esta respuesta muestra que las dos ambas aplicaciones de Spring funcionan. La aplicación SolarSystemWeather
devuelve los datos recuperados de la aplicación PlanetWeatherProvider
.
En este artículo se explica cómo compilar e implementar aplicaciones de Spring en Azure Spring Apps. Puede usar la CLI de Azure, el complemento Maven o Intellij. En este artículo se describe cada alternativa.
Requisitos previos
- Finalización de los inicios rápidos anteriores en esta serie:
- JDK 17
- Maven 3.0 o cualquier versión superior
- Suscripción a Azure. Si no tiene una suscripción, cree una cuenta gratuita antes de empezar.
- Opcionalmente, la versión 2.45.0 o superior de la CLI de Azure . Instale la extensión de Azure Spring Apps, para lo cual debe usar el siguiente comando:
az extension add --name spring
- Opcionalmente, el Azure Toolkit for IntelliJ.
Compilación local de las aplicaciones de Spring
Use los siguientes comandos para clonar el repositorio de ejemplo, vaya a la carpeta de ejemplo y, a continuación, compile el proyecto.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
La compilación del proyecto tarda aproximadamente entre 5 y 10 minutos. Cuando se compile su proyecto, debe tener archivos JAR individuales para cada servicio en sus respectivas carpetas.
Creación e implementación de aplicaciones en Azure Spring Apps
Siga estos pasos para crear e implementar aplicaciones en Azure Spring Apps mediante la CLI.
Si no ha ejecutado los siguientes comandos en los inicios rápidos anteriores, hágalo ahora para establecer los valores predeterminados de la CLI.
az configure --defaults group=<resource-group-name> spring=<service-name>
Cree las dos aplicaciones de Spring principales para PetClinic:
api-gateway
ycustomers-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
Implemente los archivos JAR creados en el paso 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 el estado de la aplicación después de las implementaciones con el siguiente comando.
az spring app list --output table
Esto genera una salida similar a la del siguiente ejemplo:
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 -
Comprobación de los servicios
Acceda a api-gateway
y customers-service
desde un explorador con la dirección URL pública que se mostró anteriormente, en el formato de https://<service name>-api-gateway.azuremicroservices.io
.
Sugerencia
Para solucionar los problemas de las implementaciones, puede usar el siguiente comando para obtener el streaming de registros en tiempo real cada vez que la aplicación ejecute az spring app logs --name <app name> --follow
.
Implementación de aplicaciones adicionales
Para que la aplicación PetClinic funcione con todas las características como Servidor de administración, Visitas y Veterinarios, implemente las otras aplicaciones con los siguientes 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"
Limpieza de recursos
Si planea seguir trabajando en otros inicios rápidos y tutoriales, considere la posibilidad de dejar estos recursos activos. Cuando ya no lo necesite, elimine el grupo de recursos, que elimina los recursos que contiene. Para eliminar el grupo de recursos mediante la CLI de Azure, use estos comandos:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."