Freigeben über


App und Bereitstellung in Azure Spring Apps

Hinweis

Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.

Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.

Dieser Artikel gilt für: ✔️ Java ✔️ C#

Dieser Artikel gilt für: ✔️ Basic/Standard ✔️ Enterprise

App und Bereitstellung sind die beiden wichtigsten Konzepte im Ressourcenmodell von Azure Spring Apps. In Azure Spring Apps ist eine App eine Abstraktion einer Geschäftsanwendung. Eine Version des Codes oder der Binärdatei, die als die App bereitgestellt wird, wird in einer Bereitstellung ausgeführt. Apps werden in einer Azure Spring Apps-Dienstinstanz (kurz Dienstinstanz) ausgeführt, wie im Folgenden beschrieben.

Diagramm: Beziehung zwischen den Apps und Bereitstellungen

Sie können über mehrere Dienstinstanzen innerhalb eines einzelnen Azure-Abonnements verfügen, es ist jedoch am einfachsten, wenn sich alle Apps, aus denen eine Geschäftsanwendung besteht, innerhalb einer einzelnen Azure Spring Apps-Dienstinstanz befinden. Ein Grund dafür ist, dass die Apps wahrscheinlich miteinander kommunizieren. Dazu können sie ganz einfach die Eureka-Dienstregistrierung in der Dienstinstanz verwenden.

Der Standard-Plan von Azure Spring Apps lässt zu, dass eine App über eine Produktionsbereitstellung und eine Stagingbereitstellung verfügt, und ermöglicht Ihnen dadurch eine einfache Blau-Grün-Bereitstellung.

App

Die folgenden Features/Eigenschaften werden auf App-Ebene definiert.

Features Beschreibung
Öffentlicher
Endpunkt
Die URL für den Zugriff auf die App
Benutzerdefinierte
Domäne
Der CNAME-Eintrag, der die benutzerdefinierte Domäne absichert
Dienst
bindung
Die standardmäßige Verbindung mit anderen Azure-Diensten
Verwaltete
Identität
Die verwaltete Identität von Microsoft Entra ID ermöglicht es Ihrer App, einfach auf andere durch Microsoft Entra geschützte Ressourcen wie Azure Key Vault zuzugreifen.
Dauerhafte
Speicherung
Die Einstellung, die es ermöglicht, dass Daten nach dem Neustart der App beibehalten werden können.

Bereitstellung

Die folgenden Features/Eigenschaften werden auf der Bereitstellungsebene definiert und beim Wechsel der Produktions- und Stagingbereitstellung ausgetauscht.

Features Beschreibung
CPU Die Anzahl der virtuellen Kerne pro App-Instanz
Arbeitsspeicher GB an Arbeitsspeicher pro App-Instanz
Instanzen
anzahl
Die Anzahl der App-Instanzen, manuell oder automatisch festgelegt
Automatische Skalierung Die Anzahl der Skalierungsinstanzen, automatisch auf vordefinierten Regeln und Zeitplänen basierend
JVM
-Optionen
Die festzulegenden JVM-Optionen
Umgebungs
variablen
Die festzulegenden Umgebungsvariablen
Runtime
-Version
Entweder Java 8 oder Java 11

Environment

Azure Spring Apps bindet einige schreibgeschützte YAML-Dateien in Ihre bereitgestellten Apps ein. Diese Dateien enthalten den Azure-Kontext einer Bereitstellung. In der folgenden Liste sind die Pfade und Inhalte dieser YAML-Dateien aufgeführt:

  • /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
    

Wenn es sich bei Ihrer App um eine Spring Boot-App handelt, werden diese beiden Dateipfade der Umgebungsvariablen SPRING_CONFIG_ADDITIONAL_LOCATION hinzugefügt. Auf diese Weise kann Ihre App diese Eigenschaften als Konfigurationen laden und in Ihrem Code verwenden. Sie können beispielsweise die Anmerkung @ConfigurationProperties verwenden, um die YAML-Eigenschaften an eine Java-Klasse zu binden. Der folgende Codeschnipsel zeigt, wie Sie eine @Configuration-Klasse erstellen, die den Azure-Kontext darstellt:

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;
    }
}

Bei anderen mehrsprachigen Apps müssen Sie möglicherweise entsprechende Eigenschaften lesen und darauf zugreifen, indem Sie die entsprechenden Bibliotheken zum Lesen/Schreiben von Dateien in Ihren Apps verwenden.

Beschränkungen

  • Eine App muss eine Produktionsbereitstellung besitzen. Die API blockiert das Löschen einer Produktionsbereitstellung. Sie sollten eine Bereitstellung mit Staging austauschen, bevor Sie sie löschen.
  • Eine App kann höchstens zwei Bereitstellungen besitzen. Die API blockiert die Erstellung von mehr als zwei Bereitstellungen. Stellen Sie Ihre neue Binärdatei entweder in der vorhandenen Produktions- oder der Stagingbereitstellung bereit.
  • Die Bereitstellungsverwaltung ist im Plan „Basic“ nicht verfügbar. Verwenden Sie den Standard- oder Enterprise-Plan, um die Funktion für die Blau-Grün-Bereitstellung nutzen zu können.

Nächste Schritte