App e distribuzione in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ✔️ Java ✔️ C#
Questo articolo si applica a: ✔️ Basic/Standard ✔️ Enterprise
App e distribuzione sono i due concetti chiave del modello di risorse di Azure Spring Apps. In Azure Spring Apps un'app è un'astrazione di un'app aziendale. Una versione di codice o binaria distribuita durante l'esecuzione dell'app in una distribuzione. Le app vengono eseguite in un'istanza del servizio Azure Spring Apps o semplicemente in un'istanza del servizio, come illustrato di seguito.
È possibile avere più istanze del servizio all'interno di una singola sottoscrizione di Azure, ma il servizio Azure Spring Apps è più semplice da usare quando tutte le app che costituiscono un'app aziendale si trovano all'interno di una singola istanza del servizio. Un motivo è che è probabile che le app comunichino tra loro. È possibile farlo facilmente usando il registro dei servizi Eureka nell'istanza del servizio.
Il piano Standard di Azure Spring Apps consente a un'app di avere una distribuzione di produzione e una distribuzione di staging, in modo da poter eseguire facilmente una distribuzione blu/verde.
App
Le funzionalità/proprietà seguenti sono definite a livello di app.
Funzionalità | Descrizione |
---|---|
Endpoint pubblico |
URL per accedere all'app. |
Dominio personalizzato |
Record CNAME che protegge il dominio personalizzato. |
Associazione di servizi |
Connessione predefinita con altri servizi di Azure. |
Identità gestita |
L'identità gestita da Microsoft Entra ID consente all'app di accedere facilmente ad altre risorse protette di Microsoft Entra, ad esempio Azure Key Vault. |
Archiviazione permanente |
Impostazione che consente la persistenza dei dati oltre il riavvio dell'app. |
Distribuzione
Le funzionalità/proprietà seguenti vengono definite a livello di distribuzione e vengono scambiate durante lo scambio della distribuzione di produzione e gestione temporanea.
Funzionalità | Descrizione |
---|---|
CPU | Numero di vcore per istanza dell'app. |
Memoria | GB di memoria per ogni istanza dell'app. |
Numero di istanze |
Numero di istanze dell'app, impostate manualmente o automaticamente. |
Scalabilità automatica | Numero di istanze di scalabilità automaticamente in base a regole e pianificazioni predefinite. |
Opzioni JVM |
Opzioni JVM da impostare. |
Variabili di ambiente |
Variabili di ambiente da impostare. |
Versione di runtime |
Java 8 o Java 11. |
Ambiente
App Spring di Azure monta alcuni file YAML di sola lettura nelle app distribuite. Questi file contengono il contesto di Azure di una distribuzione. L'elenco seguente mostra i percorsi e il contenuto di questi file YAML:
/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
Se l'app è un'app Spring Boot, questi due percorsi di file vengono aggiunti alla SPRING_CONFIG_ADDITIONAL_LOCATION
variabile di ambiente. In questo modo, l'app può caricare queste proprietà come configurazioni e usarle nel codice. Ad esempio, è possibile usare l'annotazione @ConfigurationProperties
per associare le proprietà YAML a una classe Java. Il frammento di codice seguente illustra come creare una @Configuration
classe che rappresenta il contesto di Azure:
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;
}
}
Per qualsiasi altra app poliglotta, potrebbe essere necessario leggere e accedere alle proprietà corrispondenti usando le librerie di lettura/scrittura di file corrispondenti nelle app.
Restrizioni
- Un'app deve avere una distribuzione di produzione. L'API blocca l'eliminazione di una distribuzione di produzione. È consigliabile scambiare una distribuzione con la gestione temporanea prima di eliminarla.
- Un'app può avere al massimo due distribuzioni. L'API blocca la creazione di più di due distribuzioni. Distribuire il nuovo file binario nella distribuzione di produzione o staging esistente.
- La gestione della distribuzione non è disponibile nel piano Basic. Usare il piano Standard o Enterprise per la funzionalità di distribuzione blu-verde.