App en implementatie in Azure Spring Apps

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

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.

Diagram showing the relationship between the apps and deployments.

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.

Volgende stappen