全部產品
Search
文件中心

:ALIYUN::EDAS::Application

更新時間:Jun 19, 2024

ALIYUN::EDAS::Application類型用於建立ECS叢集的應用。

文法

{
  "Type": "ALIYUN::EDAS::Application",
  "Properties": {
    "ApplicationName": String,
    "HealthCheckURL": String,
    "Description": String,
    "ClusterId": String,
    "PackageType": String,
    "BuildPackId": Integer,
    "EcuInfo": String,
    "ComponentIds": String,
    "LogicalRegionId": String,
    "ResourceGroupId": String,
    "Deployment": Map
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

ApplicationName

String

應用程式名稱。

必須以字母開頭,可包含數字、英文字母、虛線(-)和底線(_),長度為1~36個字元。

HealthCheckURL

String

健全狀態檢查URL。

Description

String

描述資訊。

ClusterId

String

向指定叢集ID的ECS叢集建立應用,不指定則向預設ECS叢集建立應用。

PackageType

String

應用程式套件格式

取值:

  • war

  • jar

ResourceGroupId

String

資源群組ID。

BuildPackId

Integer

EDAS-Container構建包號。

您可以通過容器版本列表介面ListBuildPack或者根據容器版本說明 中的構建包序號列查詢EDAS-Container構建包號。

當建立HSF應用時,必須指定該參數。

EcuInfo

String

需要擴容機器的ecu_id(匯入EDAS的 ECS執行個體在EDAS中的唯一身份)。

多個ecu_id用“,”分開。

您可以通過ListScaleOutEcu介面查詢ecu_id。

ComponentIds

String

應用組件ID。

說明

設定該參數需要將Java或者Python SDK版本更新到2.57.3及以上。未使用EDAS提供的SDK的使用者可直接設定該參數。例如:使用者在使用aliyun-python-sdk-core、aliyun-java-sdk-core、aliyun cli等SDK時可以直接設定該參數。

當建立的應用運行環境使用Apache Tomcat(war包格式的 Dubbo應用使用)或者標準Java應用(jar包格式的Spring Boot/Spring Cloud應用使用)運行環境時需要指定。常用的應用組件 ID 及含義如下:

  • 4:Apache Tomcat 7.0.91

  • 7:Apache Tomcat 8.5.42

  • 5:OpenJDK 1.8.x

  • 6:OpenJDK 1.7.x

LogicalRegionId

String

命名空間ID,樣本值:cn-beijing:prod

  • 如果指定的叢集不在預設命名空間下,則需要指定該參數,否則會遇到錯誤提示application regionId is different with cluster regionId!

  • 如果在預設命名空間下,則不需要指定該參數。

該參數需要與指定的叢集ID所在的命名空間保持一致。您可以登入EDAS控制台,選擇應用管理>命名空間,找到命名空間對應的命名空間ID。

Deployment

Map

部署應用程式資訊。

更多資訊,請參見Deployment屬性

Deployment文法

"Deployment": {
  "ReleaseType": Integer,
  "Batch": Integer,
  "TrafficControlStrategy": String,
  "BatchWaitTime": Integer,
  "PackageVersion": String,
  "Desc": String,
  "Gray": Boolean,
  "WarUrl": String,
  "GroupId": String,
  "AppEnv": String
}

Deployment屬性

屬性名稱

類型

必須

允許更新

描述

約束

ReleaseType

Integer

分批方式。

取值:

  • 0為自動。

  • 1為各批次間需要手動確認。可在控制台目標應用的變更流程詳情中單擊繼續下一批,也可通過調用ContinuePipeline繼續下一批(由於使用API部署,建議使用自動分批),請參見ContinuePipeline

Batch

Integer

每組批次。

  • 當指定了應用分組的GroupId為具體的某個應用分組ID時,表示向指定應用分組部署。此時可指定的最小批次數為1,最大批次數為該應用分組下正常狀態的ECS執行個體數最大值,實際分批數結果範圍:[1,指定的分批數] (指定的分批數=指定的分組下面ECS總數)。

  • 當指定了應用分組的GroupId為all時,表示向所有應用分組部署,此時可指定的最小批次數為1,最大批次數為正常狀態的ECS數量最多的分組下的ECS執行個體數。

TrafficControlStrategy

String

灰階發布策略內容。

BatchWaitTime

Integer

分批等待時間。

單位:分鐘。

  • 預設為0,表示不等待。

  • 最大為5。

當實際批次數較多時,需要設定一個合理值,否則會導致本次應用部署的變更期間比較長。

PackageVersion

String

部署的應用部署套件版本。

最長64個字元,建議使用時間戳。

Desc

String

應用部署描述資訊。

Gray

Boolean

是否為金絲雀發布。

取值:

  • true:金絲雀發布。

    • 灰階發布時,必須指定灰階發布的分組ID,即GroupId。

    • 灰階發布作為一個批次發布。

    • 灰階結束後,正常發布,分組批次由Batch控制。

  • false:非金絲雀發布(單批或分批發布)。

WarUrl

String

應用部署套件(WAR或JAR)的URL地址。

DeployTypeurl時必填,建議使用OSS儲存的應用部署套件路徑。

GroupId

String

部署分組ID。

AppEnv

String

部署環境變數。

格式必須符合{"name":"x","value":"y"},{"name":"x2","value":"y2"}key固定為namevalue

傳回值

Fn::GetAtt

  • Port:建立成功的應用連接埠號碼,預設值:8080。

  • AppId:應用ID,EDAS應用的唯一識別碼。

樣本

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ClusterId:
    Type: String
    Description: Cluster ID of ECS application
    Default: '****'
  RegionTag:
    Type: String
    Description: Allowed letters and numbers
    Default: mytest
  ApplicationName:
    Type: String
    Default: mytest
Resources:
  App:
    Type: ALIYUN::EDAS::Application
    Properties:
      ApplicationName:
        Ref: ApplicationName
      LogicalRegionId:
        Fn::Join:
          - ':'
          - - Ref: ALIYUN::Region
            - Ref: RegionTag
      ClusterId:
        Ref: ClusterId
      PackageType: jar
Outputs:
  ClusterName:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterName
  IaasProvider:
    Value:
      Fn::GetAtt:
        - Cluster
        - IaasProvider
  ClusterId:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterId
  ClusterType:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterType
  Port:
    Value:
      Fn::GetAtt:
        - App
        - Port
  AppId:
    Value:
      Fn::GetAtt:
        - App
        - AppId
  GroupName:
    Value:
      Fn::GetAtt:
        - DeployGroup
        - GroupName
  Id:
    Value:
      Fn::GetAtt:
        - DeployGroup
        - Id
  DeployGroupAppId:
    Value:
      Fn::GetAtt:
        - DeployGroup
        - AppId
  BelongRegion:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - BelongRegion
  DebugEnable:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - DebugEnable
  UserId:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - UserId
  LogicalRegionId:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - Id
  RegionName:
    Value:
      Fn::GetAtt:
        - LogicalRegion
        - RegionName

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ClusterId": {
      "Type": "String",
      "Description": "Cluster ID of ECS application",
      "Default": "****"
    },
    "RegionTag": {
      "Type": "String",
      "Description": "Allowed letters and numbers",
      "Default": "mytest"
    },
    "ApplicationName": {
      "Type": "String",
      "Default": "mytest"
    }
  },
  "Resources": {
    "App": {
      "Type": "ALIYUN::EDAS::Application",
      "Properties": {
        "ApplicationName": {
          "Ref": "ApplicationName"
        },
        "LogicalRegionId": {
          "Fn::Join": [
            ":",
            [
              {
                "Ref": "ALIYUN::Region"
              },
              {
                "Ref": "RegionTag"
              }
            ]
          ]
        },
        "ClusterId": {
          "Ref": "ClusterId"
        },
        "PackageType": "jar"
      }
    }
  },
  "Outputs": {
    "ClusterName": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterName"
        ]
      }
    },
    "IaasProvider": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "IaasProvider"
        ]
      }
    },
    "ClusterId": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterId"
        ]
      }
    },
    "ClusterType": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterType"
        ]
      }
    },
    "Port": {
      "Value": {
        "Fn::GetAtt": [
          "App",
          "Port"
        ]
      }
    },
    "AppId": {
      "Value": {
        "Fn::GetAtt": [
          "App",
          "AppId"
        ]
      }
    },
    "GroupName": {
      "Value": {
        "Fn::GetAtt": [
          "DeployGroup",
          "GroupName"
        ]
      }
    },
    "Id": {
      "Value": {
        "Fn::GetAtt": [
          "DeployGroup",
          "Id"
        ]
      }
    },
    "DeployGroupAppId": {
      "Value": {
        "Fn::GetAtt": [
          "DeployGroup",
          "AppId"
        ]
      }
    },
    "BelongRegion": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "BelongRegion"
        ]
      }
    },
    "DebugEnable": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "DebugEnable"
        ]
      }
    },
    "UserId": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "UserId"
        ]
      }
    },
    "LogicalRegionId": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "Id"
        ]
      }
    },
    "RegionName": {
      "Value": {
        "Fn::GetAtt": [
          "LogicalRegion",
          "RegionName"
        ]
      }
    }
  }
}