App e distribuzione in Azure Spring Apps
Nota
Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.
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. |
Persistente Archiviazione |
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.