ALIYUN::SAE::Application

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,
    "AssociateEip": Boolean,
    "AcrInstanceId": String,
    "OssAkId": String,
    "ProgrammingLanguage": String,
    "OssAkSecret": String,
    "Python": String,
    "BaseAppId": String,
    "EnableEbpf": String,
    "PhpArmsConfigLocation": String,
    "PhpConfig": String,
    "MicroRegistrationConfig": String,
    "TerminationGracePeriodSeconds": Integer,
    "ConfigMapMountDesc": String,
    "PvtzDiscoverySvc": String,
    "AcrAssumeRoleArn": String,
    "TomcatConfig": String,
    "AppSource": String,
    "PythonModules": String,
    "NasConfigs": String,
    "MicroRegistration": String,
    "ServiceTags": String,
    "ImagePullSecrets": String,
    "AutoConfig": Boolean,
    "KafkaConfigs": String,
    "Php": String,
    "OssMountDescs": List,
    "PhpConfigLocation": String,
    "SaeVersion": 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。

仅支持名称为小写英文字母和短划线(-)的命名空间,必须以小写英文字母开头。

AssociateEip

Boolean

是否绑定 EIP。

取值说明如下:

  • true:绑定。

  • false:不绑定。

AcrInstanceId

String

ACR 企业版实例 ID。

OssAkId

String

OSS 读写的 AccessKey ID。

ProgrammingLanguage

String

创建应用的技术栈语言。

取值说明如下:

  • java:Java 语言。

  • php:PHP 语言。

  • other:多语言,例如 Python、C++、Go、.NET 和 Node.js 等。

OssAkSecret

String

OSS 读写的 AccessKey Secret。

Python

String

Python 环境。

支持 PYTHON 3.9.15。

BaseAppId

String

基础应用 ID。

EnableEbpf

String

基于 eBPF 技术,对非 Java 应用开启应用监控能力。

取值说明如下:

  • true:开启。

  • false:关闭。默认值。

PhpArmsConfigLocation

String

PHP 应用监控挂载路径,需要您保证 PHP 服务器一定会加载这个路径的配置文件。

您无需关注配置内容,SAE 会自动渲染正确的配置文件。

PhpConfig

String

PHP 配置文件内容。

MicroRegistrationConfig

String

注册中心配置信息。

TerminationGracePeriodSeconds

Integer

优雅下线超时时间。

默认为 30,单位为秒。取值范围为 1~300。

ConfigMapMountDesc

String

ConfigMap挂载描述。

使用在命名空间配置项页面创建的配置项来向容器中注入配置信息。参数说明如下:

说明

可通过传递sae-sys-configmap-all参数挂载所有键。

PvtzDiscoverySvc

String

开启 K8s Service 服务注册发现。

取值说明如下:

  • serviceName:服务名称。格式为自定义-命名空间 ID,其中后缀-命名空间 ID不支持自定义,需根据应用所在命名空间填写。例如,选择华北 2(北京)地域的默认命名空间,则为-cn-beijing-default

  • namespaceId:命名空间 ID。

  • portProtocols:端口与协议。端口取值范围为[1,65535],协议支持TCPUDP

  • portAndProtocol:端口与协议。端口取值范围为[1,65535],协议支持TCPUDP优先推荐 portProtocols,如果设置了 portProtocols,仅 portProtocols 生效

  • enable:开启 K8s Service 服务注册发现。

AcrAssumeRoleArn

String

跨账号拉取镜像时所需的 RAM 角色的 ARN。

更多信息,请参见为RAM角色授权

TomcatConfig

String

Tomcat 文件配置。

设置为""或"{}"表示删除配置:

  • port:端口范围为 1024~65535,小于 1024 的端口需要 Root 权限才能操作。因为容器配置的是 Admin 权限,所以请填写大于 1024 的端口。如果不配置,则默认为 8080。

  • contextPath:访问路径,默认为根目录"/"。

  • maxThreads:配置连接池的连接数大小,默认大小为 400。

  • uriEncoding:Tomcat 的编码格式,包括UTF-8ISO-8859-1GBK 和 GB2312。如果不设置,则默认为ISO-8859-1

  • useBodyEncodingForUri:是否使用BodyEncoding for URL,默认为true

AppSource

String

微服务应用。

可选值:

  • micro_service

PythonModules

String

自定义安装模块依赖。

默认安装根目录下 requirements.txt 定义的依赖项。如果未配置或自定义软件包,可以指定安装的依赖。

NasConfigs

String

挂载 NAS 的配置。

取值说明如下:

  • mountPath:容器挂载路径。

  • readOnly:取值为false时,表示拥有读写权限。

  • nasId:NAS ID。

  • mountDomain:容器挂载点地址。更多信息,请参见DescribeMountTargets

  • nasPath:NAS 相对文件目录。

MicroRegistration

String

选择 Nacos 注册中心。

取值说明如下:

  • 0:SAE 内置 Nacos。

  • 1:用户自建 Nacos。

  • 2:MSE 商业版 Nacos。

ServiceTags

String

应用配置的灰度标签。

ImagePullSecrets

String

对应保密字典 ID。

AutoConfig

Boolean

是否自动配置网络环境。

取值说明如下:

  • true:创建应用时 SAE 自动配置网络环境。NamespaceIdVpcIdvSwitchIdSecurityGroupId的取值将被忽略。

  • false:创建应用时 SAE 手动配置网络环境。

说明

如果选择为true,则传其他的NamespaceId会被忽略。

KafkaConfigs

String

日志采集到 Kafka 的配置汇总信息。

取值说明如下:

  • kafkaEndpoint:Kafka API 的服务接入地址。

  • kafkaInstanceId:Kafka 实例 ID。

  • kafkaConfigs:单条或多条日志的配置汇总信息。取值说明,请参见本文的请求参数kafkaConfigs

Php

String

PHP 部署包依赖的 PHP 版本。

无。

OssMountDescs

List

OSS 挂载描述信息。

参数说明如下:

  • bucketName:Bucket 名称。

  • bucketPath:您在 OSS 创建的目录或 OSS 对象,如果 OSS 挂载目录不存在,会触发异常。

  • mountPath:您在 SAE 的容器路径。如果路径已存在,为覆盖关系;如果路径不存在,会新建。

  • readOnly:容器路径是否对挂载目录资源有可读权限,取值说明如下:

    • true:只读权限。

    • false:读写权限。

PhpConfigLocation

String

PHP 应用启动配置挂载路径

需要您保证 PHP 服务器会使用这个配置文件启动。

SaeVersion

String

SAE 版本。

支持版本如下:

  • v1

  • v2

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,用于查询任务执行状态。

示例

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: {}
{
  "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的组合示例:YAML示例