Polyglot-apps implementeren in het Azure Spring Apps Enterprise-plan

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op:❌ Basic/Standard ✔️ Enterprise

In dit artikel wordt beschreven hoe u polyglot-apps implementeert in het Azure Spring Apps Enterprise-plan en hoe deze polyglot-apps de buildservicefuncties van buildpacks kunnen gebruiken.

Vereisten

Polyglot-toepassingen implementeren in een service-exemplaar

Deze sectie is van toepassing op het bouwen en implementeren van polyglot-toepassingen wanneer de buildservice is ingeschakeld. Als u de buildservice uitschakelt, kunt u toepassingen alleen implementeren met een aangepaste containerinstallatiekopieën. U kunt uw eigen installatiekopie maken of een installatiekopie gebruiken die is gebouwd door een Azure Spring Apps Enterprise-exemplaar. Zie Een toepassing implementeren met een aangepaste containerinstallatiekopieën voor meer informatie.

Opbouwfuncties beheren

Wanneer u een exemplaar van Azure Spring Apps Enterprise maakt, moet u een standaardbouwer kiezen uit een van de volgende ondersteunde buildpacks voor taalfamilies:

Zie Language Family Buildpacks voor VMware Tanzu voor meer informatie.

Deze buildpacks ondersteunen het bouwen met broncode of artefacten voor Java-, .NET Core-, Go-, webstatische bestanden, Node.js en Python-apps. U kunt ook buildpack-versies zien tijdens het maken of bekijken van een opbouwfunctie. En u kunt een aangepaste opbouwfunctie maken door buildpacks en een stack op te geven.

Alle bouwers die zijn geconfigureerd in een Azure Spring Apps-service-exemplaar, worden weergegeven op de pagina Build Service , zoals wordt weergegeven in de volgende schermopname:

Schermopname van Azure Portal met de pagina Build Service met de lijst Opbouwfuncties gemarkeerd.

Selecteer Toevoegen om een nieuwe opbouwfunctie te maken. In de volgende schermopname ziet u de resources die u moet gebruiken om de aangepaste opbouwfunctie te maken. De besturingssysteemstack bevat Bionic Base, Bionic Full, Jammy Tiny, en Jammy FullJammy Base. Bionic is gebaseerd op Ubuntu 18.04 (Bionic Beaver) en Jammy is gebaseerd op Ubuntu 22.04 (Jammy Jellyfish). Zie de sectie aanbevelingen voor de besturingssysteemstack voor meer informatie.

U wordt aangeraden Jammy OS Stack uw opbouwfunctie te maken omdat VMware wordt afgeschaft Bionic OS Stack.

Schermopname van Azure Portal met de pagina Opbouwfunctie toevoegen met de os-stack en de geselecteerde buildpacknaam gemarkeerd.

U kunt ook een aangepaste opbouwfunctie bewerken wanneer de opbouwfunctie niet wordt gebruikt in een implementatie. U kunt de buildpacks of de osstack bijwerken, maar de naam van de opbouwfunctie is alleen-lezen.

Schermopname van Azure Portal met de pagina Build Service met de knop met het beletselteken en de menuoptie Opbouwfunctie bewerken gemarkeerd.

De opbouwfunctie is een resource die continu bijdraagt aan uw implementaties. Het biedt de nieuwste runtime-installatiekopieën en nieuwste buildpacks.

U kunt een opbouwfunctie niet verwijderen wanneer bestaande actieve implementaties worden gebouwd met de opbouwfunctie. Als u een opbouwfunctie in deze status wilt verwijderen, gebruikt u de volgende stappen:

  1. Sla de configuratie op als een nieuwe opbouwfunctie.
  2. Apps implementeren met de nieuwe opbouwfunctie. De implementaties zijn gekoppeld aan de nieuwe opbouwfunctie.
  3. Migreer de implementaties onder de vorige opbouwfunctie naar de nieuwe opbouwfunctie.
  4. Verwijder de oorspronkelijke opbouwfunctie.

Aanbevelingen voor besturingssysteemstack

In Azure Spring Apps raden we u aan Jammy OS Stack om uw opbouwfunctie te maken, omdat Bioinic OS Stack deze in overeenstemming is met afschaffing door VMware. In de volgende lijst worden de beschikbare opties beschreven:

  • Jammy Tiny: Geschikt voor het bouwen van een minimale afbeelding voor de kleinste mogelijke grootte en de voetafdruk van de beveiliging. Net als bij het bouwen van een systeemeigen Java-installatiekopieën kan de uiteindelijke containerinstallatiekopieën kleiner worden. De geïntegreerde bibliotheken zijn beperkt. U kunt bijvoorbeeld geen verbinding maken met een app-exemplaar voor probleemoplossing omdat er geen shell bibliotheek is.

    • De meeste Go-apps.
    • Java-apps. Sommige Apache Tomcat-configuratieopties, zoals het instellen van bin/setenv.sh, zijn niet beschikbaar omdat Tiny geen shell heeft.
  • Jammy Base: Geschikt voor de meeste apps zonder systeemeigen extensies.

    • Java-apps en .NET Core-apps.
    • Go-apps waarvoor enkele C-bibliotheken zijn vereist.
    • Node.js-, Python- of Webserver-apps zonder systeemeigen extensies.
  • Jammy Full: bevat de meeste bibliotheken en is geschikt voor apps met systeemeigen extensies. Het bevat bijvoorbeeld een volledigere bibliotheek met lettertypen. Als uw app afhankelijk is van de systeemeigen extensie, gebruikt u de Full stack.

    • Node.js of Python-apps met systeemeigen extensies.

Zie Ubuntu Stacks in de VMware-documentatie voor meer informatie.

Het containerregister beheren

In deze sectie wordt beschreven hoe u het containerregister beheert dat wordt gebruikt door de buildservice als u de buildservice inschakelt met uw eigen containerregister. Als u de buildservice inschakelt met een door Azure Spring Apps beheerd containerregister, kunt u deze sectie overslaan.

Nadat u een containerregister van een gebruiker met de buildservice hebt ingeschakeld, kunt u het register weergeven en configureren met behulp van Azure Portal of de Azure CLI.

Gebruik de volgende stappen om het containerregister weer te geven, toe te voegen, te bewerken en te verwijderen:

  1. Open de Azure Portal.

  2. Selecteer Containerregister in het navigatiedeelvenster.

  3. Selecteer Toevoegen om een containerregister te maken.

    Schermopname van Azure Portal met de pagina Containerregister met de knop Containerregister toevoegen.

  4. Selecteer voor een containerregister de knop met het beletselteken (...) en selecteer vervolgens Bewerken om de registerconfiguratie weer te geven.

    Schermopname van Azure Portal met de pagina Containerregister.

  5. Controleer de waarden op de pagina Containerregister bewerken.

    Schermopname van Azure Portal met de pagina Containerregister met het deelvenster Containerregister bewerken geopend.

  6. Als u een containerregister wilt verwijderen, selecteert u de knop met het beletselteken (...) en selecteert u Verwijderen om het register te verwijderen. Als het containerregister wordt gebruikt door de buildservice, kan het niet worden verwijderd.

    Schermopname van Azure Portal met de pagina Containerregister met het deelvenster Containerregister bewerken geopend en de vakken Gebruikersnaam en Wachtwoord zijn gemarkeerd.

De buildservice kan een containerregister gebruiken en kan ook het bijbehorende containerregister wijzigen. Dit proces kost veel tijd. Wanneer de wijziging plaatsvindt, worden alle opbouw- en build-resources onder de buildservice opnieuw opgebouwd en worden de uiteindelijke containerinstallatiekopieën naar het nieuwe containerregister gepusht.

Gebruik de volgende stappen om over te schakelen naar het containerregister dat is gekoppeld aan de buildservice:

  1. Open de Azure Portal.

  2. Selecteer Build Service in het navigatiedeelvenster.

  3. Selecteer Containerregister waarnaar wordt verwezen om het containerregister voor de buildservice bij te werken.

    Schermopname van De Azure-portal met de pagina Build Service met gemarkeerd containerregister waarnaar wordt verwezen.

Polyglot-toepassingen bouwen en implementeren

U kunt polyglot-toepassingen op de volgende manieren bouwen en implementeren met behulp van het containerregister:

  • Voor de buildservice met behulp van het beheerde containerregister van Azure Spring Apps kunt u een toepassing bouwen op een installatiekopieën en deze vervolgens implementeren in het huidige Azure Spring Apps-service-exemplaar. De build en implementatie worden samen uitgevoerd met behulp van de az spring app deploy opdracht.

  • Voor de buildservice met behulp van een door de gebruiker beheerd containerregister kunt u een toepassing in een containerinstallatiekopieën bouwen en vervolgens de installatiekopieën implementeren in het huidige Azure Spring Apps Enterprise-exemplaar en andere exemplaren. De opdrachten voor bouwen en implementeren zijn gescheiden. U kunt de build-opdracht gebruiken om een build te maken of bij te werken en vervolgens de implementatieopdracht gebruiken om de containerinstallatiekopieën te implementeren in het service-exemplaar.

Zie de sectie Build-service op aanvraag van Tanzu Build Service voor meer informatie.

In de volgende voorbeelden ziet u enkele nuttige buildopdrachten die u kunt gebruiken.

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>

In de volgende Azure CLI-voorbeelden ziet u het bouwen en implementeren van een artefactbestand voor twee containerregisterscenario's:

  • Door Azure Spring Apps beheerde containerregister.
  • Door de gebruiker beheerde containerregister.

In dit voorbeeld wordt één opdracht gebouwd en geïmplementeerd. Met de volgende opdracht geeft u een opbouwfunctie op voor het bouwen van een toepassing naar een containerinstallatiekopieën en implementeert u de toepassing vervolgens rechtstreeks in het Service-exemplaar van Azure Springs Apps Enterprise.

Als u de opbouwfunctie niet opgeeft, wordt er een default opbouwfunctie gebruikt.

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>

Als u de app implementeert met een artefactbestand, gebruikt --artifact-path u dit om het bestandspad op te geven. Zowel JAR- als WAR-bestanden zijn acceptabel.

Als de Azure CLI het WAR-pakket detecteert als een thin JAR, gebruikt --disable-validation u deze optie om validatie uit te schakelen.

In het volgende voorbeeld wordt de broncodemap geïmplementeerd in een actieve implementatie met behulp van de --source-path parameter om de map op te geven.

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>

U kunt ook de buildomgeving configureren om de app te bouwen. In een Java-toepassing kunt u bijvoorbeeld de JDK-versie opgeven met behulp van de BP_JVM_VERSION build-omgeving.

Als u buildomgevingen wilt opgeven, gebruikt --build-envu deze, zoals wordt weergegeven in het volgende voorbeeld. De beschikbare buildomgevingsvariabelen worden verderop in dit artikel beschreven.

Met de volgende opdracht wordt een toepassing geïmplementeerd:

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>

Voor elke build kunt u ook de build-resources opgeven, zoals wordt weergegeven in het volgende voorbeeld.

Met de volgende opdracht wordt een toepassing geïmplementeerd:

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>

De standaard build CPU/geheugenresource is 1 vCPU, 2 Gi. Als uw toepassing een kleinere of grotere hoeveelheid geheugen nodig heeft, gebruikt --build-memory u deze om de geheugenresources op te geven, 500Mibijvoorbeeld , 1Gi, 2Gienzovoort. Als uw toepassing een kleinere of grotere hoeveelheid CPU-resources nodig heeft, gebruikt --build-cpu u deze om de CPU-resources op te geven, 500mbijvoorbeeld , 1, 2enzovoort. De maximale CPU-/geheugenresourcelimiet voor een build is 8 vCPU, 16Gi.

De CPU- en geheugenbronnen worden beperkt door de poolgrootte van de buildserviceagent. Zie de sectie Build Agent-pool van Tanzu Build Service gebruiken voor meer informatie. De som van het quotum voor het verwerken van buildresources kan niet groter zijn dan de grootte van de agentpool.

Het parallelle aantal buildtaken is afhankelijk van de grootte van de agentgroep en elke buildresource. Als de buildresource bijvoorbeeld de standaardwaarde 1 vCPU, 2 Gi is en de grootte van de agentgroep is 6 vCPU, 12 Gi, is het parallelle buildnummer 6.

Andere buildtaken worden een tijdje geblokkeerd vanwege quotumbeperkingen voor resources.

Uw toepassing moet luisteren op poort 8080. Spring Boot-toepassingen overschrijven automatisch het SERVER_PORT gebruik van 8080.

Ondersteunde talen voor implementaties

De volgende tabel geeft de functies aan die voor elke taal worden ondersteund.

Functie Java Python Knooppunt .NET Core Go Statische bestanden Systeemeigen Java-installatiekopieën PHP
Beheer van de levenscyclus van apps ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Eindpunt toewijzen ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure Monitor ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Out-of-box APM-integratie ✔️
Blauw/groen implementatie ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Aangepast domein ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Schalen - automatisch schalen ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Schalen - handmatig schalen (in/uit, omhoog/omlaag) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Beheerde identiteit ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
API-portal voor VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway voor VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Toepassingsconfiguratieservice voor VMware Tanzu ✔️ ✔️
VMware Tanzu-serviceregister ✔️ ✔️
App Live View voor VMware Tanzu ✔️ ✔️
Virtueel netwerk ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Uitgaand IP-adres ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Geavanceerde probleemoplossing - thread/heap/JFR-dump ✔️
Uw eigen opslag meenemen ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Servicebinding integreren met Resource Verbinding maken or ✔️ ✔️
Beschikbaarheidszone ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Gebeurtenissen voor de levenscyclus van apps ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Kleinere app-grootte - 0,5 vCPU en 512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
App-implementaties automatiseren met Terraform en Azure Pipeline-taak ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Voorlopig verwijderen ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Interactieve diagnostische ervaring (op basis van AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
SLA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Statustests aanpassen ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Web Shell Connect voor probleemoplossing ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
Foutopsporing op afstand ✔️

Zie de bijbehorende sectie verderop in dit artikel voor meer informatie over de ondersteunde configuraties voor verschillende taal-apps.

Beperkingen voor systeemeigen Java-installatiekopieën

Systeemeigen installatiekopieën is een technologie voor het compileren van Java-code van tevoren naar een systeemeigen uitvoerbaar bestand. Systeemeigen installatiekopieën bieden verschillende voordelen, zoals een direct opstarten en minder geheugenverbruik. U kunt systeemeigen installatiekopieën verpakken in een lichtgewicht containerinstallatiekopieën voor snellere en efficiëntere implementatie. Vanwege de Closed World Optimization gelden de volgende beperkingen :

  • Voor de volgende Java-functies is configuratie vereist op uitvoerbare buildtijd:
    • Dynamisch laden van klasse
    • Reflectie
    • Dynamische proxy
    • JNI (Java Native Interface)
    • Serialization
  • Bytecode is niet meer beschikbaar tijdens runtime, dus foutopsporing en bewaking met hulpprogramma's die zijn gericht op de JVMTI is niet mogelijk.

De volgende functies worden niet ondersteund in Azure Spring Apps vanwege de beperking van systeemeigen Java-installatiekopie. Azure Spring Apps ondersteunt deze wanneer de Java Native Image en de community de beperking overwinnen.

Functie Waarom het niet wordt ondersteund
Azure Monitor Ingebouwde graalVM-installatiekopieën bieden geen ondersteuning voor metrische JVM-gegevens.
Schalen : automatisch schalen Ingebouwde graalVM-installatiekopieën bieden geen ondersteuning voor metrische JVM-gegevens.
Out-of-box APM-integratie APM Vendor & Buildpack biedt geen ondersteuning voor systeemeigen installatiekopieën.
Beheerde identiteit Azure SDK's bieden geen ondersteuning voor systeemeigen installatiekopieën.
Geavanceerde probleemoplossing : thread/heap/JFR-dump GraalVM ingebouwde installatiekopieën bieden geen ondersteuning voor thread/heap/JFR-dump.
Foutopsporing op afstand GraalVM Native Image biedt geen ondersteuning voor externe foutopsporing.
Verbinding zonder wachtwoord met service Verbinding maken or Azure Java SDK biedt geen ondersteuning voor systeemeigen installatiekopieën.

Notitie

In de volgende verschillende secties voor het bouwen en implementeren van talen betekent --build-env dit dat de omgeving wordt gebruikt in de buildfase. --env betekent dat de omgeving wordt gebruikt in de runtimefase.

U wordt aangeraden de taalversie op te geven voor het geval de standaardversie wordt gewijzigd. Gebruik bijvoorbeeld --build-env BP_JVM_VERSION=11.* om Java 11 op te geven als de JDK-versie. Voor andere talen kunt u de naam van de omgevingsvariabele ophalen in de volgende beschrijvingen voor elke taal.

Java-toepassingen implementeren

Het buildpack voor het implementeren van Java-toepassingen is tanzu-buildpacks/java-azure.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Biedt de Microsoft OpenJDK. Hiermee configureert u de JVM-versie. De standaardversie van JDK is 17. Momenteel ondersteund: JDK 8, 11, 17 en 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
Runtime-env. Hiermee configureert u of Java Native Memory Tracking (NMT) is ingeschakeld. De standaardwaarde is waar. Niet ondersteund in JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Hiermee configureert u het detailniveau voor nmt-uitvoer (Java Native Memory Tracking). De standaardwaarde is een samenvatting. Ingesteld op detail voor gedetailleerde NMT-uitvoer. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie de sectie CA-certificaten configureren voor app-builds en -implementaties van het configureren van APM-integratie en CA-certificaten. N.v.t. N.v.t.
Integreer met Application Insights, Dynatrace, Elastic, New Relic, App Dynamic APM-agent. Zie APM-integratie en CA-certificaten configureren. N.v.t. N.v.t.
War-pakket implementeren met Apache Tomcat of TomEE. Stel de toepassingsserver in voor gebruik. Ingesteld op tomcat om Tomcat en tomee te gebruiken om TomEE te gebruiken. De standaardwaarde is tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Ondersteuning voor Spring Boot-toepassingen. Hiermee wordt aangegeven of Spring Cloud Bindings-ondersteuning voor de installatiekopieën tijdens de build moet worden ondersteund. De standaardwaarde is onwaar. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
Hiermee wordt aangegeven of de eigenschappen van de Spring Boot-omgeving automatisch moeten worden geconfigureerd vanuit bindingen tijdens runtime. Voor deze functie moeten Spring Cloud Bindings al zijn geïnstalleerd tijdens de build of dat er niets gebeurt. De standaardwaarde is onwaar. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
Ondersteuning voor het bouwen van op Maven gebaseerde toepassingen uit de bron. Wordt gebruikt voor een project met meerdere modules. Geeft de module aan waarin het toepassingsartefact moet worden gevonden. Standaard ingesteld op de hoofdmodule (leeg). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
Ondersteuning voor het bouwen van op Gradle gebaseerde toepassingen van de bron. Wordt gebruikt voor een project met meerdere modules. Geeft de module aan waarin het toepassingsartefact moet worden gevonden. Standaard ingesteld op de hoofdmodule (leeg). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
Schakel de configuratie van labels in op de gemaakte installatiekopieën. Hiermee configureert u beide OCI-opgegeven labels met korte namen van omgevingsvariabelen en willekeurige labels met behulp van een door spaties gescheiden syntaxis in één omgevingsvariabele. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Bekijk hier meer omgevingsvariabelen.
--build-env BP_OCI_AUTHORS=<value>
JProfiler-agent integreren. Geeft aan of JProfiler-ondersteuning moet worden geïntegreerd. De standaardwaarde is onwaar. BP_JPROFILER_ENABLED buildfase:
--build-env BP_JPROFILER_ENABLED=true
runtimefase:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (optioneel, standaard ingesteld op 8849)
BPL_JPROFILER_NOWAIT=true (optioneel. Geeft aan of de JVM wordt uitgevoerd voordat JProfiler wordt gekoppeld. De standaardwaarde is waar.)
Geeft aan of JProfiler-ondersteuning tijdens runtime moet worden ingeschakeld. De standaardwaarde is onwaar. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
Geeft aan op welke poort de JProfiler-agent luistert. De standaardwaarde is 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
Geeft aan of de JVM wordt uitgevoerd voordat JProfiler wordt gekoppeld. De standaardwaarde is waar. BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
JRebel-agent integreren. De toepassing moet een rebel-remote.xml bestand bevatten. N.v.t. N.v.t.
AES versleutelt een toepassing tijdens de build en ontsleutelt deze vervolgens bij het starten. De AES-sleutel die tijdens de build moet worden gebruikt. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
De AES-sleutel die tijdens runtime moet worden gebruikt. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Integreer AspectJ Weaver-agent . <APPLICATION_ROOT>/ aop.xml bestaat en aspectj-weaver.*.jar bestaat. N.v.t. N.v.t.

.NET-toepassingen implementeren

Het buildpack voor het implementeren van .NET-toepassingen is tanzu-buildpacks/dotnet-core.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Configureer de .NET Core Runtime-versie. Ondersteunt Net6.0, Net7.0 en Net8.0.
U kunt configureren via een runtimeconfig.json - of MSBuild Project-bestand.
De standaardruntime is 6.0.*.
N.v.t. N.v.t.
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie de sectie CA-certificaten configureren voor app-builds en -implementaties van het configureren van APM-integratie en CA-certificaten. N.v.t. N.v.t.
Integreer met de Dynatrace- en New Relic APM-agents. Zie APM-integratie en CA-certificaten configureren. N.v.t. N.v.t.
Schakel de configuratie van labels in op de gemaakte installatiekopieën. Hiermee configureert u beide OCI-opgegeven labels met korte namen van omgevingsvariabelen en willekeurige labels met behulp van een door spaties gescheiden syntaxis in één omgevingsvariabele. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Bekijk hier meer omgevingsvariabelen.
--build-env BP_OCI_AUTHORS=<value>

Python-toepassingen implementeren

Het buildpack voor het implementeren van Python-toepassingen is tanzu-buildpacks/python.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Geef een Python-versie op. Ondersteunt 3.8.*, 3.9.*, 3.10.*, 3.11.*, 3.12.*. De standaardwaarde is 3.10.*
U kunt de versie opgeven via de omgevingsvariabele tijdens de BP_CPYTHON_VERSION build.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie de sectie CA-certificaten configureren voor app-builds en -implementaties van het configureren van APM-integratie en CA-certificaten. N.v.t. N.v.t.
Schakel de configuratie van labels in op de gemaakte installatiekopieën. Hiermee configureert u beide OCI-opgegeven labels met korte namen van omgevingsvariabelen en willekeurige labels met behulp van een door spaties gescheiden syntaxis in één omgevingsvariabele. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Bekijk hier meer omgevingsvariabelen.
--build-env BP_OCI_AUTHORS=<value>

Go-toepassingen implementeren

Het buildpack voor het implementeren van Go-toepassingen is tanzu-buildpacks/go.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Geef een Go-versie op. Ondersteunt 1.20.*, 1.21.*. De standaardwaarde is 1.20.*.
De Go-versie wordt automatisch gedetecteerd vanuit het bestand go.mod van de app. U kunt deze versie overschrijven door de omgevingsvariabele in te stellen tijdens de BP_GO_VERSION build.
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
Meerdere doelen configureren. Hiermee geeft u meerdere doelen voor een Go-build. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie de sectie CA-certificaten configureren voor app-builds en -implementaties van het configureren van APM-integratie en CA-certificaten. N.v.t. N.v.t.
Integreer met Dynatrace APM-agent. Zie APM-integratie en CA-certificaten configureren. N.v.t. N.v.t.
Schakel de configuratie van labels in op de gemaakte installatiekopieën. Hiermee configureert u beide OCI-opgegeven labels met korte namen van omgevingsvariabelen en willekeurige labels met behulp van een door spaties gescheiden syntaxis in één omgevingsvariabele. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Bekijk hier meer omgevingsvariabelen.
--build-env BP_OCI_AUTHORS=<value>

Node.js-toepassingen implementeren

Het buildpack voor het implementeren van Node.js toepassingen is tanzu-buildpacks/nodejs.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Geef een Node-versie op. Ondersteunt 16.*, 18.*, 19.*, 20.*. De standaardwaarde is 20.*.
U kunt de knooppuntversie opgeven via een .nvmrc - of .node-version-bestand in de hoofdmap van de toepassingsmap. BP_NODE_VERSION overschrijft de instellingen.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie de sectie CA-certificaten configureren voor app-builds en -implementaties van het configureren van APM-integratie en CA-certificaten. N.v.t. N.v.t.
Integreer met Dynatrace, Elastic, New Relic, App Dynamic APM-agent. Zie APM-integratie en CA-certificaten configureren. N.v.t. N.v.t.
Schakel de configuratie van labels in op de gemaakte installatiekopieën. Hiermee configureert u beide OCI-opgegeven labels met korte namen van omgevingsvariabelen en willekeurige labels met behulp van een door spaties gescheiden syntaxis in één omgevingsvariabele. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Bekijk hier meer omgevingsvariabelen.
--build-env BP_OCI_AUTHORS=<value>
Implementeer een Angular-toepassing met Angular Live Development Server. Geef de host op voordat deze wordt uitgevoerd ng serve in de package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name>. De domeinnaam van de toepassing is beschikbaar op de pagina Overzicht van de toepassing, in de sectie URL. Verwijder het protocol https:// voordat u doorgaat. BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

WebServertoepassingen implementeren

Het buildpack voor het implementeren van webservertoepassingen is tanzu-buildpacks/webservers.

Zie Statische webbestanden implementeren voor meer informatie.

Java Native Image-toepassingen implementeren (preview)

Het buildpack voor het implementeren van Java Native Image-toepassingen is tanzu-buildpacks/java-native-image.

U kunt systeemeigen Spring Boot-installatiekopietoepassingen implementeren met behulp van het tanzu-buildpacks/java-native-image buildpack. Spring Native biedt ondersteuning voor het compileren van Spring Boot-toepassingen in systeemeigen uitvoerbare bestanden. Het buildpack maakt gebruik van Liberica Native Image Kit (NIK) om systeemeigen installatiekopieën van Spring Boot-toepassingen te maken en deze toepassingen worden volledig ondersteund.

Wanneer u een systeemeigen Java-installatiekopieën bouwt, moet u de buildomgeving BP_NATIVE_IMAGEtrue instellen op en mag de buildgeheugenresource niet kleiner zijn dan 8Gi. De grootte van de pool van de buildserviceagent mag niet kleiner zijn dan 4 vCPU, 8 Gi. Zie de sectie Build Agent-pool van Tanzu Build Service gebruiken voor meer informatie.

Als u de systeemeigen installatiekopieën wilt bouwen in een containerinstallatiekopieën van kleinere grootte, raden we u aan een opbouwfunctie te gebruiken met de Jammy Tiny besturingssysteemstack. Zie de sectie aanbevelingen voor de besturingssysteemstack voor meer informatie.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Integreer met Bellsoft OpenJDK. Hiermee configureert u de JDK-versie. Momenteel ondersteund: JDK 8, 11, 17 en 20. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Configureer argumenten voor de native-image opdracht. Argumenten om rechtstreeks door te geven aan de opdracht systeemeigen installatiekopieën. Deze argumenten moeten geldig en correct zijn gevormd of de opdracht systeemeigen installatiekopieën mislukken. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie APM-integratie en CA-certificaten configureren. Niet van toepassing. Niet van toepassing.
Configuratie van labels inschakelen op de gemaakte installatiekopieën Hiermee configureert u beide OCI-opgegeven labels met korte namen van omgevingsvariabelen en willekeurige labels met behulp van een door spaties gescheiden syntaxis in één omgevingsvariabele. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Bekijk hier meer omgevingsvariabelen.
--build-env BP_OCI_AUTHORS=<value>
Ondersteuning voor het bouwen van op Maven gebaseerde toepassingen uit de bron. Wordt gebruikt voor een project met meerdere modules. Geeft de module aan waarin het toepassingsartefact moet worden gevonden. Standaard ingesteld op de hoofdmodule (leeg). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

Er zijn enkele beperkingen voor Java Native Image. Zie de sectie Beperkingen van Java Native Image voor meer informatie.

PHP-toepassingen implementeren

Het buildpack voor het implementeren van PHP-toepassingen is tanzu-buildpacks/php.

Het Tanzu PHP-buildpack is alleen compatibel met de Full OS Stack. U wordt aangeraden een opbouwfunctie te gebruiken met de Jammy Full besturingssysteemstack. Zie de sectie aanbevelingen voor de besturingssysteemstack voor meer informatie.

De volgende tabel bevat de functies die worden ondersteund in Azure Spring Apps:

Functiebeschrijving Opmerking Omgevingsvariabele Gebruik
Geef de PHP-versie op. Hiermee configureert u de PHP-versie. Momenteel ondersteund: PHP 8.1.*en 8.2.*. De standaardwaarde is 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
Ca-certificaten toevoegen aan het systeemvertrouwensarchief tijdens build en runtime. Zie de sectie CA-certificaten configureren voor app-builds en -implementaties van het configureren van APM-integratie en CA-certificaten. N.v.t. N.v.t.
Integreer met Dynatrace, New Relic, App Dynamic APM-agent. Zie APM-integratie en CA-certificaten configureren. N.v.t. N.v.t.
Selecteer een webserver. De instellingsopties zijn php-server, httpd en nginx. De standaardwaarde is php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
Webmap configureren. Wanneer de webserver HTTPD of NGINX is, wordt de webmap standaard ingesteld op htdocs. Wanneer de webserver de ingebouwde PHP-server is, wordt de webmap standaard ingesteld op /workspace. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

Volgende stappen