Dela via


App och distribution i Azure Spring Apps

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

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 som visar relationen mellan appar och distributioner.

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