Azure Spring Apps 中的應用程式和部署
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於:✅ Java ✅ C#
本文適用於:✅ 基本/標準 ✅ 企業
應用程式和部署是 Azure Spring Apps 資源模型中的兩個重要概念。 在 Azure Spring Apps 中,應用程式是一個商務應用程式的抽象概念。 當應用程式在部署中執行時部署的一個程式代碼或二進位版本。 應用程式會在 Azure Spring Apps 服務實例中執行,或只是服務實例,如下所示。
您可以在單一 Azure 訂用帳戶內有多個服務實例,但當組成商務應用程式的所有應用程式都位於單一服務實例內時,Azure Spring Apps 服務最容易使用。 其中一個原因是應用程式可能會彼此通訊。 他們可以輕鬆地在服務實例中使用 Eureka 服務登錄來執行此動作。
Azure Spring Apps Standard 方案可讓一個應用程式有一個生產部署和一個預備部署,讓您可以輕鬆地進行藍色/綠色部署。
App
下列功能/屬性定義於應用層級。
功能 | 描述 |
---|---|
公用 端點 |
要存取應用程式的URL。 |
自訂 網域 |
CNAME 保護自定義網域的記錄。 |
服務 系結 |
與其他 Azure 服務的現用連線。 |
受控 識別 |
透過 Microsoft Entra 識別碼的受控識別,可讓您的應用程式輕鬆地存取其他Microsoft受 Entra 保護的資源,例如 Azure 金鑰保存庫。 |
永續性 記憶體 |
可讓數據在應用程式重新啟動之後保存的設定。 |
部署
下列功能/屬性是在部署層級上定義,並在交換生產環境與預備部署時交換。
功能 | 描述 |
---|---|
CPU | 每個應用程式實例的虛擬核心數目。 |
記憶體 | 每個應用程式實例的記憶體 GB。 |
實例 計數 |
手動或自動設定的應用程式實例數目。 |
自動擴充 | 根據預先定義的規則和排程自動調整實例計數。 |
JVM 選項 |
要設定的 JVM 選項。 |
環境變數 |
要設定的環境變數。 |
運行時間 版本 |
Java 8 或 Java 11。 |
Environment
Azure Spring Apps 會將一些只讀 YAML 檔案掛接至已部署的應用程式。 這些檔案包含部署的 Azure 內容。 下列清單顯示這些 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
如果您的應用程式是 Spring Boot 應用程式,這兩個檔案路徑會新增至 SPRING_CONFIG_ADDITIONAL_LOCATION
環境變數。 如此一來,您的應用程式就可以將這些屬性載入為組態,並在程式代碼中使用它們。 例如,您可以使用 @ConfigurationProperties
註釋將 YAML 屬性系結至 Java 類別。 下列代碼段示範如何建立 @Configuration
代表 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;
}
}
對於任何其他 Polyglot 應用程式,您可能需要在應用程式中使用對應的檔案讀取/寫入連結庫來讀取和存取對應的屬性。
限制
- 應用程式必須有一個生產環境部署。 API 會封鎖刪除生產部署。 您應該先將部署交換至預備環境,再將其刪除。
- 應用程式最多可以有兩個部署。 API 會封鎖建立兩個以上的部署。 將新的二進位檔部署到現有的生產環境或預備部署。
- 基本方案中無法使用部署管理。 使用標準或企業方案進行藍綠部署功能。