Udostępnij za pośrednictwem


Aplikacja i wdrażanie w usłudze Azure Spring Apps

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: ✔️ Java ✔️ C#

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

Aplikacje i wdrażanie to dwa kluczowe pojęcia w modelu zasobów usługi Azure Spring Apps. W usłudze Azure Spring Apps aplikacja jest abstrakcją jednej aplikacji biznesowej. Jedna wersja kodu lub pliku binarnego wdrożona podczas uruchamiania aplikacji we wdrożeniu. Aplikacje są uruchamiane w wystąpieniu usługi Azure Spring Apps lub po prostu w wystąpieniu usługi, jak pokazano poniżej.

Diagram przedstawiający relację między aplikacjami i wdrożeniami.

Możesz mieć wiele wystąpień usługi w ramach jednej subskrypcji platformy Azure, ale usługa Azure Spring Apps Service jest najłatwiejsza do użycia, gdy wszystkie aplikacje tworzące aplikację biznesową znajdują się w jednym wystąpieniu usługi. Jednym z powodów jest to, że aplikacje mogą komunikować się ze sobą. Można to łatwo zrobić przy użyciu rejestru usług Eureka w wystąpieniu usługi.

Plan usługi Azure Spring Apps w warstwie Standardowa umożliwia jednej aplikacji posiadanie jednego wdrożenia produkcyjnego i wdrożenia przejściowego, dzięki czemu można łatwo wykonać wdrożenie niebieskie/zielone.

Aplikacja

Następujące funkcje/właściwości są definiowane na poziomie aplikacji.

Funkcje opis
Publiczny
punkt końcowy
Adres URL umożliwiający dostęp do aplikacji.
Domena niestandardowa
CNAME Rekord, który zabezpiecza domenę niestandardową.
Powiązanie usługi
Gotowe połączenie z innymi usługami platformy Azure.
Tożsamość zarządzana
Tożsamość zarządzana przez firmę Microsoft Entra ID umożliwia aplikacji łatwy dostęp do innych chronionych zasobów firmy Microsoft, takich jak Azure Key Vault.
Magazyn trwały
Ustawienie, które umożliwia utrwalanie danych poza ponownym uruchomieniem aplikacji.

Wdrożenie

Następujące funkcje/właściwości są definiowane na poziomie wdrożenia i są wymieniane podczas zamiany wdrożenia produkcyjnego i przejściowego.

Funkcje opis
Procesor CPU Liczba rdzeni wirtualnych na wystąpienie aplikacji.
Pamięć GB pamięci na wystąpienie aplikacji.
Liczba wystąpień
Liczba wystąpień aplikacji, ustawiana ręcznie lub automatycznie.
Automatyczne skalowanie Liczba wystąpień skalowania jest automatycznie oparta na wstępnie zdefiniowanych reguł i harmonogramach.
Opcje maszyny wirtualnej JVM
Opcje JVM do ustawienia.
Zmienne środowiskowe
Zmienne środowiskowe do ustawienia.
Wersja środowiska uruchomieniowego
Java 8 lub Java 11.

Środowisko

Usługa Azure Spring Apps instaluje niektóre pliki YAML tylko do odczytu w wdrożonych aplikacjach. Te pliki zawierają kontekst platformy Azure wdrożenia. Poniższa lista zawiera ścieżki i zawartość tych plików YAML:

  • /etc/azure-spring-cloud/context/azure-spring-apps.yml

    AZURE_SPRING_APPS:
        SUBSCRIPTION_ID:  <your-azure-subscription-id>
        RESOURCE_GROUP: <your-resource-group-name>
        NAME: <your-azure-spring-apps-name>
    
  • /etc/azure-spring-cloud/context/azure-spring-apps-deployment.yml

    AZURE_SPRING_APPS:
         APP:
            NAME: <your-app-name>
         DEPLOYMENT:
            NAME: <your-deployment-name>
            ACTIVE: true # true if the deployment is in production, false if in staging
    

Jeśli aplikacja jest aplikacją Spring Boot, te dwie ścieżki plików są dodawane do zmiennej środowiskowej SPRING_CONFIG_ADDITIONAL_LOCATION . Dzięki temu aplikacja może ładować te właściwości jako konfiguracje i używać ich w kodzie. Możesz na przykład użyć @ConfigurationProperties adnotacji, aby powiązać właściwości YAML z klasą Języka Java. Poniższy fragment kodu pokazuje, jak utworzyć klasę reprezentującą @Configuration kontekst platformy Azure:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "azure-spring-apps")
@Data
public class AzureSpringAppsContext {

    private String subscriptionId;
    private String resourceGroup;
    private String name;

    private AppContext app;
    private DeploymentContext deployment;

    @Data
    public static class AppContext {
        private String name;
    }

    @Data
    public static class DeploymentContext {
        private String name;
        private boolean active;
    }
}

W przypadku innych aplikacji wielolotowych może być konieczne odczytywanie odpowiednich właściwości i uzyskiwanie do ich dostępu przy użyciu odpowiednich bibliotek odczytu/zapisu plików w aplikacjach.

Ograniczenia

  • Aplikacja musi mieć jedno wdrożenie produkcyjne. Interfejs API blokuje usunięcie wdrożenia produkcyjnego. Przed usunięciem wdrożenia należy zamienić wdrożenie na przejściowe.
  • Aplikacja może mieć co najwyżej dwa wdrożenia. Interfejs API blokuje tworzenie więcej niż dwóch wdrożeń. Wdróż nowy plik binarny w istniejącym wdrożeniu produkcyjnym lub przejściowym.
  • Zarządzanie wdrożeniami nie jest dostępne w planie podstawowym. Użyj planu standardowego lub enterprise, aby skorzystać z możliwości wdrażania niebieskiego zielonego.

Następne kroki