共用方式為


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 8Java 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 會封鎖建立兩個以上的部署。 將新的二進位檔部署到現有的生產環境或預備部署。
  • 基本方案中無法使用部署管理。 使用標準或企業方案進行藍綠部署功能。

下一步