FC組件是一款基於Serverless Devs的阿里雲Function Compute操作工具,通過該工具,您可以直接通過互動式命令使用函數相關的API。
前提條件
建立函數
命令格式:
sudo s cli fc api CreateFunction --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName"}' --body '{"code":"code","customContainerConfig": "customContainerConfig","layer": "layer","description": "description","functionName": "functionName","handler": "functionhandler","initializationTimeout": "initializationTimeout","initializer": "initializer","memorySize": "momorysize","runtime“:"runtime","timeout": "timeout","caPort": "caport","environmentVariables": "environmentVariables","instanceConcurrency": "instanceConcurrency","instanceType": "instanceType","instanceLifecycleConfig": "instanceLifecycleConfig","customDNS": "customDNS","customRuntimeConfig": "customRuntimeConfig"}' --header '{"X-Fc-Code-Checksum": "X-Fc-Code-Checksum"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
body
(可選)--code string:指定壓縮的代碼檔案,代碼檔案必須是ZIP格式。
(可選)--customContainerConfig string:配置Custom Container運行時的參數。配置後函數可以使用自訂容器鏡像執行函數。
(可選)--layers string:指定層資源名稱。
(可選)--description string:指定函數中的描述資訊。
(必選)--functionName string:指定函數名稱。
(必選)--handler string:設定函數handler,handler的格式為“檔案名稱.函數名”。例如
hello_world.handler
指定了函數的調用入口為hello_world.js檔案中的handler函數。(可選)--initializationTimeout number:設定初始化函數逾時時間。
(可選)--initializer string:設定初始化函數。
(可選)--memorySize number:設定函數執行的記憶體大小。
(必選)--runtime string:指定運行環境。
(可選)--timeout number:設定函數執行的逾時時間(預設60s)。
(可選)--caPort number:指定Custom Runtime或Custom Container運行時HTTP Server的監聽連接埠。
(可選)environmentVariables:指定環境變數資訊。
(可選)instanceConcurrency:配置函數執行個體並發度。
(可選)instanceType:指定函數執行個體類型。
(可選)instanceLifecycleConfig:配置執行個體生命週期函數。
(可選)customDNS:配置自訂DNS網域名稱。
(可選)customRuntimeConfig:配置自訂運行環境。
header
(可選)X-Fc-Code-Checksum:指定函數程式碼封裝的CRC-64值。
執行樣本:
macOS作業系統或Linux作業系統,根據運行環境的不同選擇執行樣本:
當您的運行環境是程式設計語言運行時,請執行以下命令建立函數。
sudo s cli fc api CreateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest"}' --body '{"functionName": "mytest","code": {"ossBucketName": "testbucket","ossObjectName": "code.zip"},"handler": "index.handler","runtime": "python3"}'
當您的運行環境是自訂容器時,請執行以下命令建立函數。
sudo s cli fc api CreateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest"}' --body '{"functionName": "mytest","customContainerConfig": {"image": "registry.cn-hangzhou.aliyuncs.com/zh****/zh****:v0.1"},"handler": "index.handler","runtime": "custom-container"}'
Windows作業系統
當您的運行環境是程式設計語言運行時,請執行以下命令建立函數。
s cli fc api CreateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest"}' --body '{"functionName": "mytest","code": {\"ossBucketName\": \"testbucket\",\"ossObjectName\": \"code.zip\"},"handler": "index.handler","runtime": "python3"}'
當您的運行環境是自訂容器時,請執行以下命令建立函數。
s cli fc api CreateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest"}' --body '{"functionName": "mytest","customContainerConfig": {\"image\": \"registry.cn-hangzhou.aliyuncs.com/zh****/zh****:v0.1\"},"handler": "index.handler","runtime": "custom-container"}'
關於建立函數的API介面的詳細資料,請參見CreateFunction。
刪除函數
命令格式:
sudo s cli fc api DeleteFunction --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName","functionName": "functionName"}' --header '{"If-Match": "serviceName"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
(必選)--functionName string:指定函數名稱。
header
(可選)--If-Match string:用於確保實際更改的資源與期望更改的資源一致。
執行樣本:
sudo s cli fc api DeleteFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest"}'
關於刪除函數的API介面的詳細資料,請參見DeleteFunction。
更新函數
命令格式:
sudo s cli fc api UpdateFunction --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName","functionName": "functionName"}' --body '{"code": "code","customContainerConfig": "customContainerConfig","layer": "layer","description": "description","handler": "functionhandler","initializationTimeout": "initializationTimeout","initializer": "initializer","memorySize": "momorysize","runtime“:"runtime","timeout": "timeout","caPort": "caport","environmentVariables": "environmentVariables","instanceConcurrency": "instanceConcurrency","instanceType": "instanceType","instanceLifecycleConfig": "instanceLifecycleConfig","customDNS": "customDNS","customRuntimeConfig": "customRuntimeConfig"}' --header '{"If-Match": "ifmatch","X-Fc-Code-Checksum": "X-Fc-Code-Checksum"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
(必選)--functionName string:指定函數名稱。
body
(可選)--code string:指定壓縮的代碼檔案,代碼檔案必須是ZIP格式。
(可選)--customContainerConfig string:配置Custom Container運行時的參數。配置後函數可以使用自訂容器鏡像執行函數。
(可選)--layers string:指定層資源名稱。
(可選)--description string:指定函數中的描述資訊。
(必選)--handler string:設定函數handler,handler的格式為“檔案名稱.函數名”。例如
hello_world.handler
指定了函數的調用入口為hello_world.js檔案中的handler函數。(可選)--initializationTimeout number:設定初始化函數逾時時間。
(可選)--initializer string:設定初始化函數。
(可選)--memorySize number:設定函數執行的記憶體大小。
(必選)--runtime string:指定運行環境。
(可選)--timeout number:設定函數執行的逾時時間(預設60s)。
(可選)--caPort number:指定Custom Runtime或Custom Container運行時HTTP Server的監聽連接埠。
(可選)environmentVariables:指定環境變數資訊。
(可選)instanceConcurrency:配置函數執行個體並發度。
(可選)instanceType:指定函數執行個體類型。
(可選)instanceLifecycleConfig:配置執行個體生命週期函數。
(可選)customDNS:配置自訂DNS網域名稱。
(可選)customRuntimeConfig:配置自訂運行環境。
header
(可選)--If-Match string:用於確保實際更改的資源與期望更改的資源一致。
(可選)X-Fc-Code-Checksum:指定函數程式碼封裝的CRC-64值。
執行樣本:
macOS作業系統或Linux作業系統
當您的運行環境是程式設計語言運行時,請執行以下命令更新函數:
sudo s cli fc api UpdateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest"}' --body '{"code": {"ossBucketName": "testbucket","ossObjectName": "code.zip"},"timeout": 31}'
當您的運行環境是自訂容器時,請執行以下命令更新函數:
sudo s cli fc api UpdateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest"}' --body '{"customContainerConfig": {"image": "registry.cn-hangzhou.aliyuncs.com/zh****/zh****:v0.1"},"runtime": "custom-container","timeout": 31}'
Windows作業系統
當您的運行環境是程式設計語言運行時,請執行以下命令更新函數:
s cli fc api UpdateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest"}' --body '{"code": {\"ossBucketName\": \"testbucket\",\"ossObjectName\": \"code.zip\"},"timeout": 31}'
當您的運行環境是自訂容器時,請執行以下命令更新函數:
s cli fc api UpdateFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest"}' --body '{"customContainerConfig": {\"image\": \"registry.cn-hangzhou.aliyuncs.com/zh****/zh****:v0.1\"},"runtime": "custom-container","timeout": 31}'
關於更新函數的API介面的詳細資料,請參見UpdateFunction。
擷取函數配置資訊
命令格式:
sudo s cli fc api GetFunction --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName","functionName": "functionName","qualifier": "version or alias"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
(必選)--functionName string:指定函數名稱。
(可選)--qualifier string:指定服務的別名或版本。
執行樣本:
sudo s cli fc api GetFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest","qualifier": "LATEST"}'
關於擷取函數配置資訊的API介面的詳細資料,請參見GetFunction。
擷取函數代碼資訊
命令格式:
sudo s cli fc api GetFunctionCode --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName","functionName": "functionName","qualifier": "version or alias"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
(必選)--functionName string:指定函數名稱。
(可選)--qualifier string:指定服務的別名或版本。
執行樣本:
sudo s cli fc api GetFunctionCode --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest","qualifier": "LATEST"}'
關於擷取函數代碼資訊的API介面的詳細資料,請參見GetFunctionCode。
查詢函數列表
命令格式:
sudo s cli fc api ListFunctions --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName","qualifier": "version or alias"}' --query '{"limit": "limit","nextToken": "nextToken","prefix": "prefix","startKey": "startKey"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
(可選)--qualifier string:指定服務的別名或版本。
query
(可選)--limit string:設定限定此次返回資源的數量。
(可選)--nextToken string:設定用來返回更多結果的令牌。第一次查詢時不需要提供這個參數,後續查詢的Token從返回結果中擷取。
(可選)--prefix string:設定返回資源的名稱首碼。
(可選)--startKey string:設定結果從startKey之後(包括startKey)按字母排序的第一個開始返回。
執行樣本:
sudo s cli fc api ListFunctions --region cn-hangzhou --access default --path '{"serviceName": "mytest","qualifier": "LATEST"}'
關於擷取函數列表的API介面的詳細資料,請參見ListFunctions。
調用執行函數
命令格式:
sudo s cli fc api InvokeFunction --region <regionid> --access <accessname> --apiVersion <20210406 or 20160815> --path '{"serviceName": "serviceName","functionName": "functionName","qualifier": "version or alias"}' --body "hello fc payload" --header '{"X-Fc-Invocation-Type": "Sync or Async","X-Fc-Log-Type": "Tail or None","X-Fc-Stateful-Async-Invocation-Id": "invocationID"}'
參數說明:
(必選)--region string:指定部署資源的地區。
(可選)--access string或-a string:指定使用的密鑰別名。
(可選)--apiVersion:指定API版本。取值包括20210406和20160815。
path
(必選)--serviceName string:指定服務名稱。
(必選)--functionName string:指定函數名稱。
(可選)--qualifier string:指定服務的別名或版本。
body
函數請求實際資料。
header
(可選)X-Fc-Invocation-Type:指定調用函數的方式。取值為Sync(同步)和Async(非同步)。
(可選)X-Fc-Log-Type:指定返回log的方式。取值為Tail(返回本次請求最後4 KB的log)和None(不返回)。預設值為None。
(可選)X-Fc-Stateful-Async-Invocation-Id:設定有狀態非同步呼叫的ID,如果不指定,系統預設賦值。
執行樣本:
sudo s cli fc api InvokeFunction --region cn-hangzhou --access default --path '{"serviceName": "mytest","functionName": "mytest","qualifier": "LATEST"}' --body "hello fc payload" --header '{"X-Fc-Invocation-Type": "Async","X-Fc-Log-Type": "None"}'
關於調用執行函數的API介面的詳細資料,請參見InvokeFunction。