App och distribution i Azure Spring Apps

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för: ✔️ Java ✔️ C#

Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise

App och distribution är de två nyckelbegreppen i resursmodellen för Azure Spring Apps. I Azure Spring Apps är en app en abstraktion av en affärsapp. En version av koden eller binärfilen som distribueras när appen körs i en distribution. Appar körs i en Azure Spring Apps-tjänstinstans, eller helt enkelt tjänstinstans, som du ser härnäst.

Diagram showing the relationship between the apps and deployments.

Du kan ha flera tjänstinstanser i en enda Azure-prenumeration, men Azure Spring Apps Service är enklast att använda när alla appar som utgör en företagsapp finns i en enda tjänstinstans. En orsak är att apparna sannolikt kommer att kommunicera med varandra. De kan enkelt göra det med hjälp av Eureka-tjänstregistret i tjänstinstansen.

Med Azure Spring Apps Standard-planen kan en app ha en produktionsdistribution och en mellanlagringsdistribution, så att du enkelt kan utföra blå/grön distribution på den.

App

Följande funktioner/egenskaper definieras på appnivå.

Funktioner beskrivning
Offentlig
slutpunkt
URL:en för att komma åt appen.
Anpassad
domän
Den CNAME post som skyddar den anpassade domänen.
Tjänstbindning
Den färdiga anslutningen till andra Azure-tjänster.
Hanterad
identitet
Med microsoft Entra-ID:ts hanterade identitet kan din app enkelt komma åt andra Microsoft Entra-skyddade resurser, till exempel Azure Key Vault.
Beständig
lagring
Inställningen som gör att data kan sparas efter omstart av appen.

Distribution

Följande funktioner/egenskaper definieras på distributionsnivå och utbyts vid byte av produktions- och mellanlagringsdistribution.

Funktioner beskrivning
Processor Antalet virtuella kärnor per appinstans.
Minne GB minne per appinstans.
Antal instanser
Antalet appinstanser, ange manuellt eller automatiskt.
Autoskala Antalet skalningsinstanser baseras automatiskt på fördefinierade regler och scheman.
JVM-alternativ
JVM-alternativen som ska anges.
Miljövariabler
De miljövariabler som ska anges.
Körningsversion
Antingen Java 8 eller Java 11.

Environment

Azure Spring Apps monterar vissa skrivskyddade YAML-filer i dina distribuerade appar. Dessa filer innehåller Azure-kontexten för en distribution. I följande lista visas sökvägarna och innehållet i dessa YAML-filer:

  • /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
    

Om din app är en Spring Boot-app läggs dessa två filsökvägar till i SPRING_CONFIG_ADDITIONAL_LOCATION miljövariabeln. På så sätt kan appen läsa in dessa egenskaper som konfigurationer och använda dem i koden. Du kan till exempel använda kommentaren @ConfigurationProperties för att binda YAML-egenskaperna till en Java-klass. Följande kodfragment visar hur du skapar en @Configuration klass som representerar Azure-kontexten:

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;
    }
}

För andra flerspråkiga appar kan du behöva läsa och komma åt motsvarande egenskaper med hjälp av motsvarande filläsnings-/skrivbibliotek i dina appar.

Begränsningar

  • En app måste ha en produktionsdistribution. API:et blockerar borttagningen av en produktionsdistribution. Du bör växla en distribution till mellanlagring innan du tar bort den.
  • En app kan ha högst två distributioner. API:et blockerar skapandet av fler än två distributioner. Distribuera din nya binärfil till antingen den befintliga produktions- eller mellanlagringsdistributionen.
  • Distributionshantering är inte tillgängligt i Basic-planen. Använd Standard- eller Enterprise-planen för blågrön distributionsfunktion.

Nästa steg