App en implementatie in Azure Spring Apps
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op: ✔️ Java ✔️ C#
Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise
App en implementatie zijn de twee belangrijkste concepten in het resourcemodel van Azure Spring Apps. In Azure Spring Apps is een app een abstractie van één zakelijke app. Eén versie van code of binair bestand dat wordt geïmplementeerd als de app wordt uitgevoerd in een implementatie. Apps worden uitgevoerd in een Azure Spring Apps-service-exemplaar of gewoon service-exemplaar, zoals hierna wordt weergegeven.
U kunt meerdere service-exemplaren binnen één Azure-abonnement hebben, maar azure Spring Apps Service is het eenvoudigst te gebruiken wanneer alle apps waaruit een zakelijke app bestaat zich binnen één service-exemplaar bevinden. Een van de redenen is dat de apps waarschijnlijk met elkaar communiceren. Ze kunnen dat eenvoudig doen met behulp van het Eureka-serviceregister in het service-exemplaar.
Met het Azure Spring Apps Standard-plan kan één app één productie-implementatie en één faseringsimplementatie hebben, zodat u eenvoudig blauw/groen kunt implementeren.
App
De volgende functies/eigenschappen worden gedefinieerd op app-niveau.
Functies | Beschrijving |
---|---|
Openbaar eindpunt |
De URL voor toegang tot de app. |
Aangepast domein |
De CNAME record die het aangepaste domein beveiligt. |
Servicebinding |
De kant-en-klare verbinding met andere Azure-services. |
Beheerde identiteit |
Met de beheerde identiteit van Microsoft Entra ID heeft uw app eenvoudig toegang tot andere met Microsoft Entra beveiligde resources, zoals Azure Key Vault. |
Permanente opslag |
De instelling waarmee gegevens kunnen worden bewaard na het opnieuw opstarten van de app. |
Implementatie
De volgende functies/eigenschappen worden gedefinieerd op het implementatieniveau en worden uitgewisseld bij het wisselen van de productie- en faseringsimplementatie.
Functies | Beschrijving |
---|---|
CPU | Het aantal vcores per app-exemplaar. |
Geheugen | Het GB geheugen per app-exemplaar. |
Aantal exemplaren |
Het aantal app-exemplaren, handmatig of automatisch instellen. |
Automatisch schalen | Het aantal schaalexemplaren automatisch op basis van vooraf gedefinieerde regels en planningen. |
JVM-opties |
De JVM-opties die moeten worden ingesteld. |
Omgevingsvariabelen |
De omgevingsvariabelen die moeten worden ingesteld. |
Runtimeversie |
Java 8 of Java 11. |
Omgeving
Azure Spring Apps koppelt enkele alleen-lezen YAML-bestanden aan uw geïmplementeerde apps. Deze bestanden bevatten de Azure-context van een implementatie. De volgende lijst bevat de paden en inhoud van deze YAML-bestanden:
/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
Als uw app een Spring Boot-app is, worden deze twee bestandspaden toegevoegd aan de SPRING_CONFIG_ADDITIONAL_LOCATION
omgevingsvariabele. Op deze manier kan uw app deze eigenschappen laden als configuraties en deze gebruiken in uw code. U kunt bijvoorbeeld de @ConfigurationProperties
aantekening gebruiken om de YAML-eigenschappen te binden aan een Java-klasse. In het volgende codefragment ziet u hoe u een @Configuration
klasse maakt die de Azure-context vertegenwoordigt:
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;
}
}
Voor andere polyglot-apps moet u mogelijk de bijbehorende eigenschappen lezen en openen met behulp van de bijbehorende lees-/schrijfbibliotheken voor bestanden in uw apps.
Beperkingen
- Een app moet één productie-implementatie hebben. De API blokkeert het verwijderen van een productie-implementatie. U moet een implementatie omwisselen naar fasering voordat u deze verwijdert.
- Een app kan maximaal twee implementaties hebben. De API blokkeert het maken van meer dan twee implementaties. Implementeer uw nieuwe binaire bestand naar de bestaande productie- of faseringsimplementatie.
- Implementatiebeheer is niet beschikbaar in het Basic-abonnement. Gebruik het Standard- of Enterprise-abonnement voor blauwgroene implementatiemogelijkheden.