How to deploy polyglot apps in the Azure Spring Apps Enterprise plan (Jak wdrażać aplikacje wielolotowe w planie Azure Spring Apps Enterprise)
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
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
- Już aprowizowane wystąpienie planu Usługi Azure Spring Apps Enterprise. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie i wdrażanie aplikacji w usłudze Azure Spring Apps przy użyciu planu Enterprise.
- Interfejs wiersza polecenia platformy Azure w wersji 2.45.0 lub nowszej. Użyj następującego polecenia, aby zainstalować rozszerzenie Azure Spring Apps:
az extension add --name spring
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:
- Java Azure Buildpack for VMware Tanzu
- Pakiet buildpack platformy .NET Core dla programu VMware Tanzu
- Go Buildpack for VMware Tanzu
- Pakiet Buildpack serwerów sieci Web dla programu VMware Tanzu
- Node.js Buildpack for VMware Tanzu
- Python Buildpack for VMware Tanzu
- Java Native Image Buildpack for VMware Tanzu
- PHP Buildpack for VMware Tanzu
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:
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 Base
wartości , , Jammy Tiny
Bionic Full
, Jammy Base
i 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
.
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.
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:
- Zapisz konfigurację jako nowy konstruktor.
- Wdrażanie aplikacji za pomocą nowego konstruktora. Wdrożenia są połączone z nowym konstruktorem.
- Przeprowadź migrację wdrożeń w ramach poprzedniego konstruktora do nowego konstruktora.
- 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:
Otwórz portal Azure Portal.
Wybierz pozycję Rejestr kontenerów w okienku nawigacji.
Wybierz pozycję Dodaj , aby utworzyć rejestr kontenerów.
W przypadku rejestru kontenerów wybierz przycisk wielokropka (...), a następnie wybierz pozycję Edytuj , aby wyświetlić konfigurację rejestru.
Przejrzyj wartości na stronie Edytowanie rejestru kontenerów.
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ąć.
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:
Otwórz portal Azure Portal.
Wybierz pozycję Build Service (Usługa kompilacji) w okienku nawigacji.
Wybierz pozycję Dokumentacja rejestru kontenerów, aby zaktualizować rejestr kontenerów dla usługi kompilacji.
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.
- Rejestr kontenerów zarządzanych 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.
- Rejestr kontenerów zarządzanych usługi Azure Spring Apps
- Rejestr kontenerów zarządzany przez użytkownika
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.
- Rejestr kontenerów zarządzanych usługi Azure Spring Apps
- Rejestr kontenerów zarządzany przez użytkownika
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.
- Rejestr kontenerów zarządzanych usługi Azure Spring Apps
- Rejestr kontenerów zarządzany przez użytkownika
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
, , 1Gi
2Gi
i 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
, , 2
1
i 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 łącznikiem zasobów | ✅ | ✅ | ||||||
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 łącznika usługi | 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 usługą Application Insights, dynatrace, elastic, new Relic, dynamiczny agent APM aplikacji. | 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 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.21.*, 1.22.*. Wartość domyślna to 1.21.*. 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.22.* |
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=20.* |
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 serve w 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: JDK 8, 11, 17 i 21. | 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.*, 8.2.*i 8.3.*. Wartość domyślna to 8.1.* | BP_PHP_VERSION |
--build-env BP_PHP_VERSION=8.1.* |
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 |