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为一一对应关系,目前仅支持以下固定规格:
单位:MB。 |
WebContainer | String | 否 | 是 | 部署包依赖的Tomcat版本。 | 镜像不支持该参数。 |
SlsConfigs | String | 否 | 是 | 文件日志采集配置。 | 无 |
Cpu | Integer | 是 | 否 | 每个实例所需的CPU。目前仅支持固定规格的实例类型。 | 取值:
单位:毫核。 |
Deploy | Boolean | 否 | 否 | 是否立即部署。 | 取值:
|
Tags | List | 否 | 是 | 标签。 | 最多支持20个标签。 |
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 | 是 | 否 | 应用包类型。 | 取值:
|
CommandArgs | String | 否 | 是 | 镜像启动命令参数。 | 无 |
Envs | String | 否 | 是 | 容器环境变量参数。 | 容器环境变量参数的格式: [{"name":"envtmp","value":"0"}] 。
|
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"}] 。
|
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个字符,不能以aliyun 和acs: 开头,不能包含http:// 或https:// 。 |
Value | String | 否 | 否 | 标签值。 | 长度为0~128个字符,不能以aliyun 和acs: 开头,不能包含http:// 或https:// 。 |
返回值
Fn::GetAtt
- AppId:应用ID。
- ChangeOrderId:发布单ID,用于查询任务执行状态。
示例
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": { } }