Share via


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

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但在我們努力更新資產,例如螢幕快照、影片和圖表時,您會在某些地方看到舊名稱一段時間。

本文適用於: ✔️ Java ✔️ C#

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

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

Diagram showing the relationship between the apps and deployments.

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

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

App

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

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

部署

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

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

下一步