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