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.
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.