How to deploy polyglot apps in the Azure Spring Apps Enterprise plan (Jak wdrażać aplikacje wielolotowe w planie Azure Spring Apps Enterprise)

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy:❌ Podstawowa/Standardowa ✔️ Enterprise

W tym artykule pokazano, jak wdrażać aplikacje wielolotowe w planie Azure Spring Apps Enterprise oraz jak te aplikacje wielolotowe mogą korzystać z funkcji usługi kompilacji udostępnianych przez pakiety kompilacji.

Wymagania wstępne

Wdrażanie aplikacji wielolotowych w wystąpieniu usługi

Ta sekcja dotyczy kompilowania i wdrażania aplikacji wielolotowych po włączeniu usługi kompilacji. Jeśli wyłączysz usługę kompilacji, możesz wdrażać aplikacje tylko przy użyciu niestandardowego obrazu kontenera. Możesz utworzyć własny obraz lub użyć go utworzonego przez wystąpienie usługi Azure Spring Apps Enterprise. Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji przy użyciu niestandardowego obrazu kontenera.

Zarządzanie konstruktorami

Podczas tworzenia wystąpienia usługi Azure Spring Apps Enterprise należy wybrać konstruktora domyślnego z jednego z następujących pakietów kompilacji rodziny języków obsługiwanych:

Aby uzyskać więcej informacji, zobacz Language Family Buildpacks for VMware Tanzu (Pakiety kompilacji rodziny języków dla oprogramowania VMware Tanzu).

Te pakiety kompilacji obsługują tworzenie za pomocą kodu źródłowego lub artefaktów dla języków Java, .NET Core, Go, web static files, Node.js i Python. Wersje pakietu buildpack można również zobaczyć podczas tworzenia lub wyświetlania konstruktora. Możesz również utworzyć konstruktora niestandardowego, określając pakiety kompilacji i stos.

Wszystkie konstruktory skonfigurowane w wystąpieniu usługi Azure Spring Apps są wyświetlane na stronie Usługa kompilacji, jak pokazano na poniższym zrzucie ekranu:

Zrzut ekranu witryny Azure Portal przedstawiający stronę Usługi kompilacji z wyróżnioną listą Konstruktory.

Wybierz pozycję Dodaj , aby utworzyć nowego konstruktora. Poniższy zrzut ekranu przedstawia zasoby, których należy użyć do utworzenia konstruktora niestandardowego. Stos systemu operacyjnego zawiera Bionic Basewartości , , Jammy TinyBionic Full, Jammy Basei Jammy Full. Bionic jest oparty na Ubuntu 18.04 (Bionic Beaver) i Jammy jest oparty na Ubuntu 22.04 (Jammy Jellyfish). Aby uzyskać więcej informacji, zobacz sekcję Zalecenia dotyczące stosu systemu operacyjnego.

Zalecamy użycie polecenia Jammy OS Stack w celu utworzenia konstruktora, ponieważ program VMware jest przestarzały Bionic OS Stack.

Zrzut ekranu witryny Azure Portal przedstawiający stronę Dodawanie konstruktora z wyróżnionym stosem systemu operacyjnego i wybraną nazwą pakietu kompilacji.

Można również edytować konstruktora niestandardowego, gdy konstruktor nie jest używany we wdrożeniu. Pakiety kompilacji lub stos systemu operacyjnego można zaktualizować, ale nazwa konstruktora jest tylko do odczytu.

Zrzut ekranu witryny Azure Portal przedstawiający stronę Usługi kompilacji z wyróżnionym przyciskiem wielokropka i opcją menu Edytuj konstruktora.

Konstruktor to zasób, który stale przyczynia się do wdrożeń. Udostępnia najnowsze obrazy środowiska uruchomieniowego i najnowsze pakiety kompilacji.

Nie można usunąć konstruktora, gdy istniejące aktywne wdrożenia są kompilowane za pomocą konstruktora. Aby usunąć konstruktora w tym stanie, wykonaj następujące czynności:

  1. Zapisz konfigurację jako nowy konstruktor.
  2. Wdrażanie aplikacji za pomocą nowego konstruktora. Wdrożenia są połączone z nowym konstruktorem.
  3. Przeprowadź migrację wdrożeń w ramach poprzedniego konstruktora do nowego konstruktora.
  4. Usuń oryginalnego konstruktora.

Zalecenia dotyczące stosu systemu operacyjnego

W usłudze Azure Spring Apps zalecamy użycie polecenia Jammy OS Stack , aby utworzyć konstruktora, ponieważ Bioinic OS Stack jest w kolejce do wycofania przez program VMware. Poniższa lista zawiera opis dostępnych opcji:

  • Jammy Tiny: Nadaje się do tworzenia minimalnego obrazu dla najmniejszego możliwego rozmiaru i śladu bezpieczeństwa. Podobnie jak w przypadku tworzenia obrazu natywnego języka Java, może on zmniejszyć końcowy obraz kontenera. Biblioteki zintegrowane są ograniczone. Na przykład nie można nawiązać połączenia z wystąpieniem aplikacji na potrzeby rozwiązywania problemów , ponieważ nie shell ma biblioteki.

    • Większość aplikacji języka Go.
    • Aplikacje Java. Niektóre opcje konfiguracji serwera Apache Tomcat, takie jak ustawienie bin/setenv.sh, nie są dostępne, ponieważ program Tiny nie ma powłoki.
  • Jammy Base: nadaje się do większości aplikacji bez rozszerzeń natywnych.

    • Aplikacje Java i aplikacje platformy .NET Core.
    • Aplikacje języka Go, które wymagają niektórych bibliotek języka C.
    • aplikacje Node.js, Python lub Web Servers bez rozszerzeń natywnych.
  • Jammy Full: zawiera większość bibliotek i nadaje się do aplikacji z rozszerzeniami natywnymi. Na przykład zawiera bardziej pełną bibliotekę czcionek. Jeśli aplikacja korzysta z rozszerzenia natywnego, użyj stosu Full .

    • Node.js lub aplikacje języka Python z rozszerzeniami natywnymi.

Aby uzyskać więcej informacji, zobacz Ubuntu Stacks w dokumentacji programu VMware.

Zarządzanie rejestrem kontenerów

W tej sekcji pokazano, jak zarządzać rejestrem kontenerów używanym przez usługę kompilacji, jeśli włączysz usługę kompilacji przy użyciu własnego rejestru kontenerów. Jeśli włączysz usługę kompilacji przy użyciu zarządzanego rejestru kontenerów usługi Azure Spring Apps, możesz pominąć tę sekcję.

Po włączeniu rejestru kontenerów użytkownika za pomocą usługi kompilacji można wyświetlić i skonfigurować rejestr przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Wykonaj następujące kroki, aby wyświetlić, dodać, edytować i usunąć rejestr kontenerów:

  1. Otwórz portal Azure Portal.

  2. Wybierz pozycję Rejestr kontenerów w okienku nawigacji.

  3. Wybierz pozycję Dodaj , aby utworzyć rejestr kontenerów.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę rejestru kontenerów z przyciskiem Dodaj rejestr kontenerów.

  4. W przypadku rejestru kontenerów wybierz przycisk wielokropka (...), a następnie wybierz pozycję Edytuj , aby wyświetlić konfigurację rejestru.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę rejestru kontenerów.

  5. Przejrzyj wartości na stronie Edytowanie rejestru kontenerów.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę rejestru kontenerów z otwartym okienkiem Edytowanie rejestru kontenerów.

  6. Aby usunąć rejestr kontenerów, wybierz przycisk wielokropka (...), a następnie wybierz pozycję Usuń , aby usunąć rejestr. Jeśli rejestr kontenerów jest używany przez usługę kompilacji, nie można go usunąć.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę rejestru kontenerów z wyróżnionymi polami Edytowanie rejestru kontenerów oraz Pola Nazwa użytkownika i Hasło.

Usługa kompilacji może używać rejestru kontenerów, a także zmieniać skojarzony rejestr kontenerów. Ten proces jest czasochłonny. W przypadku zmiany wszystkie zasoby konstruktora i kompilacji w ramach ponownego kompilowania usługi kompilacji, a następnie końcowe obrazy kontenerów zostaną wypchnięte do nowego rejestru kontenerów.

Wykonaj następujące kroki, aby przełączyć rejestr kontenerów skojarzony z usługą kompilacji:

  1. Otwórz portal Azure Portal.

  2. Wybierz pozycję Build Service (Usługa kompilacji) w okienku nawigacji.

  3. Wybierz pozycję Dokumentacja rejestru kontenerów, aby zaktualizować rejestr kontenerów dla usługi kompilacji.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Usługi kompilacji z wyróżnionym rejestrem kontenerów.

Kompilowanie i wdrażanie aplikacji wielolotowych

Aplikacje wielolotowe można tworzyć i wdrażać w następujący sposób przy użyciu rejestru kontenerów:

  • W przypadku usługi kompilacji korzystającej z zarządzanego rejestru kontenerów usługi Azure Spring Apps można utworzyć aplikację na obrazie, a następnie wdrożyć ją w bieżącym wystąpieniu usługi Azure Spring Apps. Kompilacja i wdrożenie są wykonywane razem przy użyciu az spring app deploy polecenia .

  • W przypadku usługi kompilacji przy użyciu rejestru kontenerów zarządzanego przez użytkownika możesz skompilować aplikację w obrazie kontenera, a następnie wdrożyć obraz w bieżącym wystąpieniu usługi Azure Spring Apps Enterprise i innych wystąpieniach. Polecenia kompilacji i wdrażania są oddzielne. Możesz użyć polecenia kompilacji, aby utworzyć lub zaktualizować kompilację, a następnie użyć polecenia deploy, aby wdrożyć obraz kontenera w wystąpieniu usługi.

Aby uzyskać więcej informacji, zobacz sekcję Build service on demand (Tworzenie usługi na żądanie ) w temacie Use Tanzu Build Service (Korzystanie z usługi Tanzu Build Service).

W poniższych przykładach przedstawiono kilka przydatnych poleceń kompilacji do użycia.

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>

W poniższych przykładach interfejsu wiersza polecenia platformy Azure pokazano kompilowanie i wdrażanie pliku artefaktu dla dwóch scenariuszy rejestru kontenerów:

  • Zarządzany rejestr kontenerów usługi Azure Spring Apps.
  • Rejestr kontenerów zarządzany przez użytkownika.

Ten przykład kompiluje i wdraża w jednym poleceniu. Następujące polecenie określa konstruktora, aby skompilować aplikację do obrazu kontenera, a następnie wdroży aplikację bezpośrednio w wystąpieniu usługi Azure Springs Apps Enterprise.

Jeśli nie określisz konstruktora, default zostanie użyty konstruktor.

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>

Jeśli wdrożysz aplikację z plikiem artefaktu, użyj polecenia --artifact-path , aby określić ścieżkę pliku. Pliki JAR i WAR są dopuszczalne.

Jeśli interfejs wiersza polecenia platformy Azure wykryje pakiet WAR jako cienki plik JAR, użyj polecenia --disable-validation , aby wyłączyć walidację.

Poniższy przykład wdraża folder kodu źródłowego w aktywnym wdrożeniu przy użyciu parametru --source-path w celu określenia folderu.

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>

Możesz również skonfigurować środowisko kompilacji w celu skompilowania aplikacji. Na przykład w aplikacji Java można określić wersję zestawu JDK przy użyciu środowiska kompilacji BP_JVM_VERSION .

Aby określić środowiska kompilacji, użyj polecenia --build-env, jak pokazano w poniższym przykładzie. Dostępne zmienne środowiskowe kompilacji zostały opisane w dalszej części tego artykułu.

Następujące polecenie wdraża aplikację:

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>

Dla każdej kompilacji można również określić zasoby kompilacji, jak pokazano w poniższym przykładzie.

Następujące polecenie wdraża aplikację:

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>

Domyślnym zasobem kompilacji procesora CPU/pamięci jest 1 vCPU, 2 Gi. Jeśli aplikacja potrzebuje mniejszej lub większej ilości pamięci, użyj polecenia --build-memory , aby określić zasoby pamięci — na przykład 500Mi, , 1Gi2Gii tak dalej. Jeśli aplikacja potrzebuje mniejszej lub większej ilości zasobów procesora CPU, użyj polecenia --build-cpu , aby określić zasoby procesora CPU — na przykład 500m, , 21i tak dalej. Maksymalny limit zasobów procesora CPU/pamięci dla kompilacji to 8 vCPU, 16Gi.

Zasoby procesora CPU i pamięci są ograniczone przez rozmiar puli agentów usługi kompilacji. Aby uzyskać więcej informacji, zobacz sekcję Tworzenie puli agentów w temacie Use Tanzu Build Service (Korzystanie z usługi Tanzu Build Service). Suma przydziału zasobów kompilacji przetwarzania nie może przekraczać rozmiaru puli agentów.

Równoległa liczba zadań kompilacji zależy od rozmiaru puli agentów i każdego zasobu kompilacji. Jeśli na przykład zasób kompilacji jest domyślny 1 vCPU, 2 Gi , a rozmiar puli agentów to 6 vCPU, 12 Gi, numer kompilacji równoległej to 6.

Inne zadania kompilacji są blokowane przez pewien czas z powodu ograniczeń przydziału zasobów.

Aplikacja musi nasłuchiwać na porcie 8080. Aplikacje Spring Boot zastępują metodę SERVER_PORT , aby automatycznie używać 8080.

Obsługiwane języki dla wdrożeń

W poniższej tabeli przedstawiono funkcje obsługiwane dla każdego języka.

Funkcja Java Python Węzeł .NET Core Go Pliki statyczne Obraz natywny języka Java PHP
Zarządzanie cyklem życia aplikacji ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Przypisywanie punktu końcowego ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure Monitor ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integracja out of box APM ✔️
Wdrożenie niebieskie/zielone ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Domena niestandardowa ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Skalowanie — skalowanie automatyczne ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Skalowanie — skalowanie ręczne (w/wy, w górę/w dół) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Tożsamość zarządzana ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Portal interfejsu API dla programu VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway for VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Usługa konfiguracji aplikacji dla programu VMware Tanzu ✔️ ✔️
Rejestr usługi VMware Tanzu ✔️ ✔️
Widok na żywo aplikacji dla programu VMware Tanzu ✔️ ✔️
Sieć wirtualna ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Wychodzący adres IP ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Zaawansowane rozwiązywanie problemów — zrzut wątku/sterta/JFR ✔️
Model dostarczania własnego magazynu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Integrowanie powiązania usługi z usługą Resource Połączenie or ✔️ ✔️
Strefa dostępności ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Zdarzenia cyklu życia aplikacji ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Zmniejszony rozmiar aplikacji — 0,5 procesorów wirtualnych i 512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Automatyzowanie wdrożeń aplikacji za pomocą narzędzia Terraform i zadania potoku platformy Azure ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Usuwanie nietrwałe ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Interaktywne środowisko diagnostyczne (oparte na usłudze AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
SLA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Dostosowywanie sond kondycji ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Nawiązywanie połączenia z powłoką internetową na potrzeby rozwiązywania problemów ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
Debugowanie zdalne ✔️

Aby uzyskać więcej informacji na temat obsługiwanych konfiguracji dla różnych aplikacji językowych, zobacz odpowiednią sekcję w dalszej części tego artykułu.

Ograniczenia obrazów natywnych języka Java

Obraz natywny to technologia do kompilowania kodu Java przed upływem czasu do natywnego pliku wykonywalnego. Obrazy natywne zapewniają różne zalety, takie jak natychmiastowe uruchamianie i mniejsze zużycie pamięci. Obrazy natywne można spakować do uproszczonego obrazu kontenera w celu szybszego i bardziej wydajnego wdrożenia. Ze względu na optymalizację zamkniętego świata obowiązują następujące ograniczenia :

  • Następujące funkcje języka Java wymagają konfiguracji w czasie kompilacji wykonywalnego:
    • Dynamiczne ładowanie klas
    • Odbicie
    • Dynamiczny serwer proxy
    • JNI (interfejs macierzysty Java)
    • Serializacja
  • Kod bajtowy nie jest już dostępny w czasie wykonywania, więc debugowanie i monitorowanie za pomocą narzędzi przeznaczonych dla JVMTI nie jest możliwe.

Poniższe funkcje nie są obsługiwane w usłudze Azure Spring Apps ze względu na ograniczenie obrazu natywnego języka Java. Usługa Azure Spring Apps będzie obsługiwać je, gdy obraz macierzysty Java i społeczność przezwycięży ograniczenia.

Funkcja Dlaczego nie jest obsługiwana
Azure Monitor Wbudowane obrazy natywne GraalVM nie obsługują metryk JVM.
Skalowanie — skalowanie automatyczne Wbudowane obrazy natywne GraalVM nie obsługują metryk JVM.
Integracja out-of-box APM Pakiet APM Vendor &Buildpack nie obsługuje obrazu natywnego.
Tożsamość zarządzana Zestawy SDK platformy Azure nie obsługują obrazu natywnego.
Zaawansowane rozwiązywanie problemów — zrzut wątku/sterta/JFR Wbudowane obrazy natywne GraalVM nie obsługują zrzutu wątku/sterty/JFR.
Debugowanie zdalne Obraz natywny GraalVM nie obsługuje debugowania zdalnego.
Połączenie bez hasła przy użyciu usługi Połączenie or Zestaw Azure Java SDK nie obsługuje obrazu natywnego.

Uwaga

W poniższych sekcjach kompilacji i wdrażania konfiguracji języka oznacza, --build-env że środowisko jest używane w fazie kompilacji. --env oznacza, że środowisko jest używane w fazie wykonywania.

Zalecamy określenie wersji językowej w przypadku zmiany wersji domyślnej. Na przykład użyj polecenia --build-env BP_JVM_VERSION=11.* , aby określić język Java 11 jako wersję zestawu JDK. W przypadku innych języków można uzyskać nazwę zmiennej środowiskowej w poniższych opisach dla każdego języka.

Wdrażanie aplikacji Java

Pakiet buildpack do wdrażania aplikacji Java to tanzu-buildpacks/java-azure.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Udostępnia zestaw Microsoft OpenJDK. Konfiguruje wersję maszyny JVM. Domyślna wersja zestawu JDK to 17. Obecnie obsługiwane: JDK 8, 11, 17 i 21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
Środowisko uruchomieniowe env. Określa, czy jest włączone śledzenie pamięci natywnej języka Java (NMT). Wartość domyślna to true. Nieobsługiwane w zestawie JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
Konfiguruje poziom szczegółowości danych wyjściowych śledzenia pamięci natywnej języka Java (NMT). Wartość domyślna to podsumowanie. Ustaw wartość szczegółów dla szczegółowych danych wyjściowych NMT. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz sekcję Configure CA certificates for app builds and deployments (Konfigurowanie certyfikatów urzędu certyfikacji dla kompilacji i wdrożeń aplikacji) w temacie How to configure APM integration and CA certificates (Jak skonfigurować integrację z usługą APM i certyfikaty urzędu certyfikacji). Brak Brak
Integracja z programem Application Szczegółowe informacje, Dynatrace, Elastic, New Relic, App Dynamic APM agent. Zobacz Jak skonfigurować integrację usługi APM i certyfikaty urzędu certyfikacji. Brak Brak
Wdrażanie pakietu WAR za pomocą serwera Apache Tomcat lub TomEE. Ustaw serwer aplikacji do użycia. Ustaw wartość tomcat, aby używać serwera Tomcat i tomee do używania tomEE. Wartość domyślna to tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
Obsługa aplikacji Spring Boot. Wskazuje, czy współtworzyć powiązania Spring Cloud dla obrazu w czasie kompilacji. Domyślna wartość to false. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
Wskazuje, czy automatycznie skonfigurować właściwości środowiska Spring Boot z powiązań w czasie wykonywania. Ta funkcja wymaga, aby powiązania platformy Spring Cloud zostały już zainstalowane w czasie kompilacji lub nic nie robi. Domyślna wartość to false. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
Obsługa tworzenia aplikacji opartych na narzędziu Maven ze źródła. Używany w projekcie z wieloma modułami. Wskazuje moduł do znalezienia artefaktu aplikacji. Wartość domyślna modułu głównego (jest pusta). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
Obsługa tworzenia aplikacji opartych na języku Gradle ze źródła. Używany w projekcie z wieloma modułami. Wskazuje moduł do znalezienia artefaktu aplikacji. Wartość domyślna modułu głównego (jest pusta). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
Włącz konfigurację etykiet na utworzonym obrazie. Konfiguruje zarówno etykiety określone przez OCI z krótkimi nazwami zmiennych środowiskowych, jak i dowolnymi etykietami przy użyciu składni rozdzielanej spacjami w pojedynczej zmiennej środowiskowej. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Zobacz więcej zmiennych środowiskowych tutaj.
--build-env BP_OCI_AUTHORS=<value>
Integrowanie agenta JProfiler. Wskazuje, czy należy zintegrować obsługę narzędzia JProfiler. Domyślna wartość to false. BP_JPROFILER_ENABLED faza kompilacji:
--build-env BP_JPROFILER_ENABLED=true
faza środowiska uruchomieniowego:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (opcjonalnie, wartość domyślna to 8849)
BPL_JPROFILER_NOWAIT=true (opcjonalnie. Wskazuje, czy maszyna wirtualna JVM jest wykonywana przed dołączoną maszyną JProfiler. Wartość domyślna to true.)
Wskazuje, czy włączyć obsługę protokołu JProfiler w czasie wykonywania. Domyślna wartość to false. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
Wskazuje, na którym porcie nasłuchuje agent JProfiler. Wartość domyślna to 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
Wskazuje, czy maszyna wirtualna JVM jest wykonywana przed dołączoną maszyną JProfiler. Wartość domyślna to true. BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
Integrowanie agenta JRebel . Aplikacja powinna zawierać plik rebel-remote.xml . Brak Brak
Usługa AES szyfruje aplikację w czasie kompilacji, a następnie odszyfrowuje ją w czasie uruchamiania. Klucz AES do użycia w czasie kompilacji. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
Klucz AES do użycia w czasie wykonywania. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
Integrowanie agenta AspectJ Weaver . <APPLICATION_ROOT>/ aop.xml istnieje i istnieje element aspectj-weaver.*.jar. Brak Brak

Wdrażanie aplikacji platformy .NET

Pakiet buildpack do wdrażania aplikacji platformy .NET to tanzu-buildpacks/dotnet-core.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Skonfiguruj wersję środowiska uruchomieniowego platformy .NET Core. Obsługuje platformy Net6.0, Net7.0 i Net8.0.
Konfigurację można skonfigurować za pomocą runtimeconfig.json lub pliku projektu MSBuild.
Domyślne środowisko uruchomieniowe to 6.0.*.
Brak Brak
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz sekcję Configure CA certificates for app builds and deployments (Konfigurowanie certyfikatów urzędu certyfikacji dla kompilacji i wdrożeń aplikacji) w temacie How to configure APM integration and CA certificates (Jak skonfigurować integrację z usługą APM i certyfikaty urzędu certyfikacji). Brak Brak
Integracja z agentami Dynatrace i New Relic APM. Zobacz Jak skonfigurować integrację usługi APM i certyfikaty urzędu certyfikacji. Brak Brak
Włącz konfigurację etykiet na utworzonym obrazie. Konfiguruje zarówno etykiety określone przez OCI z krótkimi nazwami zmiennych środowiskowych, jak i dowolnymi etykietami przy użyciu składni rozdzielanej spacjami w pojedynczej zmiennej środowiskowej. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Zobacz więcej zmiennych środowiskowych tutaj.
--build-env BP_OCI_AUTHORS=<value>

Wdrażanie aplikacji w języku Python

Pakiet buildpack do wdrażania aplikacji w języku Python to tanzu-buildpacks/python.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Określ wersję języka Python. Obsługuje 3.8.*, 3.9.*, 3.10.*, 3.11.*, 3.12.*. Wartość domyślna to 3.10.*
Wersję można określić za pomocą zmiennej środowiskowej BP_CPYTHON_VERSION podczas kompilacji.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz sekcję Configure CA certificates for app builds and deployments (Konfigurowanie certyfikatów urzędu certyfikacji dla kompilacji i wdrożeń aplikacji) w temacie How to configure APM integration and CA certificates (Jak skonfigurować integrację z usługą APM i certyfikaty urzędu certyfikacji). Brak Brak
Włącz konfigurację etykiet na utworzonym obrazie. Konfiguruje zarówno etykiety określone przez OCI z krótkimi nazwami zmiennych środowiskowych, jak i dowolnymi etykietami przy użyciu składni rozdzielanej spacjami w pojedynczej zmiennej środowiskowej. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Zobacz więcej zmiennych środowiskowych tutaj.
--build-env BP_OCI_AUTHORS=<value>

Wdrażanie aplikacji języka Go

Pakiet buildpack do wdrażania aplikacji języka Go to tanzu-buildpacks/go.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Określ wersję języka Go. Obsługuje 1.20.*, 1.21.*. Wartość domyślna to 1.20.*.
Wersja języka Go jest automatycznie wykrywana z pliku go.mod aplikacji. Tę wersję można zastąpić, ustawiając zmienną BP_GO_VERSION środowiskową w czasie kompilacji.
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
Skonfiguruj wiele obiektów docelowych. Określa wiele obiektów docelowych dla kompilacji języka Go. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz sekcję Configure CA certificates for app builds and deployments (Konfigurowanie certyfikatów urzędu certyfikacji dla kompilacji i wdrożeń aplikacji) w temacie How to configure APM integration and CA certificates (Jak skonfigurować integrację z usługą APM i certyfikaty urzędu certyfikacji). Brak Brak
Integracja z agentem Dynatrace APM. Zobacz Jak skonfigurować integrację usługi APM i certyfikaty urzędu certyfikacji. Brak Brak
Włącz konfigurację etykiet na utworzonym obrazie. Konfiguruje zarówno etykiety określone przez OCI z krótkimi nazwami zmiennych środowiskowych, jak i dowolnymi etykietami przy użyciu składni rozdzielanej spacjami w pojedynczej zmiennej środowiskowej. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Zobacz więcej zmiennych środowiskowych tutaj.
--build-env BP_OCI_AUTHORS=<value>

Wdrażanie aplikacji Node.js

Pakiet buildpack do wdrażania aplikacji Node.js to tanzu-buildpacks/nodejs.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Określ wersję środowiska Node. Obsługuje 16.*, 18.*, 19.*, 20.*. Wartość domyślna to 20.*.
Wersję węzła można określić za pomocą pliku .nvmrc lub .node-version w katalogu głównym katalogu aplikacji. BP_NODE_VERSION zastępuje ustawienia.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz sekcję Configure CA certificates for app builds and deployments (Konfigurowanie certyfikatów urzędu certyfikacji dla kompilacji i wdrożeń aplikacji) w temacie How to configure APM integration and CA certificates (Jak skonfigurować integrację z usługą APM i certyfikaty urzędu certyfikacji). Brak Brak
Integracja z dynamicznym agentem APM Dynatrace, Elastic, New Relic, App Dynamic APM. Zobacz Jak skonfigurować integrację usługi APM i certyfikaty urzędu certyfikacji. Brak Brak
Włącz konfigurację etykiet na utworzonym obrazie. Konfiguruje zarówno etykiety określone przez OCI z krótkimi nazwami zmiennych środowiskowych, jak i dowolnymi etykietami przy użyciu składni rozdzielanej spacjami w pojedynczej zmiennej środowiskowej. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Zobacz więcej zmiennych środowiskowych tutaj.
--build-env BP_OCI_AUTHORS=<value>
Wdrażanie aplikacji Angular przy użyciu serwera Angular Live Development Server. Określ hosta przed uruchomieniem ng servew package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name>. Nazwa domeny aplikacji jest dostępna na stronie Przegląd aplikacji w sekcji Adres URL. Przed kontynuowaniem usuń protokół https:// . BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

Wdrażanie aplikacji WebServer

Pakiet buildpack do wdrażania aplikacji WebServer to tanzu-buildpacks/web-servers.

Aby uzyskać więcej informacji, zobacz Wdrażanie internetowych plików statycznych.

Wdrażanie aplikacji obrazów natywnych w języku Java (wersja zapoznawcza)

Pakiet buildpack do wdrażania aplikacji obrazów natywnych języka Java to tanzu-buildpacks/java-native-image.

Aplikacje obrazów natywnych platformy Spring Boot można wdrożyć przy użyciu tanzu-buildpacks/java-native-image pakietu buildpack. Platforma Spring Native zapewnia obsługę kompilowania aplikacji Spring Boot w natywnych plikach wykonywalnych. Pakiet buildpack używa zestawu Liberica Native Image Kit (NIK) do tworzenia natywnych obrazów aplikacji Spring Boot, a te aplikacje są w pełni obsługiwane.

Podczas tworzenia obrazu natywnego języka Java należy ustawić środowisko BP_NATIVE_IMAGE kompilacji na true wartość , a zasób pamięci kompilacji nie powinien być mniejszy niż 8Gi. Rozmiar puli agentów usługi kompilacji nie powinien być mniejszy niż 4 vCPU, 8 Gi. Aby uzyskać więcej informacji, zobacz sekcję Tworzenie puli agentów w temacie Use Tanzu Build Service (Korzystanie z usługi Tanzu Build Service).

Jeśli chcesz skompilować obraz macierzysty w obraz kontenera o mniejszym rozmiarze, zalecamy użycie konstruktora ze stosem Jammy Tiny systemu operacyjnego. Aby uzyskać więcej informacji, zobacz sekcję Zalecenia dotyczące stosu systemu operacyjnego.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Integracja z biblioteką Bellsoft OpenJDK. Konfiguruje wersję zestawu JDK. Obecnie obsługiwane: zestaw JDK 8, 11, 17 i 20. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
Skonfiguruj argumenty dla native-image polecenia . Argumenty przekazywane bezpośrednio do polecenia native-image. Te argumenty muszą być prawidłowe i poprawnie sformułowane lub polecenie native-image kończy się niepowodzeniem. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz Jak skonfigurować integrację usługi APM i certyfikaty urzędu certyfikacji. Nie dotyczy. Nie dotyczy.
Włączanie konfiguracji etykiet na utworzonym obrazie Konfiguruje zarówno etykiety określone przez OCI z krótkimi nazwami zmiennych środowiskowych, jak i dowolnymi etykietami przy użyciu składni rozdzielanej spacjami w pojedynczej zmiennej środowiskowej. BP_IMAGE_LABELS
BP_OCI_AUTHORS
Zobacz więcej zmiennych środowiskowych tutaj.
--build-env BP_OCI_AUTHORS=<value>
Obsługa tworzenia aplikacji opartych na narzędziu Maven ze źródła. Używany w projekcie z wieloma modułami. Wskazuje moduł do znalezienia artefaktu aplikacji. Wartość domyślna modułu głównego (jest pusta). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

Istnieją pewne ograniczenia dotyczące obrazu natywnego języka Java. Aby uzyskać więcej informacji, zobacz sekcję Ograniczenia obrazów natywnych języka Java.

Wdrażanie aplikacji PHP

Pakiet buildpack do wdrażania aplikacji PHP to tanzu-buildpacks/php.

Pakiet buildpack języka PHP Tanzu jest zgodny tylko z pełnym stosem systemu operacyjnego. Zalecamy używanie konstruktora ze stosem Jammy Full systemu operacyjnego. Aby uzyskać więcej informacji, zobacz sekcję Zalecenia dotyczące stosu systemu operacyjnego.

W poniższej tabeli wymieniono funkcje obsługiwane w usłudze Azure Spring Apps:

Opis funkcji Komentarz Zmienna środowiskowa Użycie
Określ wersję języka PHP. Konfiguruje wersję języka PHP. Obecnie obsługiwane: PHP 8.1.*i 8.2.*. Wartość domyślna to 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
Dodaj certyfikaty urzędu certyfikacji do magazynu zaufania systemu w środowisku kompilacji i środowiska uruchomieniowego. Zobacz sekcję Configure CA certificates for app builds and deployments (Konfigurowanie certyfikatów urzędu certyfikacji dla kompilacji i wdrożeń aplikacji) w temacie How to configure APM integration and CA certificates (Jak skonfigurować integrację z usługą APM i certyfikaty urzędu certyfikacji). Brak Brak
Integracja z dynatrace, nowym relic, dynamicznym agentem APM aplikacji. Zobacz Jak skonfigurować integrację usługi APM i certyfikaty urzędu certyfikacji. Brak Brak
Wybierz serwer sieci Web. Opcje ustawień to php-server, httpd i nginx. Wartość domyślna to php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
Konfigurowanie katalogu sieci Web. Gdy serwer internetowy ma wartość HTTPD lub NGINX, katalog internetowy domyślnie ma wartość htdocs. Gdy serwer internetowy jest wbudowanym serwerem PHP, katalog internetowy jest domyślnie /workspace. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

Następne kroki