Come distribuire app polyglot nel piano Enterprise di Azure Spring Apps

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

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

Questo articolo illustra come distribuire app poliglotte nel piano Enterprise di Azure Spring Apps e come queste app poliglotte possono usare le funzionalità del servizio di compilazione fornite da buildpacks.

Prerequisiti

Distribuire applicazioni polyglot in un'istanza del servizio

Questa sezione si applica alla compilazione e alla distribuzione di applicazioni poliglotte quando il servizio di compilazione è abilitato. Se si disabilita il servizio di compilazione, è possibile distribuire applicazioni solo con un'immagine del contenitore personalizzata. È possibile creare un'immagine personalizzata o usarne una compilata da un'istanza di Azure Spring Apps Enterprise. Per altre informazioni, vedere Distribuire 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 buildpack della famiglia di linguaggio supportati seguenti:

Per altre informazioni, vedere Language Family Buildpacks for VMware Tanzu .For more information, see Language Family Buildpacks for VMware Tanzu.

Questi buildpack 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 buildpack durante la creazione o la visualizzazione di un generatore. È anche possibile creare un generatore personalizzato specificando buildpack e uno stack.

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

Screenshot del portale di Azure che mostra la pagina Compila servizio con l'elenco Generatori evidenziato.

Selezionare Aggiungi per creare un nuovo generatore. Lo screenshot seguente mostra le risorse da usare per creare il generatore personalizzato. Lo stack del sistema operativo include Bionic Base, Bionic FullJammy 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 altre informazioni, vedere la sezione Raccomandazioni dello stack 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 lo stack del sistema operativo e il nome del pacchetto di compilazione selezionato evidenziato.

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

Screenshot della portale di Azure che mostra la pagina Compila servizio con i puntini di sospensione e l'opzione di menu Modifica generatore evidenziata.

Il generatore è una risorsa che contribuisce continuamente alle distribuzioni. Fornisce le immagini di runtime più recenti e i buildpack 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. Distribuire 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.

Raccomandazioni per lo stack 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, ad esempio l'impostazione di 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.
    • Passare ad app che richiedono alcune librerie C.
    • 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 lo Full stack.

    • Node.js o app Python con estensioni native.

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

Gestire il registro contenitori

Questa sezione illustra 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 gestiti di Azure Spring Apps, è possibile 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 di 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 di sistema.

    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 di sistema. Se il registro contenitori viene usato dal servizio di compilazione, non può essere eliminato.

    Screenshot di 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 si verifica la modifica, tutti i generatori e le risorse di compilazione nel servizio di compilazione ricompilano e quindi le immagini finali del contenitore vengono sottoposte a push nel nuovo registro contenitori.

Usare la procedura seguente 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 a cui si fa riferimento per aggiornare il registro contenitori per il servizio di compilazione.

    Screenshot del portale di Azure che mostra la pagina Compila servizio con registro contenitori di riferimento evidenziato.

Compilare e distribuire applicazioni polyglot

È possibile compilare e distribuire applicazioni polyglot nei modi seguenti usando il registro contenitori:

  • Per il servizio di compilazione usando il Registro Azure Spring Apps managed container, è possibile compilare un'applicazione in un'immagine e quindi distribuirla nell'istanza corrente del servizio Azure Spring Apps. 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 distribuire l'immagine nell'istanza corrente di Azure Spring Apps Enterprise e in altre istanze. I comandi di compilazione e distribuzione sono separati. È possibile usare il comando di compilazione per creare o aggiornare una compilazione, quindi usare il comando deploy per distribuire l'immagine del contenitore nell'istanza del servizio.

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

Gli esempi seguenti illustrano 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 la distribuzione di un file di artefatto per due scenari del registro contenitori:

  • Registro Azure Spring Apps managed container.
  • Registro contenitori gestito dall'utente.

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

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 distribuisce l'app con un file di artefatto, usare --artifact-path per specificare il percorso del file. I file JAR e WAR sono 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 distribuita 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 distribuisce 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 distribuisce 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 , 500Mi1Gi, 2Gie così via. Se l'applicazione richiede una quantità minore o maggiore di risorse della CPU, usare --build-cpu per specificare le risorse della CPU, ad esempio , 500m12, 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 altre informazioni, vedere la sezione Pool di agenti di compilazione di Use Tanzu Build Service (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 build 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 Node .NET Core Go File statici Immagine nativa Java PHP
Gestione del ciclo di vita delle app ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Assegna endpoint ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Monitoraggio di Azure ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integrazione predefinita di APM ✔️
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 VMware Tanzu ✔️ ✔️
Registro dei servizi VMware Tanzu ✔️ ✔️
Visualizzazione live dell'app per VMware Tanzu ✔️ ✔️
Rete virtuale ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Indirizzo IP in uscita ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Risoluzione dei problemi avanzata - dump thread/heap/JFR ✔️
Usare risorse di archiviazione personali ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integrare l'associazione di servizi con Resource Connessione or ✔️ ✔️
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 altre informazioni sulle configurazioni supportate per app per lingue diverse, vedere la sezione corrispondente più avanti in questo articolo.

Limitazioni di Java Native Image

L'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. A causa dell'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 (Java Native Interface)
    • 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 Java Native Image. 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 create da GraalVM non supportano le metriche JVM.
Ridimensionamento: scalabilità automatica Le immagini native create da GraalVM non supportano le metriche JVM.
Integrazione predefinita di APM APM Vendor & Buildpack non supporta l'immagine nativa.
Identità gestita Gli SDK di Azure non supportano l'immagine nativa.
Risoluzione dei problemi avanzata: dump thread/heap/JFR Le immagini native compilate da GraalVM non supportano il dump thread/heap/JFR.
Debug remoto GraalVM Native Image non supporta il debug remoto.
Connessione senza password con service Connessione or Azure Java SDK non supporta l'immagine nativa.

Nota

Nelle diverse sezioni di compilazione e distribuzione 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.

Distribuire applicazioni Java

Il buildpack per la distribuzione 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 nmT (Java Native Memory Tracking). 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 distribuzioni di app di Come configurare l'integrazione di APM e i certificati della CA. N/D N/D
Eseguire l'integrazione con l'agente APM dinamico di Application Insights, Dynatrace, Elastic, New Relic. Vedere Come configurare l'integrazione di APM e i certificati della CA. N/D N/D
Distribuire il pacchetto WAR con Apache Tomcat o Tom edizione Enterprise. Impostare il server applicazioni da usare. Impostare su tomcat per usare Tomcat e tomee per usare Tom edizione Enterprise. Il valore predefinito è tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Supportare le applicazioni Spring Boot. Indica se contribuire al supporto di Spring Cloud Bindings 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 o che non esesse 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 multimodulo. 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 multimodulo. 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 e 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 è true.
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. Chiave AES da usare in fase di compilazione. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
Chiave AES da usare in fase di esecuzione. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Integrare l'agente di AspectJ Weaver . <APPLICATION_ROOT>/ aop.xml esiste ed è presente aspectj-weaver.*.jar. N/D N/D

Distribuire applicazioni .NET

Il buildpack per la distribuzione 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 di .NET Core. Supporta Net6.0, Net7.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 distribuzioni di app di Come configurare l'integrazione di APM e i certificati della CA. N/D N/D
Eseguire l'integrazione con gli agenti Dynatrace e New Relic APM. Vedere Come configurare l'integrazione di APM e i certificati della 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 e 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>

Distribuire applicazioni Python

Il buildpack per la distribuzione di 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 la variabile di ambiente durante la BP_CPYTHON_VERSION 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 distribuzioni di app di Come configurare l'integrazione di APM e i certificati della 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 e 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>

Distribuire applicazioni Go

Il buildpack per la distribuzione 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.20.*, 1.21.*. Il valore predefinito è 1.20.*.
La versione go viene rilevata automaticamente dal file go.mod dell'app. È 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.20.*
Configurare più destinazioni. Specifica 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 distribuzioni di app di Come configurare l'integrazione di APM e i certificati della CA. N/D N/D
Eseguire l'integrazione con l'agente di Dynatrace APM. Vedere Come configurare l'integrazione di APM e i certificati della 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 e 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>

Distribuire applicazioni Node.js

Il buildpack per la distribuzione di 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 esegue l'override delle impostazioni.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
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 distribuzioni di app di Come configurare l'integrazione di APM e i certificati della CA. N/D N/D
Eseguire l'integrazione con l'agente APM dinamico Dynatrace, Elastic, New Relic, App. Vedere Come configurare l'integrazione di APM e i certificati della 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 e 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>
Distribuire un'applicazione Angular con Angular Live Development Server. 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 Panoramica dell'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

Distribuire applicazioni WebServer

Il buildpack per la distribuzione di applicazioni WebServer è tanzu-buildpacks/web-servers.

Per altre informazioni, vedere Distribuire file statici Web.

Distribuire applicazioni Java Native Image (anteprima)

Il buildpack per la distribuzione di applicazioni Java Native Image è tanzu-buildpacks/java-native-image.

È possibile distribuire applicazioni di immagini native Spring Boot usando il tanzu-buildpacks/java-native-image buildpack. Spring Native fornisce supporto per la compilazione di applicazioni Spring Boot in eseguibili nativi. Il buildpack 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 BP_NATIVE_IMAGE di compilazione su e la risorsa di memoria di compilazione non deve essere inferiore a true 8Gi. Le dimensioni del pool dell'agente del servizio di compilazione non devono essere minori di 4 vCPU, 8 Gi. Per altre informazioni, vedere la sezione Pool di agenti di compilazione di Use Tanzu Build Service (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 lo stack del Jammy Tiny sistema operativo. Per altre informazioni, vedere la sezione Raccomandazioni dello stack del sistema operativo.

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

Descrizione delle funzionalità Commento Variabile di ambiente Utilizzo
Eseguire l'integrazione con Bellsoft OpenJDK. Configura la versione di JDK. Attualmente supportato: JDK 8, 11, 17 e 20. 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 oppure 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 di APM e i certificati della 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 e 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 multimodulo. 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 Java Native Image. Per altre informazioni, vedere la sezione Limitazioni di Java Native Image.

Distribuire applicazioni PHP

Il buildpack per la distribuzione di applicazioni PHP è tanzu-buildpacks/php.

Il buildpack PHP tanzu è compatibile solo con lo stack completo del sistema operativo. È consigliabile usare un generatore con lo stack del Jammy Full sistema operativo. Per altre informazioni, vedere la sezione Raccomandazioni dello stack 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.*e 8.2.*. Il valore predefinito è 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
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 distribuzioni di app di Come configurare l'integrazione di APM e i certificati della CA. N/D N/D
Eseguire l'integrazione con l'agente APM dinamico Dynatrace, New Relic, App. Vedere Come configurare l'integrazione di APM e i certificati della 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