Come implementare app poliglotte nel piano Enterprise di Azure Spring Apps

Nota

I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.

Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.

Questo articolo si applica a:❌ Basic/Standard ✔️ Enterprise

Questo articolo mostra come implementare app poliglotte nel piano Enterprise di Azure Spring Apps e come queste app poliglotte possono usare le funzionalità del servizio di compilazione fornite da pacchetti di build.

Prerequisiti

Implementare applicazioni poliglotte in un'istanza del servizio

Questa sezione si applica alla compilazione e implementazione di applicazioni poliglotte quando il servizio di compilazione è abilitato. Se si disabilita il servizio di compilazione, è possibile implementare applicazioni solo con un'immagine del contenitore personalizzata. È possibile creare un'immagine personalizzata o usarne una compilata da un'istanza Enterprise di Azure Spring Apps. Per maggiori informazioni, vedere Implementare un'applicazione con un'immagine del contenitore personalizzata.

Gestire i generatori

Quando si crea un'istanza di Azure Spring Apps Enterprise, è necessario scegliere un generatore predefinito da uno dei seguenti pacchetti di build della famiglia di linguaggio supportati:

Per maggiori informazioni, vedere Pacchetti di build famiglia di linguaggio per VMware Tanzu.

Questi pacchetti di build supportano la compilazione con codice sorgente o artefatti per le app Java, .NET Core, Go, web static files, Node.js e Python. È anche possibile visualizzare le versioni del pacchetto di build durante la creazione o la visualizzazione di un generatore. È inoltre possibile creare un generatore personalizzato specificando i pacchetti di build e un gruppo.

Tutti i generatori configurati in un'istanza del servizio di Azure Spring Apps sono elencati nella pagina Servizio di compilazione, come illustrato nello screenshot seguente:

Screenshot del portale di Azure che mostra la pagina Servizio di compilazione con l'elenco dei Generatori evidenziato.

Selezionare Aggiungi per creare un nuovo generatore. Lo screenshot seguente mostra le risorse da usare per creare il generatore personalizzato. Il Gruppo del sistema operativo include Bionic Base, Bionic Full, Jammy Tiny, Jammy Base, e Jammy Full. Bionic si basa su Ubuntu 18.04 (Bionic Beaver) e Jammy si basa su Ubuntu 22.04 (Jammy Jellyfish). Per maggiori informazioni, vedere la sezione Consigli del gruppo del sistema operativo.

È consigliabile usare Jammy OS Stack per creare il generatore perché VMware è deprecato Bionic OS Stack.

Screenshot del portale di Azure che mostra la pagina Aggiungi generatore con il Gruppo del sistema operativo e il nome del pacchetto di build selezionato evidenziato.

È anche possibile modificare un generatore personalizzato quando il generatore non viene usato in una distribuzione. È possibile aggiornare i pacchetti di build o il Gruppo del sistema operativo, ma il nome del generatore è di sola lettura.

Screenshot del portale di Azure che mostra la pagina Servizio di compilazione con il pulsante dei puntini di sospensione e l'opzione di menù Modifica generatore evidenziata.

Il generatore è una risorsa che contribuisce continuamente alle distribuzioni. Fornisce le ultime immagini di runtime e i pacchetti di build più recenti.

Non è possibile eliminare un generatore quando vengono compilate distribuzioni attive esistenti con il generatore. Per eliminare un generatore in questo stato, seguire questa procedura:

  1. Salvare la configurazione come nuovo generatore.
  2. Implementare app con il nuovo generatore. Le distribuzioni sono collegate al nuovo generatore.
  3. Eseguire la migrazione delle distribuzioni nel generatore precedente al nuovo generatore.
  4. Eliminare il generatore originale.

Elementi consigliati per il Gruppo del sistema operativo

In Azure Spring Apps è consigliabile usare Jammy OS Stack per creare il generatore perché Bioinic OS Stack è in linea per la deprecazione da parte di VMware. L'elenco seguente descrive le opzioni disponibili:

  • Jammy Tiny: adatto per la creazione di un'immagine minima per le dimensioni e il footprint di sicurezza più piccoli possibili. Come la compilazione di un'Immagine Nativa Java, può rendere più piccola l'immagine finale del contenitore. Le librerie integrate sono limitate. Ad esempio, non è possibile connettersi a un'istanza dell'app per la risoluzione dei problemi perché non esiste alcuna shell libreria.

    • La maggior parte delle app Go.
    • App Java. Alcune opzioni di configurazione di Apache Tomcat, come ad esempio l'impostazione bin/setenv.sh, non sono disponibili perché Tiny non ha shell.
  • Jammy Base: adatto per la maggior parte delle app senza estensioni native.

    • App Java e app .NET Core.
    • App Go che richiede alcune librerie C.
    • Le app Node.js, Python o Server Web senza estensioni native.
  • Jammy Full: include la maggior parte delle librerie ed è adatto per le app con estensioni native. Ad esempio, include una libreria di tipi di carattere più completa. Se l'app si basa sull'estensione nativa, usare il Full gruppo.

    • Le app Node.js o Python con estensioni native.

Per maggiori informazioni, vedere Stack Ubuntu nella documentazione di VMware.

Gestire il registro contenitori

Questa sezione mostra come gestire il registro contenitori usato dal servizio di compilazione se si abilita il servizio di compilazione con il proprio registro contenitori. Se si abilita il servizio di compilazione con un registro contenitori gestito di Azure Spring Apps, si può ignorare questa sezione.

Dopo aver abilitato un registro contenitori utente con il servizio di compilazione, è possibile visualizzare e configurare il registro usando il portale di Azure o l'interfaccia della riga di comando di Azure.

Usare la procedura seguente per visualizzare, aggiungere, modificare ed eliminare il registro contenitori:

  1. Apri il portale di Azure.

  2. Selezionare Registro contenitori nel riquadro di spostamento.

  3. Selezionare Aggiungi per creare un registro contenitori.

    Screenshot del portale di Azure che mostra la pagina Registro Contenitori con il pulsante Aggiungi registro contenitori.

  4. Per un registro contenitori, selezionare il pulsante con i puntini di sospensione (...) e quindi selezionare Modifica per visualizzare la configurazione del registro.

    Screenshot del portale di Azure che mostra la pagina Registro Contenitori.

  5. Esaminare i valori nella pagina Modifica registro contenitori.

    Screenshot del portale di Azure che mostra la pagina Registro Contenitori con il riquadro Modifica registro contenitori aperto.

  6. Per eliminare un registro contenitori, selezionare il pulsante con i puntini di sospensione (...) e quindi selezionare Elimina per eliminare il registro. Se il registro contenitori viene usato dal servizio di compilazione, non può essere eliminato.

    Screenshot del portale di Azure che mostra la pagina Registro Contenitori con il riquadro Modifica registro contenitori aperto e le caselle Nome utente e Password evidenziate.

Il servizio di compilazione può usare un registro contenitori e può anche modificare il registro contenitori associato. Questo processo richiede molto tempo. Quando avviene la modifica, tutte le risorse dei generatori e di compilazione nel servizio di compilazione effettuano nuovamente la compilazione, successivamente le immagini finali del contenitore vengono spostate nel nuovo registro contenitori.

Usare i seguenti passaggi per cambiare il registro contenitori associato al servizio di compilazione:

  1. Apri il portale di Azure.

  2. Selezionare Compila servizio nel riquadro di spostamento.

  3. Selezionare Registro contenitori di riferimento per aggiornare il registro contenitori per il servizio di compilazione.

    Screenshot del portale di Azure che mostra la pagina Servizio di compilazione con il registro contenitori di riferimento evidenziato.

Compilare e implementare applicazioni poliglotte

È possibile compilare e implementare applicazioni poliglotte nei modi seguenti usando il registro contenitori:

  • Per il servizio di compilazione usando il registro contenitori gestito di Azure Spring Apps, è possibile compilare un'applicazione in un'immagine e quindi implementarla nell'istanza del servizio di Azure Spring Apps corrente. La compilazione e la distribuzione vengono eseguite insieme usando il az spring app deploy comando.

  • Per il servizio di compilazione usando un registro contenitori gestito dall'utente, è possibile compilare un'applicazione in un'immagine del contenitore e quindi implementare l'immagine nell'istanza Enterprise di Azure Spring Apps corrente e in altre istanze. I comandi di compilazione e implementazione sono separati. È possibile usare il comando di compilazione per creare o aggiornare una compilazione, quindi usare il comando implementare per implementare l'immagine del contenitore nell'istanza del servizio.

Per maggiori informazioni, vedere la sezione Compilare un servizio su richiesta di Usare il servizio di compilazione Tanzu.

Gli esempi seguenti mostrano alcuni comandi di compilazione utili da usare.

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>

Gli esempi seguenti dell'interfaccia della riga di comando di Azure mostrano la compilazione e implementazione di un file di artefatti per due scenari del registro contenitori:

  • Registro contenitori gestito di Azure Spring Apps.
  • Registro contenitori gestito dall'utente.

Questo esempio compila e implementa in un unico comando. Il comando seguente specifica un generatore per compilare un'applicazione in un'immagine del contenitore e quindi implementa l'applicazione direttamente nell'istanza del servizio Enterprise di Azure Spring Apps.

Se non si specifica il generatore, viene usato un default generatore.

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>

Se si implementa l'app con un file di artefatti, usare --artifact-path per specificare il percorso del file. I file JAR e WAR sono entrambi accettabili.

Se l'interfaccia della riga di comando di Azure rileva il pacchetto WAR come file JAR sottile, usare --disable-validation per disabilitare la convalida.

Nell'esempio seguente la cartella del codice sorgente viene implementata in una distribuzione attiva usando il --source-path parametro per specificare la cartella.

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>

È anche possibile configurare l'ambiente di compilazione per compilare l'app. Ad esempio, in un'applicazione Java è possibile specificare la versione JDK usando l'ambiente BP_JVM_VERSION di compilazione.

Per specificare gli ambienti di compilazione, usare --build-env, come illustrato nell'esempio seguente. Le variabili di ambiente di compilazione disponibili sono descritte più avanti in questo articolo.

Il comando seguente implementa un'applicazione:

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>

Per ogni compilazione, è anche possibile specificare le risorse di compilazione, come illustrato nell'esempio seguente.

Il comando seguente implementa un'applicazione:

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>

La risorsa CPU/memoria di compilazione predefinita è 1 vCPU, 2 Gi. Se l'applicazione richiede una quantità di memoria minore o maggiore, usare --build-memory per specificare le risorse di memoria, ad esempio, 500Mi 1Gi, 2Gi e così via. Se l'applicazione richiede una quantità minore o maggiore di risorse di CPU, usare --build-cpu per specificare le risorse del CPU, ad esempio 500m, 1, 2 e così via. Il limite massimo di risorse CPU/memoria per una compilazione è 8 vCPU, 16Gi.

Le risorse CPU e memoria sono limitate dalle dimensioni del pool di agenti del servizio di compilazione. Per maggiori informazioni, vedere la sezione Pool di agenti di compilazione di Usare il servizio di compilazione Tanzu. La somma della quota delle risorse di compilazione di elaborazione non può superare le dimensioni del pool di agenti.

Il numero parallelo di attività di compilazione dipende dalle dimensioni del pool di agenti e da ogni risorsa di compilazione. Ad esempio, se la risorsa di compilazione è l'impostazione predefinita 1 vCPU, 2 Gi e le dimensioni del pool di agenti sono 6 vCPU, 12 Gi, il numero di compilazione parallelo è 6.

Altre attività di compilazione vengono bloccate per un periodo di tempo a causa delle limitazioni della quota di risorse.

L'applicazione deve essere in ascolto sulla porta 8080. Le applicazioni Spring Boot eseguono l'override di SERVER_PORT per usare automaticamente 8080.

Lingue supportate per le distribuzioni

La tabella seguente indica le funzionalità supportate per ogni lingua.

Funzionalità Java Python Nodo .NET Core Go File statici Immagine Nativa Java PHP
Gestione del ciclo di vita dell’app ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Assegna endpoint ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Monitoraggio di Azure ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integrazione APM preconfigurata ✔️
Distribuzione blu/verde ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dominio personalizzato ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Ridimensionamento - Ridimensionamento automatico ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Ridimensionamento: ridimensionamento manuale (in/out, aumento/riduzione) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Identità gestita ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Portale API per VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway per VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Servizio di configurazione dell'applicazione per Tanzu VMware ✔️ ✔️
Registro dei servizi VMware Tanzu ✔️ ✔️
Visualizzazione live dell'app per VMware Tanzu ✔️ ✔️
Rete virtuale ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Indirizzo IP in uscita ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Risoluzione dei problemi avanzata - thread/heap/JFR dump ✔️
Usare risorse di archiviazione personali ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integrare l'associazione di servizi con Connettore di risorse ✔️ ✔️
Availability Zone (Zona di disponibilità) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eventi del ciclo di vita dell'app ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dimensioni dell'app ridotte - 0,5 vCPU e 512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Automatizzare le distribuzioni di app con Terraform e attività di Azure Pipeline ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eliminazione temporanea ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Esperienza di diagnostica interattiva (basata su AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Contratto di servizio ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Personalizzare i probe di integrità ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Connessione della shell Web per la risoluzione dei problemi ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
Debug remoto ✔️

Per maggiori informazioni sulle configurazioni supportate per app per lingue diverse, vedere la sezione corrispondente più avanti in questo articolo.

Limitazioni di Immagine Nativa Java

Immagine nativa è una tecnologia per compilare il codice Java in anticipo in un eseguibile nativo. Le immagini native offrono vari vantaggi, ad esempio un avvio istantaneo e un consumo ridotto di memoria. È possibile creare un pacchetto di immagini native in un'immagine contenitore leggera per una distribuzione più rapida ed efficiente. Per l'Ottimizzazione Closed World, si applicano le limitazioni seguenti:

  • Le funzionalità Java seguenti richiedono la configurazione in fase di compilazione eseguibile:
    • Caricamento di classi dinamiche
    • Reflection
    • Proxy dinamico
    • JNI (Interfaccia Nativa Java)
    • Serializzazione
  • Bytecode non è più disponibile in fase di esecuzione, quindi il debug e il monitoraggio con gli strumenti destinati a JVMTI non sono possibili.

Le funzionalità seguenti non sono supportate in Azure Spring Apps a causa della limitazione di Immagine Nativa Java. Azure Spring Apps li supporterà quando l'Immagine Nativa Java e la community superano la limitazione.

Funzionalità Perché non è supportato
Monitoraggio di Azure Le immagini native compilate da GraalVM non supportano le metriche JVM.
Ridimensionamento: scalabilità automatica Le immagini native compilate da GraalVM non supportano le metriche JVM.
Integrazione APM preconfigurata APM Vendor & Pacchetti di build non supporta l'immagine nativa.
Identità gestita Gli SDK di Azure non supportano l'immagine nativa.
Risoluzione dei problemi avanzata: thread/heap/JFR dump Le immagini native compilate da GraalVM non supportano il thread/heap/JFR dump.
Debug remoto Le immagini native GraalVM non supportano il Debug Remoto.
Connessione senza password con Connettore di servizi Azure Java SDK non supporta l'immagine nativa.

Nota

Nelle diverse sezioni di compilazione e implementazione della lingua seguenti, --build-env significa che l'ambiente viene usato nella fase di compilazione. --env indica che l'ambiente viene usato nella fase di runtime.

È consigliabile specificare la versione della lingua nel caso in cui la versione predefinita cambi. Ad esempio, usare --build-env BP_JVM_VERSION=11.* per specificare Java 11 come versione JDK. Per altre lingue, è possibile ottenere il nome della variabile di ambiente nelle descrizioni seguenti per ogni lingua.

Implementare applicazioni Java

Il pacchetto di build per l’implementazione di applicazioni Java è tanzu-buildpacks/java-azure.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Fornisce Microsoft OpenJDK. Configura la versione di JVM. La versione predefinita di JDK è 17. Attualmente supportato: JDK 8, 11, 17 e 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
Runtime env. Configura se Java Native Memory Tracking (NMT) è abilitato. Il valore predefinito è true. Non supportato in JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Configura il livello di dettaglio per l'output Java Native Memory Tracking (NMT). Il valore predefinito è riepilogo. Impostare su dettaglio per l'output di NMT dettagliato. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere la sezione Configurare i certificati CA per le compilazioni e le implementazioni di app di Come configurare l'integrazione di APM e i certificatidella CA. N/D N/D
Integrare con Application Insights, Dynatrace, Elastic, New Relic, App Dynamic APM agent. Vedere Come configurare l'integrazione APM e i certificati CA. N/D N/D
Implementare il pacchetto WAR con Apache Tomcat o TomEE. Impostare il server applicazioni da usare. Impostare su tomcat per usare Tomcat e tomee per usare TomEE. Il valore predefinito è tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Supportare Applicazioni Spring Boot. Indica se contribuire al supporto di Associazioni Spring Cloud per l'immagine in fase di compilazione. Il valore predefinito è false. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
Indica se configurare automaticamente le proprietà dell'ambiente Spring Boot dalle associazioni in fase di esecuzione. Questa funzionalità richiede che le Associazioni Spring Cloud siano già state installate in fase di compilazione altrimenti non fa nulla. Il valore predefinito è false. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
Supportare la compilazione di applicazioni basate su Maven dall'origine. Usato per un progetto multi modulo. Indica il modulo in cui trovare l'artefatto dell'applicazione. Il valore predefinito è il modulo radice (vuoto). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
Supporto per la compilazione di applicazioni basate su Gradle dall'origine. Usato per un progetto multi modulo. Indica il modulo in cui trovare l'artefatto dell'applicazione. Il valore predefinito è il modulo radice (vuoto). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
Abilitare la configurazione delle etichette nell'immagine creata. Configura entrambe le etichette specificate dall'OCI con nomi brevi di variabili di ambiente ed etichette arbitrarie usando una sintassi delimitata da spazi in una singola variabile di ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Vedere altre variabili di ambiente qui.
--build-env BP_OCI_AUTHORS=<value>
Integrare l'agente JProfiler. Indica se integrare il supporto JProfiler. Il valore predefinito è false. BP_JPROFILER_ENABLED fase di compilazione:
--build-env BP_JPROFILER_ENABLED=true
fase di runtime:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (facoltativo, il valore predefinito è 8849)
BPL_JPROFILER_NOWAIT=true (facoltativo. Indica se la JVM viene eseguita prima che JProfiler venga collegato. Il valore predefinito è vero.)
Indica se abilitare il supporto JProfiler in fase di esecuzione. Il valore predefinito è false. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
Indica la porta su cui è in ascolto l'agente JProfiler. Il valore predefinito è 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
Indica se la JVM viene eseguita prima che JProfiler venga collegato. Il valore predefinito è true. BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
Integrare l'agente JRebel. L'applicazione deve contenere un file rebel-remote.xml. N/D N/D
AES crittografa un'applicazione in fase di compilazione e la decrittografa in fase di avvio. Chiavi AES da usare in fase di compilazione. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
Chiavi AES da usare in fase di esecuzione. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Integrare l'agente AspectJ Weaver. <APPLICATION_ROOT>/aop.xml esiste easpectj-weaver.*.jar esiste. N/D N/D

Implementare applicazioni .NET

Il pacchetto di build per l’implementazione di applicazioni .NET è tanzu-buildpacks/dotnet-core.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Configurare la versione di runtime .NET Core. Supporta Net6.0 e Net8.0.
È possibile configurare tramite un runtimeconfig.json o un file di progetto MSBuild.
Il runtime predefinito è 6.0.*.
N/D N/D
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere la sezione Configurare i certificati CA per le compilazioni e le implementazioni di app di Come configurare l'integrazione di APM e i certificatidella CA. N/D N/D
Integrare con gli agenti Dynatrace e New Relic APM. Vedere Come configurare l'integrazione APM e i certificati CA. N/D N/D
Abilitare la configurazione delle etichette nell'immagine creata. Configura entrambe le etichette specificate dall'OCI con nomi brevi di variabili di ambiente ed etichette arbitrarie usando una sintassi delimitata da spazi in una singola variabile di ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Vedere altre variabili di ambiente qui.
--build-env BP_OCI_AUTHORS=<value>

Implementare applicazioni Python

Il pacchetto di build per implementare le applicazioni Python è tanzu-buildpacks/python.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Specificare una versione di Python. Supporta 3.8.*, 3.9.*, 3.10.*, 3.11.*, 3.12.*. Il valore predefinito è 3.10.*
È possibile specificare la versione tramite BP_CPYTHON_VERSION la variabile di ambiente durante la compilazione.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere la sezione Configurare i certificati CA per le compilazioni e le implementazioni di app di Come configurare l'integrazione di APM e i certificatidella CA. N/D N/D
Abilitare la configurazione delle etichette nell'immagine creata. Configura entrambe le etichette specificate dall'OCI con nomi brevi di variabili di ambiente ed etichette arbitrarie usando una sintassi delimitata da spazi in una singola variabile di ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Vedere altre variabili di ambiente qui.
--build-env BP_OCI_AUTHORS=<value>

Implementare applicazioni Go

Il pacchetto di build per l’implementazione di applicazioni Go è tanzu-buildpacks/go.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Specificare una versione Go. Supporta 1.21.*, 1.22.*. Il valore predefinito è 1.21.*.
La versione Go viene rilevata automaticamente dal file dell'app go.mod. È possibile eseguire l'override di questa versione impostando la BP_GO_VERSION variabile di ambiente in fase di compilazione.
BP_GO_VERSION --build-env BP_GO_VERSION=1.22.*
Configurare più destinazioni. Specificare più destinazioni per una compilazione Go. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere la sezione Configurare i certificati CA per le compilazioni e le implementazioni di app di Come configurare l'integrazione di APM e i certificatidella CA. N/D N/D
Integrare con l'agente di Dynatrace APM. Vedere Come configurare l'integrazione APM e i certificati CA. N/D N/D
Abilitare la configurazione delle etichette nell'immagine creata. Configura entrambe le etichette specificate dall'OCI con nomi brevi di variabili di ambiente ed etichette arbitrarie usando una sintassi delimitata da spazi in una singola variabile di ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Vedere altre variabili di ambiente qui.
--build-env BP_OCI_AUTHORS=<value>

Implementare un'applicazione Node.js

Il pacchetto di build per implementare applicazioni Node.js è tanzu-buildpacks/nodejs.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Specificare una versione del nodo. Supporta 16.*, 18.*, 19.*, 20.*. Il valore predefinito è 20.*.
È possibile specificare la versione del nodo tramite un file con estensione .nvmrc o .node-version nella radice della directory dell'applicazione. BP_NODE_VERSION sostituisce le impostazioni.
BP_NODE_VERSION --build-env BP_NODE_VERSION=20.*
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere la sezione Configurare i certificati CA per le compilazioni e le implementazioni di app di Come configurare l'integrazione di APM e i certificatidella CA. N/D N/D
Integrare con Dynatrace, Elastic, New Relic, App Dynamic APM agent. Vedere Come configurare l'integrazione APM e i certificati CA. N/D N/D
Abilitare la configurazione delle etichette nell'immagine creata. Configura entrambe le etichette specificate dall'OCI con nomi brevi di variabili di ambiente ed etichette arbitrarie usando una sintassi delimitata da spazi in una singola variabile di ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Vedere altre variabili di ambiente qui.
--build-env BP_OCI_AUTHORS=<value>
Implementare un'applicazione Angular con Server di sviluppo Angular Live. Specificare l'host prima dell'esecuzione ng serve nel package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name>. Il nome di dominio dell'applicazione è disponibile nella pagina Panoramicadell'applicazione, nella sezione URL. Rimuovere il protocollo https:// prima di procedere. BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

Implementare applicazioni WebServer

Il pacchetto di build per implementare applicazioni WebServer è tanzu-buildpacks/web-servers.

Per altre informazioni, vedere Implementare filestatici Web.

Implementare applicazioni Immagine Nativa Java (anteprima)

Il pacchetto di build per implementare applicazioni di Immagine Nativa Java è tanzu-buildpacks/java-native-image.

È possibile implementare applicazioni di immagini native Spring Boot usando il tanzu-buildpacks/java-native-image pacchetto di build. Spring Native fornisce supporto per la compilazione di applicazioni Spring Boot in eseguibili nativi. Il pacchetto di build usa Liberica Native Image Kit (NIK) per creare immagini native delle applicazioni Spring Boot e queste applicazioni sono completamente supportate.

Quando si compila un'Immagine Nativa Java, è necessario impostare l'ambiente di compilazione BP_NATIVE_IMAGE a true e la risorsa di memoria di compilazione non deve essere inferiore a 8Gi. Le dimensioni del pool di agenti del servizio di compilazione non devono essere minori di 4 vCPU, 8 Gi. Per maggiori informazioni, vedere la sezione Pool di agenti di compilazione di Usare il servizio di compilazione Tanzu.

Se si vuole compilare l'immagine nativa in un'immagine contenitore di dimensioni inferiori, è consigliabile usare un generatore con il Gruppo del sistema operativoJammy Tiny. Per maggiori informazioni, vedere la sezione Consigli del gruppo del sistema operativo.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Integrare con Bellsoft OpenJDK. Configura la versione di JDK. Attualmente supportato: JDK 8, 11, 17 e 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Configurare gli argomenti per il native-image comando. Argomenti da passare direttamente al comando native-image. Questi argomenti devono essere validi e correttamente formati, altrimenti il comando native-image ha esito negativo. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere Come configurare l'integrazione APM e i certificati CA. Non applicabile. Non applicabile.
Abilitare la configurazione delle etichette nell'immagine creata Configura entrambe le etichette specificate dall'OCI con nomi brevi di variabili di ambiente ed etichette arbitrarie usando una sintassi delimitata da spazi in una singola variabile di ambiente. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Vedere altre variabili di ambiente qui.
--build-env BP_OCI_AUTHORS=<value>
Supportare la compilazione di applicazioni basate su Maven dall'origine. Usato per un progetto multi modulo. Indica il modulo in cui trovare l'artefatto dell'applicazione. Il valore predefinito è il modulo radice (vuoto). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

Esistono alcune limitazioni per Immagine Nativa Java. Per maggiori informazioni, vedere la sezione Limitazioni di Immagine Nativa Java.

Implementare applicazioni PHP

Il pacchetto di build per Implementare applicazioni PHP è tanzu-buildpacks/php.

Il pacchetto di build PHP Tanzu è compatibile solo con il Gruppo del sistema operativo Full. È consigliabile usare un generatore con il Jammy Full gruppo del sistema operativo. Per maggiori informazioni, vedere la sezione Consigli del gruppo del sistema operativo.

La tabella seguente elenca le funzionalità supportate in Azure Spring Apps:

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Specificare la versione PHP. Configura la versione PHP. Attualmente supportato: PHP 8.1.*, 8.2.*, e 8.3.*. Il valore predefinito è 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.1.*
Aggiungere certificati CA all'archivio attendibilità del sistema in fase di compilazione e runtime. Vedere la sezione Configurare i certificati CA per le compilazioni e le implementazioni di app di Come configurare l'integrazione di APM e i certificatidella CA. N/D N/D
Integrare con Dynatrace, New Relic, App Dynamic APM agent. Vedere Come configurare l'integrazione APM e i certificati CA. N/D N/D
Selezionare un Server Web. Le opzioni di impostazione sono php-server, httpd, e nginx. Il valore predefinito è php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
Configurare la directory Web. Quando il server Web è HTTPD o NGINX, per impostazione predefinita la directory Web è htdocs. Quando il server Web è il server predefinito PHP, per impostazione predefinita la directory Web è /workspace. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

Passaggi successivi