Freigeben über


App und Bereitstellung in Azure Spring Apps

Hinweis

Die Pläne "Basic", "Standard" und "Enterprise" sind am 17. März 2025 in einen Ruhestandszeitraum eingetreten. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring 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 Azure Spring Apps Standard Plan bietet einer App die Möglichkeit, eine Produktionsbereitstellung und eine Staging-Bereitstellung vorzunehmen, sodass Sie auf einfache Weise eine Blue/Green-Bereitstellung durchführen können.

App

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

Funktionen 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 Standard-Verbindung mit anderen Azure Services.
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 Funktionen/Eigenschaften sind auf der Bereitstellungsebene definiert und werden ausgetauscht, wenn Sie die Produktions- und die Staging-Bereitstellung tauschen.

Funktionen Beschreibung
CPU Die Anzahl der vCores pro Anwendungsinstanz
Arbeitsspeicher GB an Arbeitsspeicher pro App-Instanz
Anzahl der Instanz
Die Anzahl der App-Instanzen, manuell oder automatisch festgelegt
Automatische Skalierung Die Anzahl der Instanzen wird automatisch auf vordefinierten Regeln und Zeitplänen basierend skaliert.
JVM
-Optionen
Die festzulegenden JVM-Optionen
Umgebungs
variablen
Die festzulegenden Umgebungsvariablen
Runtime
-Version
Entweder Java 8 oder Java 11

Umgebung

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. Bevor Sie eine Bereitstellung löschen, sollten Sie sie in die Stage verschieben.
  • 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 bestehenden Produktionsumgebung oder der Staging-Umgebung bereit.
  • Die Bereitstellungsverwaltung ist im Plan „Basic“ nicht verfügbar. Verwenden Sie den Plan Standard oder Enterprise für die Blue-Green Funktionalität der Bereitstellung.

Nächste Schritte