前言

通过该组件,快速通过 SAE 部署demo应用

测试

s.yaml

edition: 1.0.0          #  命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范
name: sae-app           #  项目名称
access: default         #  秘钥别名

services:
  sae-test: #  服务名称
    component:  devsapp/sae
    props:
      Region: cn-beijing
      Namespace:
        NamespaceId: cn-beijing:test
        NamespaceName: name
        NamespaceDescription: namespace desc
      Application:
        AppName: test
        AppDescription: This is a test description.
        Code:
#          Image: registry-vpc.cn-shenzhen.aliyuncs.com/sae-demo-image/consumer:1.0
          Package: https://edas-sh.oss-cn-shanghai.aliyuncs.com/apps/K8S_APP_ID/57ba4361-82aa-4b08-9295-b36b00f0a38e/hello-sae.jar
#          Package:
#            Path: 路径
#            Bucket:
#              Region: 上传的oss地区
#              Name: 上传的oss名字
        Cpu: 500
        Memory: 1024
        Replicas: 1
        AutoConfig: true
      SLB:
        Internet: [{"port":80,"targetPort":8080,"protocol":"TCP"}]

参数详情

参数名必填类型参数描述
RegionTrueString地区
NamespaceTrueStruct命名空间
ApplicationTrueStruct应用配置
SLBFalseStructSLB配置

Namespace

名称类型是否必选示例值描述
NamespaceIdStringcn-beijing:test命名空间ID。仅允许小写英文字母和数字。
NamespaceNameStringname命名空间名称。
NamespaceDescriptionStringdesc命名空间描述信息。

Application

名称类型是否必选示例值描述
AppNameStringtest应用名称。允许数字、字母以及短划线(-)组合。必须以字母开始,不超过36个字符。
NamespaceIdStringcn-beijing:testSAE命名空间ID。仅支持名称为小写字母加短划线(-)的命名空间,必须以字母开始。命名空间可通过调用DescribeNamespaceList接口获取。
AppDescriptionStringThis is a test description.应用描述信息。不超过1024个字符。
CodeStruct-代码
VpcIdStringvpc-bp1aevy8sofi8mh1q****SAE命名空间对应的VPC。在SAE中,一个命名空间只能对应一个VPC,且不能修改。第一次在命名空间内创建SAE应用将形成绑定关系。多个命名空间可以对应一个VPC。不填则默认为命名空间绑定的VPC ID。
VSwitchIdStringvsw-bp12mw1f8k3jgygk9****应用实例弹性网卡所在的虚拟交换机。该交换机必须位于上述VPC内。该交换机与SAE命名空间同样存在绑定关系。不填则默认为命名空间绑定的vSwitch ID。
PackageVersionString1.0.0部署包的版本号。当Package Type为War和FatJar时必填。
CpuInteger1000每个实例所需的CPU,单位为毫核,不能为0。目前仅支持以下固定规格:
500
1000
2000
4000
8000
16000
32000
MemoryInteger1024每个实例所需的内存,单位为MB,不能为0。与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毫核。
ReplicasInteger1初始实例数。
CommandStringsleep镜像启动命令。该命令必须为容器内存在的可执行的对象。例如:sleep。设置该命令将导致镜像原本的启动命令失效。
CommandArgsString1d镜像启动命令参数。上述启动命令所需参数。例如:1d
EnvsString[{"name":"envtmp","value":"0"}]容器环境变量参数。
CustomHostAliasString[{"hostName":"samplehost","ip":"127.0.0.1"}]容器内自定义host映射。
JarStartOptionsString-Xms4G -Xmx4GJAR包启动应用选项。应用默认启动命令:$JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
JarStartArgsStringcustom-argsJAR包启动应用参数。应用默认启动命令:$JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
LivenessString{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2}容器健康检查,健康检查失败的容器将被关闭并恢复。目前仅支持容器内下发命令的方式。例如:{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2}
command:设置健康检查命令。
initialDelaySeconds:设置健康检查延迟检测时间,单位为秒。
periodSeconds:设置健康检查周期,单位为秒。
timeoutSeconds:设置健康检查超时等待时间,单位为秒。
ReadinessString{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2}应用启动状态检查,多次健康检查失败的容器将被关闭并重启。不通过健康检查的容器将不会有SLB流量进入。例如:{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2}
command:设置健康检查命令。
initialDelaySeconds:设置健康检查延迟检测时间,单位为秒。
periodSeconds:设置健康检查周期,单位为秒。
timeoutSeconds:设置健康检查超时等待时间,单位为秒。
DeployBooleantrue是否立即部署。取值说明如下:
true:立即部署。
false:默认值,稍后部署。
EdasContainerVersionString3.5.3Pandora应用使用的运行环境。
TimezoneStringAsia/Shanghai时区默认为Asia/Shanghai。
SlsConfigsString[{"logDir":"/root/logs/hsf.log"}]文件日志采集配置。
使用SAE自动创建的SLS资源:[{"logDir":"/root/logs/hsf.log"}]。
使用自定义的SLS资源:[{"projectName":"test-sls","logDir":"/tmp/readiness.txt","logstoreName":"logstore","logtailName":"testLogtail"}]。
projectName:配置SLS上的Project名称。
logDir:配置收集日志文件的路径。
logstoreName:配置SLS上的Logstore名称。
logtailName:配置SLS上的Logtail名称,如果不指定,则表示新建Logtail。
NasIdStringKSAK****挂载的NAS的ID,必须与集群处在同一个地域。它必须有可用的挂载点创建额度,或者其挂载点已经在VPC内的交换机上。如果不填,且存在mountDescs字段,则默认将自动购买一个NAS并挂载至VPC内的交换机上。
MountHostStringexample.comNAS在应用VPC内的挂载点。
MountDescString[{MountPath: "/tmp", NasPath: "/"}]挂载描述。
PreStopString{"exec":{"command":["cat","/etc/group"]}}停止前执行脚本,格式如:{"exec":{"command":["cat","/etc/group"]}}
PostStartString{"exec":{"command":["cat","/etc/group"]}}启动后执行脚本,格式如:{"exec":{"command":["cat","/etc/group"]}}
WarStartOptionsStringcustom-optionWAR包启动应用选项。应用默认启动命令:java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap "$@" start
ConfigMapMountDescString[{"configMapId":16,"key":"test","mountPath":"/tmp"}]ConfigMap挂载描述。
SecurityGroupIdStringsg-wz969ngg2e49q5i4****安全组ID。
AutoConfigBooleantrue是否自动配置网络环境。取值说明如下:
true:创建应用时SAE自动配置网络环境。NamespaceId、VpcId、vSwitchId和SecurityGroupId的取值将被忽略。
false:创建应用时SAE手动配置网络环境。
TerminationGracePeriodSecondsInteger30优雅下线超时时间,默认为30,单位为秒。取值范围为1~60。
PhpArmsConfigLocationString/usr/local/etc/php/conf.d/arms.iniPHP应用监控挂载路径,需要您保证PHP服务器一定会加载这个路径的配置文件。
您无需关注配置内容,SAE会自动渲染正确的配置文件。
PhpConfigLocationString/usr/local/etc/php/php.iniPHP应用启动配置挂载路径,需要您保证PHP服务器会使用这个配置文件启动。
PhpConfigStringk1=v1PHP配置文件内容。
TomcatConfigString{"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false}Tomcat文件配置,设置为""或"{}"表示删除配置:

useDefaultConfig:是否使用自定义配置,若为true,则表示不使用自定义配置;若为false,则表示使用自定义配置。若不使用自定义配置,则下面的参数配置将不会生效。
contextInputType:选择应用的访问路径。
war:无需填写自定义路径,应用的访问路径是WAR包名称。
root:无需填写自定义路径,应用的访问路径是/。
custom:需要在下面的自定义路径中填写自定义的路径。
contextPath:自定义路径,当contextInputType类型为custom时,才需要配置此参数。
httpPort:端口范围为1024~65535,小于1024的端口需要Root权限才能操作。因为容器配置的是Admin权限,所以请填写大于1024的端口。如果不配置,则默认为8080。
maxThreads:配置连接池的连接数大小,默认大小是400。
uriEncoding:Tomcat的编码格式,包括UTF-8、ISO-8859-1、GBK和GB2312。如果不设置则默认为ISO-8859-1。
useBodyEncoding:是否使用BodyEncoding for URL。
AcrAssumeRoleArnStringacs:ram::123456789012****:role/adminrole跨账号拉取镜像时所需的RAM角色的ARN。
OssMountDescsString[{"bucketName": "oss-bucket", "bucketPath": "data/user.data", "mountPath": "/usr/data/user.data", "readOnly": true}]OSS挂载描述信息。
OssAkIdStringxxxxxxOSS读写的AccessKey ID。
OssAkSecretStringxxxxxxOSS读写的AccessKey Secret

代码配置

名称类型是否必选示例值描述
ImageStringregistry-vpc.cn-shenzhen.aliyuncs.com/sae-demo-image/consumer:1.0镜像地址
PackageString/Structhttps://edas-sh.oss-cn-shanghai.aliyuncs.com/apps/K8S_APP_ID/57ba4361-82aa-4b08-9295-b36b00f0a38e/hello-sae.jar代码包

当Package为Struct时:

名称类型是否必选示例值描述
PathString./abc.jar路径
BucketStruct-对象存储配置

Bucket如果被指定时:

名称类型是否必选示例值描述
RegionStringcn-hangzhou上传的oss地区
NameStructtest上传的oss名字

SLB

名称类型是否必选示例值描述
InternetString[{"port":80,"targetPort":8080,"protocol":"TCP"}]绑定公网SLB。例如:[{"port":80,"targetPort":8080,"protocol":"TCP"}],表示将容器的8080端口通过SLB的80端口暴露服务,协议为TCP。
IntranetString[{"port":80,"targetPort":8080,"protocol":"TCP"}]绑定私网SLB。例如:[{"port":80,"targetPort":8080,"protocol":"TCP"}],表示将容器的8080端口通过SLB的80端口暴露服务,协议为TCP。
InternetSlbIdStringlb-bp1tg0k6d9nqaw7l1****使用指定的已购买的公网SLB,目前只支持非共享型实例。
IntranetSlbIdStringlb-bp1tg0k6d9nqaw7l1****使用指定的已购买的私网SLB,目前只支持非共享型实例。
在 GitHub 上编辑本页面 更新时间: Fri, Nov 25, 2022