Cómo implementar aplicaciones políglotas en el plan de Azure Spring Apps Enterprise

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a:❌ Básico o Estándar ✔️ Enterprise

En este artículo se muestra cómo implementar aplicaciones políglotas en el plan Azure Spring Apps Enterprise y cómo estas aplicaciones políglotas pueden usar las características del servicio de compilación proporcionadas por paquetes de compilación.

Requisitos previos

Implementación de aplicaciones políglotas en una instancia de servicio

Esta sección se aplica a la compilación e implementación de aplicaciones políglotas cuando el servicio de compilación está habilitado. Si deshabilita el servicio de compilación, solo puede implementar aplicaciones con una imagen de contenedor personalizada. Puede crear su propia imagen o usar una creada por una instancia de Azure Spring Apps Enterprise. Para obtener más información, consulte Implementación de una aplicación con una imagen de contenedor personalizada.

Administración de generadores

Al crear una instancia de Azure Spring Apps Enterprise, debe elegir un generador predeterminado de uno de los siguientes paquetes de compilación de familia de lenguaje compatibles:

Para obtener más información, consulte Language Family Buildpacks para VMware Tanzu.

Estos paquetes de compilación admiten la compilación con código fuente o artefactos para Java, .NET Core, Go, archivos estáticos web, Node.js y aplicaciones de Python. También puede ver versiones de buildpack durante la creación o visualización de un generador. Y puede crear un generador personalizado especificando paquetes de compilación y una pila.

Todos los generadores configurados en una instancia de servicio de Azure Spring Apps se muestran en la página Servicio de compilación, como se muestra en la captura de pantalla siguiente:

Captura de pantalla de Azure Portal que muestra la página Servicio de compilación con la lista Generadores resaltada.

Seleccione Agregar para crear un nuevo compilador. En la siguiente captura de pantalla se muestran los recursos que debe usar para crear el generador personalizado. La pila del sistema operativo incluye Bionic Base, Bionic Full, Jammy Tiny, Jammy Basey Jammy Full. Bionic se basa en Ubuntu 18.04 (Bionic Beaver) y Jammy en Ubuntu 22.04 (Jammy Jellyfish). Para más información, consulte la sección Recomendaciones de pila del sistema operativo.

Se recomienda usar Jammy OS Stack para crear el generador porque VMware está en desuso Bionic OS Stack.

Captura de pantalla de Azure Portal que muestra la página Agregar generador con la pila del sistema operativo y el nombre del paquete de compilación seleccionado resaltado.

También puede editar un generador personalizado cuando este no se usa en una implementación. Puede actualizar los módulos de compilación o la pila del sistema operativo, pero el nombre del compilador es de solo lectura.

Captura de pantalla de Azure Portal que muestra la página Servicio de compilación con el botón de puntos suspensivos y la opción de menú Editar generador resaltada.

El generador es un recurso que contribuye continuamente a las implementaciones. Proporciona las imágenes en tiempo de ejecución más recientes y los paquetes de compilación más recientes.

No se puede eliminar un generador cuando se compilan implementaciones activas existentes con el generador. Para eliminar un generador en este estado, siga estos pasos:

  1. Guarde la configuración como un nuevo generador.
  2. Implemente aplicaciones con el nuevo generador. Las implementaciones están vinculadas al nuevo generador.
  3. Migre las implementaciones del generador anterior al nuevo generador.
  4. Elimine el generador original.

Recomendaciones de la pila del sistema operativo

En Azure Spring Apps, se recomienda usar Jammy OS Stack para crear el generador, ya que Bioinic OS Stack está en línea para el desuso de VMware. En la lista siguiente se describen las opciones disponibles:

  • Jammy Tiny: adecuado para crear una imagen mínima para el tamaño y la superficie de seguridad más pequeños posibles. Al igual que la creación de una imagen nativa de Java, puede hacer que la imagen de contenedor final sea más pequeña. Las bibliotecas integradas están limitadas. Por ejemplo, no puede conectarse a una instancia de aplicación para solucionar problemas porque no hay ninguna biblioteca de shell.

    • La mayoría de las aplicaciones Go.
    • Aplicaciones java. Algunas opciones de configuración de Apache Tomcat, como establecer bin/setenv.sh, no están disponibles porque Tiny no tiene ningún shell.
  • Jammy Base: adecuado para la mayoría de las aplicaciones sin extensiones nativas.

    • Aplicaciones java y aplicaciones de .NET Core.
    • Aplicaciones de Go que requieren algunas bibliotecas de C.
    • Node.js, Python o aplicaciones de servidores web sin extensiones nativas.
  • Jammy Full: incluye la mayoría de las bibliotecas y es adecuado para aplicaciones con extensiones nativas. Por ejemplo, incluye una biblioteca más completa de fuentes. Si la aplicación se basa en la extensión nativa, use la Full pila.

    • Node.js o aplicaciones de Python con extensiones nativas.

Para más información, consulte Ubuntu Stacks en la documentación de VMware.

Administración del registro de contenedor

En esta sección se muestra cómo administrar el registro de contenedor usado por el servicio de compilación si habilita el servicio de compilación con su propio registro de contenedor. Si habilita el servicio de compilación con un registro de contenedor administrado de Azure Spring Apps, puede omitir esta sección.

Después de habilitar un registro de contenedor de usuarios con el servicio de compilación, puede mostrar y configurar el registro mediante Azure Portal o la CLI de Azure.

Siga estos pasos para mostrar, agregar, editar y eliminar el registro de contenedor:

  1. Abra Azure Portal.

  2. Seleccione Container Registry en el panel de navegación.

  3. Seleccione Agregar para crear un registro de contenedor.

    Captura de pantalla de Azure Portal que muestra la página Registro de contenedor con el botón Agregar registro de contenedor.

  4. Para un registro de contenedor, seleccione el botón de puntos suspensivos (...) y, a continuación, seleccione Editar para ver la configuración del Registro.

    Captura de pantalla de Azure Portal que muestra la página Registro de contenedor.

  5. Revise los valores de la páginaEditar registro de contenedor.

    Captura de pantalla de Azure Portal que muestra la página Registro de contenedor con el panel Editar registro de contenedor abierto.

  6. Para eliminar un registro de contenedor, seleccione el botón de puntos suspensivos (...) y, a continuación, seleccione Eliminar para eliminar el registro. Si el servicio de compilación usa el registro de contenedor, no se puede eliminar.

    Captura de pantalla de Azure Portal que muestra la página Registro de contenedor con el panel Editar registro de contenedor abierto y los cuadros Nombre de usuario y Contraseña resaltados.

El servicio de compilación puede usar un registro de contenedor y también puede cambiar el registro de contenedor asociado. Este proceso consume mucho tiempo. Cuando se produce el cambio, todos los recursos de generador y compilación en la recompilación del servicio de compilación y, a continuación, las imágenes de contenedor finales se insertan en el nuevo registro de contenedor.

Siga estos pasos para cambiar el registro de contenedor asociado al servicio de compilación:

  1. Abra Azure Portal.

  2. En el panel de navegación, seleccione Servicio de compilación.

  3. Seleccione registro de contenedor al que se hace referencia para actualizar el registro de contenedor para el servicio de compilación.

    Captura de pantalla de Azure Portal que muestra la página Servicio de compilación con el registro de contenedor al que se hace referencia resaltado.

Compilación e implantación de aplicaciones políglotas

Puede compilar e implementar aplicaciones poliglot de las maneras siguientes mediante el registro de contenedor:

  • Para el servicio de compilación mediante el registro de contenedor administrado de Azure Spring Apps, puede compilar una aplicación en una imagen y, a continuación, implementarla en la instancia de servicio de Azure Spring Apps actual. La compilación y la implementación se ejecutan conjuntamente mediante el az spring app deploy comando.

  • Para el servicio de compilación mediante un registro de contenedor administrado por el usuario, puede compilar una aplicación en una imagen de contenedor y, a continuación, implementar la imagen en la instancia actual de Azure Spring Apps Enterprise y otras instancias. Los comandos de compilación e implementación son independientes. Puede usar el comando build para crear o actualizar una compilación y, a continuación, usar el comando deploy para implementar la imagen de contenedor en la instancia de servicio.

Para obtener más información, consulte la sección Servicio de compilación a petición de Uso del Servicio de compilación de Tanzu.

En los ejemplos siguientes se muestran algunos comandos de compilación útiles que se usarán.

az configure --defaults group=<resource-group-name> spring=<service-name>

az spring build-service build list
az spring build-service build show --name <build-name>
az spring build-service build create --name <build-name> --artifact-path <artifact-path>
az spring build-service build update --name <build-name> --artifact-path <artifact-path>
az spring build-service build delete --name <build-name>

Los siguientes ejemplos de la CLI de Azure muestran la compilación e implementación de un archivo de artefacto para dos escenarios de registro de contenedor:

  • Registro de contenedor administrado de Azure Spring Apps.
  • Registro de contenedor administrado por el usuario.

En este ejemplo se compila e implementa en un comando. El comando siguiente especifica un generador para compilar una aplicación en una imagen de contenedor y, a continuación, implementa la aplicación directamente en la instancia de servicio Enterprise de Azure Springs Apps.

Si no especifica el generador, se usa un default generador.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

Si implementa la aplicación con un archivo de artefacto, use --artifact-path para especificar la ruta de acceso del archivo. Los archivos JAR y WAR son aceptables.

Si la CLI de Azure detecta el paquete WAR como un archivo JAR fino, use --disable-validation para deshabilitar la validación.

En el ejemplo siguiente se implementa la carpeta de código fuente en una implementación activa mediante el --source-path parámetro para especificar la carpeta.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --source-path <path-to-source-code>

También puede configurar el entorno de compilación para compilar la aplicación. Por ejemplo, en una aplicación Java, puede especificar la versión de JDK mediante el BP_JVM_VERSION entorno de compilación.

Para especificar entornos de compilación, use --build-env, como se muestra en el ejemplo siguiente. Las variables de entorno de compilación disponibles se describen más adelante en este artículo.

El comando siguiente implementa una aplicación:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

Para cada compilación, también puede especificar los recursos de compilación, como se muestra en el ejemplo siguiente.

El comando siguiente implementa una aplicación:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --build-cpu <build-cpu-size> \
    --build-memory <build-memory-size> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

El recurso predeterminado de CPU/memoria de compilación es 1 vCPU, 2 Gi. Si la aplicación necesita una cantidad de memoria menor o mayor, use --build-memory para especificar los recursos de memoria, por ejemplo, 500Mi, 1Gi, 2Gi, etc. Si la aplicación necesita una cantidad menor o mayor de recursos de CPU, use --build-cpu para especificar los recursos de CPU, por ejemplo, 500m, 1, 2, etc. El límite máximo de recursos de CPU/memoria para una compilación es 8 vCPU, 16Gi.

Los recursos de CPU y memoria están limitados por el tamaño del grupo de agentes de servicio de compilación. Para obtener más información, consulte la sección del grupo de agentes de compilación de Use Tanzu Build Service. La suma de la cuota de recursos de compilación de procesamiento no puede superar el tamaño del grupo de agentes.

El número paralelo de tareas de compilación depende del tamaño del grupo de agentes y de cada recurso de compilación. Por ejemplo, si el recurso de compilación es el valor predeterminado 1 vCPU, 2 Gi y el tamaño del grupo de agentes es 6 vCPU, 12 Gi, el número de compilación paralelo es 6.

Otras tareas de compilación se bloquean durante un tiempo debido a las limitaciones de cuota de recursos.

La aplicación debe escuchar en el puerto 8080. Las aplicaciones de Spring Boot invalidan para SERVER_PORT usar automáticamente 8080.

Lenguajes admitidos para implementaciones

En la tabla siguiente se indican las características admitidas para cada lenguaje.

Característica Java Python Nodo .NET Core Go Archivos estáticos Imagen nativa de Java PHP
Administración del ciclo de vida de la aplicación ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Asignar punto de conexión ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure Monitor ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integración de APM lista para su uso ✔️
La implementación azul-verde ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dominio personalizado ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Escalado: escalado automático ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Escalado: escalado manual (escalado o reducción horizontales, escalado o reducción verticales) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Identidad administrada ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Portal de API para VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway para VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Application Configuration Service for VMware Tanzu ✔️ ✔️
Registro del servicio VMware Tanzu ✔️ ✔️
Vista dinámica de la aplicación para VMware Tanzu ✔️ ✔️
Red virtual ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dirección IP saliente ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Solución de problemas avanzada: volcado de subproceso, montón o JFR ✔️
Traiga su propio almacenamiento ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integración del enlace del servicio con el Conector de recursos ✔️ ✔️
Zona de disponibilidad ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eventos del ciclo de vida de la aplicación ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Tamaño reducido de la aplicación: 0,5 vCPU y 512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Automatización de implementaciones de aplicaciones con Terraform y Azure Pipeline Task ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eliminación temporal ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Experiencia de diagnóstico interactiva (basada en AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Acuerdo de Nivel de Servicio ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Personalización de sondeos de estado ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Conexión de shell web para la solución de problemas ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Depuración remota ✔️

Para obtener más información sobre las configuraciones admitidas para diferentes aplicaciones de lenguaje, consulte la sección correspondiente más adelante en este artículo.

Limitaciones de Java Native Image

Native Image es una tecnología para compilar código Java con antelación en un ejecutable nativo. Las imágenes nativas proporcionan varias ventajas, como un inicio instantáneo y un consumo reducido de memoria. Puede empaquetar imágenes nativas en una imagen de contenedor ligera para una implementación más rápida y eficaz. Debido a la optimización del mundo cerrado, se aplican las siguientes limitaciones:

  • Las siguientes características de Java requieren configuración en tiempo de compilación ejecutable:
    • Carga de clases dinámicas
    • Reflexión
    • Proxy dinámico
    • JNI (interfaz nativa de Java)
    • Serialización
  • El código de bytes ya no está disponible en tiempo de ejecución, por lo que no es posible depurar y supervisar con herramientas destinadas a JVMTI.

Las siguientes características no se admiten en Azure Spring Apps debido a la limitación de Java Native Image. Azure Spring Apps los admitirá cuando java Native Image y la comunidad superen la limitación.

Característica Por qué no está soportado
Azure Monitor Las imágenes nativas compiladas de GraalVM no admiten métricas de JVM.
Escalado: escalado automático Las imágenes nativas compiladas de GraalVM no admiten métricas de JVM.
Integración de APM lista para su uso APM Vendor & Buildpack no admite imágenes nativas.
Identidad administrada Los SDK de Azure no admiten imágenes nativas.
Subproceso de solución de problemas: avanzado, montón o volcado de JFR Las imágenes nativas compiladas de GraalVM no admiten el volcado de subproceso, montón o JFR.
Depuración remota GraalVM Native Image no admite la depuración remota.
Conexión sin contraseña mediante Service Connector El SDK de Java de Azure no admite la imagen nativa.

Nota:

En las siguientes secciones de configuración de compilación e implementación de lenguajes diferentes, --build-env significa que el entorno se usa en la fase de compilación. --env significa que el entorno se usa en la fase de tiempo de ejecución.

Se recomienda especificar la versión de idioma en caso de que cambie la versión predeterminada. Por ejemplo, use --build-env BP_JVM_VERSION=11.* para especificar Java 11 como versión de JDK. Para otros lenguajes, puede obtener el nombre de la variable de entorno en las descripciones siguientes para cada idioma.

Implementar aplicaciones Java

El paquete de compilación para implementar aplicaciones Java es tanzu-buildpacks/java-azure.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Proporciona Microsoft OpenJDK. Configura la versión de JVM. La versión predeterminada de JDK es 17. Soporte actualmente: JDK 8, 11, 17 y 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
Runtime env. Configura si está activado el seguimiento de memoria nativa de Java (NMT). El valor predeterminado es true. No se admite en JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Configura el nivel de detalle para la salida de seguimiento de memoria nativa (NMT) de Java. El valor predeterminado es resumen. Establézcalo endetalle para obtener una salida de NMT detallada. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte la sección Configuración de certificados de CA para compilaciones e implementaciones de aplicaciones de Configuración de la integración de APM y certificados de CA. N/D N/D
Integración con Application Insights, Dynatrace, Elastic, New Relic, agente de APM dinámico de aplicaciones. Consulte Configuración de la integración de APM y certificados de ENTIDAD de certificación. N/D N/D
Implemente el paquete WAR con Apache Tomcat o TomEE. Establezca el servidor de aplicaciones que se va a usar. Establézcalo en Tomcat para usar Tomcat y tomee para usar TomEE. El valor predeterminado es tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Soporte con aplicaciones de Spring Boot. Indica si se debe contribuir a la compatibilidad de spring Cloud Bindings con la imagen en tiempo de compilación. El valor predeterminado es false. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
Indica si se deben configurar automáticamente las propiedades del entorno de Spring Boot desde enlaces en tiempo de ejecución. Esta característica requiere que Spring Cloud Bindings ya se haya instalado en tiempo de compilación o no haga nada. El valor predeterminado es false. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
Soporte para la creación de aplicaciones basadas en Maven desde el origen. Se usa para un proyecto de varios módulos. Indica el módulo en el que buscar el artefacto de la aplicación. El valor predeterminado es el módulo raíz (vacío). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
Soporte para la creación de aplicaciones basadas en Gradle desde el origen. Se usa para un proyecto de varios módulos. Indica el módulo en el que buscar el artefacto de la aplicación. El valor predeterminado es el módulo raíz (vacío). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
Habilite la configuración de etiquetas en la imagen creada. Configura las etiquetas especificadas por OCI con nombres de variables de entorno cortos y etiquetas arbitrarias mediante una sintaxis delimitada por espacios en una sola variable de entorno. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Consulte más variables de entorno aquí.
--build-env BP_OCI_AUTHORS=<value>
Integre el agente JProfiler. Indica si se va a integrar el soporte con JProfiler. El valor predeterminado es false. BP_JPROFILER_ENABLED fase de compilación:
--build-env BP_JPROFILER_ENABLED=true
fase en tiempo de ejecución:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (opcional, el valor predeterminado es 8849)
BPL_JPROFILER_NOWAIT=true (opcional). Indica si la JVM se ejecuta antes de que se adjunte JProfiler. El valor predeterminado es true.)
Indica si se debe habilitar el soporte con JProfiler en tiempo de ejecución. El valor predeterminado es false. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
Indica en qué puerto escucha el agente JProfiler. El valor predeterminado es 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
Indica si la JVM se ejecuta antes de que se adjunte JProfiler. El valor predeterminado es true. BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
Integre agente de JRebel. La aplicación debe contener un archivo rebel-remote.xml. N/D N/D
AES cifra una aplicación en tiempo de compilación y, a continuación, la descifra en tiempo de inicio. Clave AES que se va a usar en tiempo de compilación. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
Clave AES que se va a usar en tiempo de ejecución. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Integre agente de AspectJ Weaver. <APPLICATION_ROOT>/aop.xml existe y aspectj-weaver.*.jar existe. N/D N/D

Implementación de aplicaciones .NET

El paquete de compilación para implementar aplicaciones .NET es tanzu-buildpacks/dotnet-core.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Configure la versión del entorno de ejecución de .NET Core. Admite Net6.0, Net7.0y Net8.0.
Puede configurar a través de un archivo de proyecto de runtimeconfig.json o MSBuild.
El entorno de ejecución predeterminado es 6.0.*.
N/D N/D
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte la sección Configuración de certificados de CA para compilaciones e implementaciones de aplicaciones de Configuración de la integración de APM y certificados de CA. N/D N/D
Integración con los agentes de Dynatrace y New Relic APM. Consulte Configuración de la integración de APM y Certificados de entidad de certificación. N/D N/D
Habilite la configuración de etiquetas en la imagen creada. Configura las etiquetas especificadas por OCI con nombres de variables de entorno cortos y etiquetas arbitrarias mediante una sintaxis delimitada por espacios en una sola variable de entorno. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Consulte más variables de entorno aquí.
--build-env BP_OCI_AUTHORS=<value>

Implementación de aplicaciones de Python

El paquete de compilación para implementar aplicaciones de Python es tanzu-buildpacks/python.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Especifique una versión de Python. Admite 3.8.*, 3.9.*, 3.10.*, 3.11.*, 3.12.*. El valor predeterminado es 3.10.*
Puede especificar la versión a través de la variable de entorno durante la BP_CPYTHON_VERSION compilación.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte la sección Configuración de certificados de CA para compilaciones e implementaciones de aplicaciones de Configuración de la integración de APM y certificados de CA. N/D N/D
Habilite la configuración de etiquetas en la imagen creada. Configura las etiquetas especificadas por OCI con nombres de variables de entorno cortos y etiquetas arbitrarias mediante una sintaxis delimitada por espacios en una sola variable de entorno. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Consulte más variables de entorno aquí.
--build-env BP_OCI_AUTHORS=<value>

Implementación de aplicaciones de Go

El paquete de compilación para implementar aplicaciones de Go es tanzu-buildpacks/go.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Especifique una versión de Go. Admite 1.20.*, 1.21.*. El valor predeterminado es 1.20.*.
La versión de Go se detecta automáticamente desde el archivo go.mod de la aplicación. Puede invalidar esta versión estableciendo la BP_GO_VERSION variable de entorno en tiempo de compilación.
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
Configure varios destinos. Especifica varios destinos para una compilación de Go. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte la sección Configuración de certificados de CA para compilaciones e implementaciones de aplicaciones de Configuración de la integración de APM y certificados de CA. N/D N/D
Integración con el agente de APM de Dynatrace. Consulte Configuración de la integración de APM y Certificados de entidad de certificación. N/D N/D
Habilite la configuración de etiquetas en la imagen creada. Configura las etiquetas especificadas por OCI con nombres de variables de entorno cortos y etiquetas arbitrarias mediante una sintaxis delimitada por espacios en una sola variable de entorno. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Consulte más variables de entorno aquí.
--build-env BP_OCI_AUTHORS=<value>

Implementación de aplicaciones de Node.js

El paquete de compilación para implementar aplicaciones Node.js es tanzu-buildpacks/nodejs.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Especifique una versión de Node. Admite 16.*, 18.*, 19.*, 20.*. El valor predeterminado es 20.*.
Puede especificar la versión del nodo a través de un archivo .nvmrc o .node-version en la raíz del directorio de la aplicación. BP_NODE_VERSION invalida la configuración.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte la sección Configuración de certificados de CA para compilaciones e implementaciones de aplicaciones de Configuración de la integración de APM y certificados de CA. N/D N/D
Integración con Dynatrace, Elastic, New Relic, agente de APM dinámico de aplicaciones. Consulte Configuración de la integración de APM y Certificados de entidad de certificación. N/D N/D
Habilite la configuración de etiquetas en la imagen creada. Configura las etiquetas especificadas por OCI con nombres de variables de entorno cortos y etiquetas arbitrarias mediante una sintaxis delimitada por espacios en una sola variable de entorno. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Consulte más variables de entorno aquí.
--build-env BP_OCI_AUTHORS=<value>
Implemente una aplicación de Angular con Servidor de desarrollo de Angular. Especifique el host antes de ejecutarse ng serve en el package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name>. El nombre de dominio de la aplicación está disponible en la página Información general de la aplicación, en la sección dirección URL. Quite el protocolo https:// antes de continuar. BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

Implementación de aplicaciones WebServer

El paquete de compilación para implementar aplicaciones WebServer es tanzu-buildpacks/web-servers.

Para obtener más información, consulte Implementación de archivos estáticos web.

Implementación de aplicaciones Java Native Image (versión preliminar)

El paquete de compilación para implementar aplicaciones java Native Image es tanzu-buildpacks/java-native-image.

Puede implementar aplicaciones de imágenes nativas de Spring Boot mediante buildpack tanzu-buildpacks/java-native-image. Spring Native proporciona compatibilidad para compilar aplicaciones de Spring Boot en archivos ejecutables nativos. El paquete de compilación usa Liberica Native Image Kit (NIK) para crear imágenes nativas de aplicaciones de Spring Boot y estas aplicaciones son totalmente compatibles.

Al compilar una imagen nativa de Java, debe establecer el entorno de compilación BP_NATIVE_IMAGE en true y el recurso de memoria de compilación no debe ser inferior a 8Gi. El tamaño del grupo de agentes de servicio de compilación no debe ser menor que 4 vCPU, 8 Gi. Para obtener más información, consulte la sección del grupo de agentes de compilación de Use Tanzu Build Service.

Si desea compilar la imagen nativa en una imagen de contenedor de tamaño más pequeño, se recomienda usar un generador con la pila del Jammy Tiny sistema operativo. Para más información, consulte la sección Recomendaciones de pila del sistema operativo.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Integración con Bellsoft OpenJDK. Configura la versión de JDK. Admite actualmente: JDK 8, 11, 17 y 20. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Configure argumentos para el native-image comando. Argumentos para pasar directamente al comando native-image. Estos argumentos deben ser válidos y formados correctamente o se produce un error en el comando native-image. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte Configuración de la integración de APM y Certificados de entidad de certificación. No es aplicable. No es aplicable.
Habilitación de la configuración de etiquetas en la imagen creada Configura las etiquetas especificadas por OCI con nombres de variables de entorno cortos y etiquetas arbitrarias mediante una sintaxis delimitada por espacios en una sola variable de entorno. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Consulte más variables de entorno aquí.
--build-env BP_OCI_AUTHORS=<value>
Soporte para la creación de aplicaciones basadas en Maven desde el origen. Se usa para un proyecto de varios módulos. Indica el módulo en el que buscar el artefacto de la aplicación. El valor predeterminado es el módulo raíz (vacío). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

Hay algunas limitaciones para Java Native Image. Para obtener más información, consulte la sección Limitaciones de la imagen nativa de Java.

Implementación de aplicaciones PHP

El paquete de compilación para implementar aplicaciones PHP es tanzu-buildpacks/php.

El paquete de compilación de PHP de Tanzu solo es compatible con la pila completa del sistema operativo. Se recomienda usar un generador con la pila del Jammy Full sistema operativo. Para más información, consulte la sección Recomendaciones de pila del sistema operativo.

En la tabla siguiente se enumeran las características admitidas en Azure Spring Apps:

Descripción de la característica Comentario Variable del entorno Uso
Especifique la versión de PHP. Configure la versión de PHP. Compatible actualmente: PHP 8.1.*, y 8.2.*. El valor predeterminado es 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
Agregue Certificados de CA al almacén de confianza del sistema en tiempo de compilación y de ejecución. Consulte la sección Configuración de certificados de CA para compilaciones e implementaciones de aplicaciones de Configuración de la integración de APM y certificados de CA. N/D N/D
Integración con Dynatrace, New Relic, agente de APM dinámico de la aplicación. Consulte Configuración de la integración de APM y Certificados de entidad de certificación. N/D N/D
Seleccione un servidor web. Las opciones de configuración son php-server, httpdy nginx. El valor predeterminado es php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
Configurar directorio web. Cuando el servidor web es HTTPD o NGINX, el directorio web tiene como valor predeterminado htdocs. Cuando el servidor web es el servidor integrado PHP, el directorio web tiene como valor predeterminado /área de trabajo. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

Pasos siguientes