Azure Spring Apps 中的應用程式和部署

注意

基本、標準和企業方案於 2025 年 3 月 17 日進入淘汰期。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。

本文適用於:✅ Java ✅ C#

本文適用於:✅ 基本/標準 ✅ 企業

應用程式和部署是 Azure Spring Apps 資源模型中的兩個重要概念。 在 Azure Spring Apps 中,應用程式是一個商務應用程式的抽象概念。 應用程式在部署中執行時,會部署一個程式碼或二進位的版本。 應用程式會在 Azure Spring Apps 服務實例中執行,或只是服務實例,如下所示。

顯示應用程式與部署之間關聯性的圖表。

您可以在單一 Azure 訂用帳戶內有多個服務實例,但當組成商務應用程式的所有應用程式都位於單一服務實例內時,Azure Spring Apps 服務最容易使用。 其中一個原因是應用程式可能會彼此通訊。 他們可以輕鬆地在服務實例中使用 Eureka 服務登錄來執行此動作。

Azure Spring Apps Standard 方案可讓一個應用程式有一個生產部署和一個預備部署,讓您可以輕鬆地進行藍色/綠色部署。

應用程式

下列功能/屬性定義於應用層級。

功能 描述
公用
端點
要存取應用程式的URL。
自訂
網域
CNAME的記錄用於保護自訂網域的安全。
服務
繫結
與其他 Azure 服務的現成連線。
受管理的身分識別
Microsoft Entra 識別碼的受控識別可讓您的應用程式輕鬆地存取其他Microsoft Entra 受保護的資源,例如 Azure 金鑰保存庫。
永久性
存儲
可讓數據在應用程式重新啟動之後保存的設定。

部署

下列功能/屬性是在部署層級上定義,並在交換生產環境與預備部署時交換。

功能 描述
CPU 每個應用程式實例的虛擬核心數目。
記憶體 每個應用程式執行個體的記憶體 GB 數。
執行個體
計數
手動或自動設定的應用程式實例數目。
自動縮放 根據預先定義的規則和排程自動調整實例計數。
JVM
選項
要設定的 JVM 選項。
環境變數
要設定的環境變數。
執行階段
版本
Java 8 或 Java 11。

環境

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

下一步