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。更多資訊,請參見Function Compute支援的函數運行環境列表。 |
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 | 否 | 是 | Container Registry企業版執行個體的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 | 否 | 是 | 當函數執行成功時,Function Compute將調用該配置對應的目標。 | 無 |
OnFailure | String | 否 | 是 | 當函數執行失敗(系統錯誤或函數內部錯誤)時,Function Compute將調用該配置對應的目標。 | 無 |
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樣本。
建立函數服務
建立函數
執行函數
觸發函數執行
發布版本
建立別名
建立預留執行個體