ALIYUN::SAE::Application类型用于创建SAE应用。

语法

{
  "Type": "ALIYUN::SAE::Application",
  "Properties": {
    "Timezone": String,
    "AppDescription": String,
    "MountDesc": String,
    "NasId": String,
    "WarStartOptions": String,
    "Liveness": String,
    "Memory": Integer,
    "WebContainer": String,
    "SlsConfigs": String,
    "Cpu": Integer,
    "Deploy": Boolean,
    "PackageVersion": String,
    "AppName": String,
    "Jdk": String,
    "JarStartArgs": String,
    "PreStop": String,
    "Readiness": String,
    "PackageType": String,
    "CommandArgs": String,
    "Envs": String,
    "VSwitchId": String,
    "ImageUrl": String,
    "PostStart": String,
    "JarStartOptions": String,
    "MountHost": String,
    "Replicas": Integer,
    "CustomHostAlias": String,
    "VpcId": String,
    "Tags": List,
    "SecurityGroupId": String,
    "Command": String,
    "EdasContainerVersion": String,
    "PackageUrl": String,
    "NamespaceId": String
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
Timezone String 时区。 默认值:Asia/Shanghai。
AppDescription String 应用描述信息。 长度不超过1024个字符。
MountDesc String 挂载描述。
NasId String 挂载的NAS的ID。 NAS必须有可用的挂载点创建额度,或者其挂载点已经在专有网络内的交换机上。如果不指定该参数,而是指定了MountDesc参数,则默认自动购买一个NAS并挂载到VPC内的交换机上。
WarStartOptions String War包启动应用选项。 应用默认启动命令:java $JAVA_OPTS $CATALINA_OPTS -Options org.apache.catalina.startup.Bootstrap "$@" start
Liveness String 容器健康检查,健康检查失败的容器将重启。 目前仅支持容器内下发命令的方式。例如:{"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11}
Memory Integer 每个实例所需的内存。目前仅支持固定规格的实例类型。 与CPU为一一对应关系,目前仅支持以下固定规格:
  • 1024:对应CPU为500毫核。
  • 2048:对应CPU为500毫核和1000毫核。
  • 4096:对应CPU为1000毫核和2000毫核。
  • 8192:对应CPU为2000毫核和4000毫核。
  • 16384:对应CPU为4000毫核和8000毫核。
  • 32768:对应CPU为16000毫核。
  • 65536:对应CPU为8000毫核、16000毫核和32000毫核。
  • 131072:对应CPU为32000毫核。

单位:MB。

WebContainer String 部署包依赖的Tomcat版本。 镜像不支持该参数。
SlsConfigs String 文件日志采集配置。
Cpu Integer 每个实例所需的CPU。目前仅支持固定规格的实例类型。 取值:
  • 500
  • 1000
  • 2000
  • 4000
  • 8000
  • 16000
  • 32000

单位:毫核。

Deploy Boolean 是否立即部署。 取值:
  • true:立即部署。
  • false(默认值):不立即部署。
Tags List 标签。 最多支持20个标签。

更多信息,请参见Tags语法Tags属性

PackageVersion String 部署的包的版本号。 PackageType取值为War或FatJar时必须指定该参数。
AppName String 应用名称。 长度不超过36个字符,必须以英文字母开头。可包含英文字母、数字和短划线(-)。
Jdk String 部署包依赖的JDK版本。 镜像不支持该参数。
JarStartArgs String JAR包启动应用参数。 应用默认启动命令:$JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
PreStop String 容器删除前执行脚本。 容器删除前执行脚本,例如:{"exec":{"command":"cat","/etc/group"}}
Readiness String 应用启动状态检查脚本。 应用启动状态检查脚本,例如: {"exec":{"command":["sleep","6s"]},"initialDelaySeconds":15,"timeoutSeconds":12}

多次健康检查失败的容器将被重启。不通过健康检查的容器将不会有SLB流量进入。

PackageType String 应用包类型。 取值:
  • FatJar
  • War
  • Image
CommandArgs String 镜像启动命令参数。
Envs String 容器环境变量参数。 容器环境变量参数的格式: [{"name":"envtmp","value":"0"}]
  • name环境变量名称。
  • value:环境变量值或环境变量引用。
VSwitchId String 应用实例弹性网卡所在的交换机。 该交换机必须位于上述专有网络内。交换机与EDAS命名空间存在绑定关系。不指定该参数则为命名空间绑定的VSwitchId。
ImageUrl String 镜像地址。 只有Image类型应用可以配置镜像地址。
PostStart String 容器启动后执行脚本。 容器启动后执行脚本,例如:{"exec":{"command":"cat","/etc/group"}}
JarStartOptions String JAR包启动应用选项。 应用默认启动命令:$JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
MountHost String NAS在专有网络内的挂载点。
Replicas Integer 初始实例数。
CustomHostAlias String 容器内自定义host映射。 容器内自定义host映射,格式: [{"hostName":"samplehost","ip":"127.0.XX.XX"}]
  • hostName:域名或主机名。
  • ip:IP地址。
VpcId String SAE命名空间对应的专有网络。 在SAE中,一个命名空间只能对应一个专有网络,且不能修改。第一次在命名空间内创建SAE应用将形成绑定关系。多个命名空间可以对应一个专有网络。不填则默认为命名空间绑定的VpcId。
SecurityGroupId String 安全组ID。
Command String 镜像启动命令。 该命令必须为容器内存在的可执行的对象。例如:sleep。

设置该命令将导致镜像原本的启动命令失效。

EdasContainerVersion String EDAS Pandora应用使用的运行环境。
PackageUrl String 部署包地址。 PackageType取值为War或FatJar时该参数有效。
NamespaceId String EDAS命名空间对应ID。 仅支持名称为小写英文字母和短划线(-)的命名空间,必须以小写英文字母开头。

Tags语法

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Tags属性

属性名称 类型 必须 允许更新 描述 约束
Key String 标签键。 长度为1~128个字符,不能以aliyunacs:开头,不能包含http://https://
Value String 标签值。 长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

返回值

Fn::GetAtt

  • AppId:应用ID。
  • ChangeOrderId:发布单ID,用于查询任务执行状态。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      NamespaceId:
        Type: String
        Description: |-
          EDAS namespace corresponding to ID. Canada supports only the name of the scribe lowercase namespace must begin with a letter.
          Namespace can interface to obtain from DescribeNamespaceList.
      VpcId:
        Type: String
        AssociationProperty: ALIYUN::ECS::VPC::VPCId
      VSwitchId:
        Type: String
        AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
        AssociationPropertyMetadata:
          VpcId: ${VpcId}
      SecurityGroupId:
        Type: String
        AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
        AssociationPropertyMetadata:
          VpcId: ${VpcId}
    Resources:
      Application:
        Type: ALIYUN::SAE::Application
        Properties:
          AppName: TestApp
          NamespaceId:
            Ref: NamespaceId
          VpcId:
            Ref: VpcId
          VSwitchId:
            Ref: VSwitchId
          SecurityGroupId:
            Ref: SecurityGroupId
          Cpu: 500
          Memory: 1024
          Replicas: 2
          PackageType: War
          Deploy: true
          Timezone: Asia/Shanghai
    Outputs: {}
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "NamespaceId": {
          "Type": "String",
          "Description": "EDAS namespace corresponding to ID. Canada supports only the name of the scribe lowercase namespace must begin with a letter.\nNamespace can interface to obtain from DescribeNamespaceList."
        },
        "VpcId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
        },
        "VSwitchId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
          "AssociationPropertyMetadata": {
            "VpcId": "${VpcId}"
          }
        },
        "SecurityGroupId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
          "AssociationPropertyMetadata": {
            "VpcId": "${VpcId}"
          }
        }
      },
      "Resources": {
        "Application": {
          "Type": "ALIYUN::SAE::Application",
          "Properties": {
            "AppName": "TestApp",
            "NamespaceId": {
              "Ref": "NamespaceId"
            },
            "VpcId": {
              "Ref": "VpcId"
            },
            "VSwitchId": {
              "Ref": "VSwitchId"
            },
            "SecurityGroupId": {
              "Ref": "SecurityGroupId"
            },
            "Cpu": 500,
            "Memory": 1024,
            "Replicas": 2,
            "PackageType": "War",
            "Deploy": true,
            "Timezone": "Asia/Shanghai"
          }
        }
      },
      "Outputs": {
      }
    }

更多示例,请参见创建命名空间、创建SAE应用和为应用绑定SLB的组合示例:JSON示例YAML示例