ALIYUN::FC::Function类型用于创建函数。函数必须从属于服务,一个服务下的所有函数都共享该服务的属性,例如:授权、日志设置等。
语法
{
"Type": "ALIYUN::FC::Function",
"Properties": {
"Code": Map,
"FunctionName": String,
"ServiceName": String,
"InstanceType": String,
"MemorySize": Integer,
"InstanceConcurrency": Integer,
"EnvironmentVariables": Map,
"Initializer": String,
"Handler": String,
"Timeout": Integer,
"InitializationTimeout": Integer,
"CustomContainerConfig": Map,
"AsyncConfiguration": Map,
"CAPort": Integer,
"Runtime": String,
"Description": String,
"Cpu": Number,
"CustomRuntimeConfig": Map,
"GpuMemorySize": Integer,
"InstanceSoftConcurrency": Integer,
"DiskSize": Integer,
"InstanceLifecycleConfig": Map,
"CustomDNS": Map,
"CustomHealthCheckConfig": Map
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Initializer | String | 否 | 是 | 初始化函数执行的入口。 | 具体格式和语言相关。 |
InitializationTimeout | Integer | 否 | 是 | 初始化函数运行的超时时间。 | 取值范围:1~300。 单位:秒。 默认值:3。 初始化函数时,如果超该时间,则终止执行。 |
Code | Map | 否 | 是 | 指定Code ZIP包。 | 更多信息,请参见Code属性。 |
InstanceType | String | 否 | 是 | 函数实例类型。 | 取值:
|
Description | String | 否 | 是 | 函数的描述。 | 无 |
ServiceName | String | 是 | 否 | 服务名称。 | 长度为1~128个字符。 |
MemorySize | Integer | 否 | 是 | 函数的内存规格。 | 取值:
单位:MB。 |
InstanceConcurrency | Integer | 否 | 是 | 实例并发度。 | 取值范围:1~100。 说明 Python函数实例不支持该参数。 |
EnvironmentVariables | Map | 否 | 是 | 函数设置的环境变量。 | 无 |
Handler | String | 是 | 是 | 函数执行的入口。 | 以Python为例,创建函数时指定的Handler为index.handler,文件名为index.py,入口函数为handler。具体格式和语言相关。 |
Timeout | Integer | 否 | 是 | 函数运行的超时时间。 | 取值范围:1~600。 默认值:3。 单位:秒。 运行函数时,如果超出该时间,则终止执行。 |
Runtime | String | 是 | 是 | 函数的运行环境。 | 目前支持nodejs6、nodejs8、nodejs10、nodejs12、python2.7、python3、java8、custom、custom-container。更多信息,请参见函数计算支持的函数运行环境列表。 |
FunctionName | String | 是 | 否 | 函数名称。 | 长度为1~128个字符。以英文字母或下划线(_)开头,可以包含英文字母、下划线(_)、数字和短划线(-)。 |
CustomContainerConfig | Map | 否 | 是 | Runtime取值为custom-container时的配置,配置后可以使用自定义容器镜像执行函数。 | 更多信息,请参见CustomContainerConfig属性。 |
CAPort | Integer | 否 | 是 | 自定义HTTP Server监听的端口。 | 默认值:9000。 说明 Runtime取值为custom或custom-container时该参数生效。 |
AsyncConfiguration | Map | 否 | 是 | 异步调用配置。 | 更多信息,请参见AsyncConfiguration属性。 |
Cpu | Number | 否 | 是 | 函数的CPU规格。 | 无。 |
CustomRuntimeConfig | Map | 否 | 是 | Custom Runtime函数详细配置。 | 无。 |
GpuMemorySize | Integer | 否 | 是 | function的GPU显存规格。 | 单位为MB,为1024MB的倍数。 |
InstanceSoftConcurrency | Integer | 否 | 是 | 实例软并发度,用于优雅扩容。 | 当实例上的并发数超过软并发度时,会触发实例扩容。例如,您的实例启动较慢,可以通过设置合适的软实例并发度,提前启动实例。 取值小于或等于InstanceConcurrency。 |
DiskSize | Integer | 否 | 是 | 函数的磁盘规格。 | 单位为MB。 可选值为512 MB或10240 MB。 |
InstanceLifecycleConfig | Map | 否 | 是 | 实例生命周期函数配置。 | 更多信息,请参见InstanceLifecycleConfig属性。 |
CustomDNS | Map | 否 | 是 | 函数自定义DNS配置。 | 更多信息,请参见CustomDNS属性。 |
CustomHealthCheckConfig | Map | 否 | 是 | Custom Runtime和Custom Container自定义健康检查配置。 | 更多信息,请参见CustomHealthCheckConfig属性。 |
Code语法
"Code": {
"OssBucketName": String,
"OssObjectName": String,
"ZipFile": String,
"SourceCode": String
}
Code属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
OssBucketName | String | 否 | 是 | Code ZIP包的存储空间名称。 | 无 |
OssObjectName | String | 否 | 是 | Code ZIP包的对象名称。 | 无 |
ZipFile | String | 否 | 是 | Code ZIP包的Base64编码。 | 无 |
SourceCode | String | 否 | 是 | 函数源码。 | 最长为4096个字符。支持Node.js、PHP、Python语言。 ROS会将参数值写入一个UTF-8编码的名为index的文件。 当同时指定ZipFile、SourceCode、OssBucketName和OssObjectName时,优先级由高到低依次为:ZipFile、SourceCode、OssBucketName和OssObjectName。 |
CustomContainerConfig语法
"CustomContainerConfig": {
"Command": String,
"Args": String,
"Image": String,
"AccelerationType": String,
"InstanceId": String,
"WebServerMode": Boolean
}
CustomContainerConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Command | String | 否 | 是 | 容器启动命令。 | 取值示例: |
Args | String | 否 | 是 | 容器启动参数。 | 取值示例: |
Image | String | 是 | 是 | 容器镜像地址。 | 取值示例: |
AccelerationType | String | 否 | 是 | 是否开启镜像加速。 | 取值:
|
InstanceId | String | 否 | 是 | 容器镜像服务企业版实例的ID。 | 当容器镜像选择的是企业版实例时,您需要添加企业版实例ID,该实例的默认解析IP必须是服务所在的VPC网络地址。 说明 目前不支持使用PrivateZone产品定义域名解析。 |
WebServerMode | Boolean | 否 | 是 | 镜像运行是否为Web Server模式。 | 取值:
|
AsyncConfiguration语法
"AsyncConfiguration": {
"Destination": Map
"MaxAsyncRetryAttempts": Integer,
"MaxAsyncEventAgeInSeconds": Integer,
"StatefulInvocation": Boolean
}
AsyncConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Destination | Map | 否 | 否 | 异步调用目标。 | 更多信息,请参见Destination属性。 |
MaxAsyncRetryAttempts | Integer | 否 | 是 | 最大重试次数。 | 无 |
MaxAsyncEventAgeInSeconds | Integer | 否 | 是 | 消息最大存活时长。 | 无 |
StatefulInvocation | Boolean | 否 | 是 | 是否开启有状态异步调用。 | 取值:
更多信息,请参见功能概览。 |
Destination语法
"Destination": {
"OnSuccess": String,
"OnFailure": String
}
Destination属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
OnSuccess | String | 否 | 是 | 当函数执行成功时,函数计算将调用该配置对应的目标。 | 无 |
OnFailure | String | 否 | 是 | 当函数执行失败(系统错误或函数内部错误)时,函数计算将调用该配置对应的目标。 | 无 |
InstanceLifecycleConfig语法
"InstanceLifecycleConfig":{
"PreFreeze": Map,
"PreStop": Map
}
InstanceLifecycleConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
PreFreeze | Map | 否 | 是 | 生命周期函数配置。 | 更多信息,请参见PreFreeze属性。 |
PreStop | Map | 否 | 是 | 生命周期函数配置。 | 更多信息,请参见PreStop属性。 |
PreStop语法
"PreStop":{
"Handler": String,
"Timeout": Integer
}
PreStop属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Handler | String | 否 | 是 | 函数执行的入口。 | 更多信息,请参见基础信息。 |
Timeout | Integer | 否 | 是 | 运行的超时时间。 | 单位为秒。 |
PreFreeze语法
"PreFreeze":{
"Handler": String,
"Timeout": Integer
}
PreFreeze属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Handler | String | 否 | 是 | 函数执行的入口。 | 更多信息,请参见基础信息。 |
Timeout | Integer | 否 | 是 | 运行的超时时间。 | 单位为秒。 |
CustomHealthCheckConfig语法
"CustomHealthCheckConfig":{
"SuccessThreshold": Integer,
"InitialDelaySeconds": Integer,
"PeriodSeconds": Integer,
"HttpGetUrl": String,
"TimeoutSeconds": Integer,
"FailureThreshold": Integer
}
CustomHealthCheckConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
SuccessThreshold | Integer | 否 | 是 | 健康检查成功次数阈值。 | 达到该值后系统认为检查成功。 取值范围1~120。 默认值为1。 |
InitialDelaySeconds | Integer | 否 | 是 | 容器启动到发起健康检查的延迟。 | 取值范围0~120。 默认值为0。 |
PeriodSeconds | Integer | 否 | 是 | 健康检查周期。 | 取值范围1~120。 默认值为3。 |
HttpGetUrl | String | 否 | 是 | 容器自定义健康检查URL地址。 | 长度不超过2048个字符。 |
TimeoutSeconds | Integer | 否 | 是 | 健康检查超时时间。 | 取值范围1~3。 默认值为1。 |
FailureThreshold | Integer | 否 | 是 | 健康检查失败次数阈值。 | 达到该值后系统认为检查失败。 取值范围1~120。 默认值为3。 |
CustomRuntimeConfig语法
"CustomRuntimeConfig":{
"Args": List,
"Command": List,
}
CustomRuntimeConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Args | List | 否 | 是 | 启动入口命令接收的参数。 | 示例值:
|
Command | List | 否 | 是 | 启动入口命令。 | 示例值:
|
CustomDNS语法
"CustomDNS":{
"NameServers": List,
"DnsOptions": List,
"Searches": List
}
CustomDNS属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
NameServers | List | 否 | 是 | DNS服务器的IP地址。 | 无 |
DnsOptions | List | 否 | 是 |
| 无 |
Searches | List | 否 | 是 | DNS搜索域值。 | 无 |
DnsOptions语法
"DnsOptions":{
"Value": String,
"Name": String,
}
DnsOptions属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Value | String | 否 | 是 | 配置项值。 | 示例值: 2。 |
Name | String | 是 | 是 | 配置项名称。 | 示例值: ndots。 |
返回值
Fn::GetAtt
FunctionId:系统为每个函数生成的唯一ID。
ServiceName:服务名称。
ARN:函数的ARN。
FunctionName:函数名。
ServiceId:函数服务ID。
示例
关于以下操作的更多示例,请参见YAML示例。
创建函数服务
创建函数
执行函数
触发函数执行
发布版本
创建别名
创建预留实例