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