Compartir vía


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

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.

  1. 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
    
  2. Navegue al directorio del repositorio.

    cd azure-spring-apps-samples
    

Implementación de PlanetWeatherProvider

Siga estos pasos para implementar el proyecto PlanetWeatherProvider.

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

  2. Cambie el directorio a la carpeta del proyecto PlanetWeatherProvider.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. 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>
    
  4. 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.

  1. 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 proyecto SolarSystemWeather.

    La ejecución de este comando puede llevar varios minutos.

  2. Cambie el directorio al proyecto SolarSystemWeather.

    cd ../solar-system-weather
    
  3. Cree los archivos binarios y el archivo .zip que se va a implementar.

    dotnet publish -c release -o ./publish
    
  4. 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.

  1. Ejecute el siguiente comando para asignar el punto de conexión.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. 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

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.

  1. 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>
    
  2. Cree las dos aplicaciones de Spring principales para PetClinic: api-gateway y 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. 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"
    
  4. 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.

Captura de pantalla de la aplicación de ejemplo PetClinic que muestra la página Propietarios.

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

Pasos siguientes