App und Bereitstellung in Azure Spring Apps

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

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 oder einfach als Dienstinstanz ausgeführt, wie im nächsten Beispiel gezeigt.

Diagram showing the relationship between the apps and deployments.

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. Sie können dies ganz einfach mithilfe der Eureka-Dienstregistrierung in der Dienstinstanz tun.

Mit dem Azure Spring Apps Standard-Plan kann eine App über eine Produktionsbereitstellung und eine Stagingbereitstellung verfügen, sodass Sie die blaue/grüne Bereitstellung ganz einfach ausführen können.

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 Datensatz, der die benutzerdefinierten Aufgaben sichert Standard.
Dienst
bindung
Die sofort einsatzbereite Verbindung mit anderen Azure-Diensten.
Verwaltete
Identität
Die verwaltete Identität von Microsoft Entra ID ermöglicht Ihrer App den einfachen Zugriff auf andere von Microsoft Entra geschützte Ressourcen wie Azure Key Vault.
Dauerhafte
Speicherung
Die Einstellung, mit der Daten über den App-Neustart hinaus beibehalten werden können.

Bereitstellung

Die folgenden Features/Eigenschaften werden auf der Bereitstellungsebene definiert und ausgetauscht, wenn die Produktions- und Stagingbereitstellung ausgetauscht wird.

Features Beschreibung
CPU Die Anzahl der vcores pro App-Instanz.
Arbeitsspeicher Die GB des Arbeitsspeichers pro App-Instanz.
Instanzen
anzahl
Die Anzahl der App-Instanzen, die manuell oder automatisch festgelegt werden.
Automatische Skalierung Die Skalierungsinstanzanzahl basiert automatisch auf vordefinierten Regeln und Zeitplänen.
JVM
-Optionen
Die festzulegenden JVM-Optionen.
Umgebungs
variablen
Die festzulegenden Umgebungsvariablen.
Runtime
-Version
Entweder Java 8 oder Java 11.

Environment

Azure Spring Apps stellt einige schreibgeschützte YAML-Dateien in Ihre bereitgestellten Apps bereit. 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 SPRING_CONFIG_ADDITIONAL_LOCATION Umgebungsvariable hinzugefügt. Auf diese Weise kann Ihre App diese Eigenschaften als Konfigurationen laden und in Ihrem Code verwenden. Sie können beispielsweise die @ConfigurationProperties Anmerkung verwenden, um die YAML-Eigenschaften an eine Java-Klasse zu binden. Der folgende Codeausschnitt 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 Polyglot-Apps müssen Sie möglicherweise entsprechende Eigenschaften lesen und darauf zugreifen, indem Sie die entsprechenden Lese-/Schreibbibliotheken in Ihren Apps verwenden.

Beschränkungen

  • Eine App muss über eine Produktionsbereitstellung verfügen. Die API blockiert das Löschen einer Produktionsbereitstellung. Sie sollten eine Bereitstellung mit staging austauschen, bevor Sie sie löschen.
  • Eine App kann über höchstens zwei Bereitstellungen verfügen. 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 Standardplan nicht verfügbar. Verwenden Sie den Standard- oder Enterprise-Plan für die blaugrüne Bereitstellungsfunktion.

Nächste Schritte