本文提供建立Custom Container函數的SDK樣本。
SDK樣本
package main
import (
"fmt"
"os"
"github.com/aliyun/fc-go-sdk"
)
func main() {
/*
阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
本樣本以將AccessKey和AccessSecretKey儲存在環境變數中實現身分識別驗證為例。
運行本樣本前請先在本地環境中設定環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
在FC Runtime運行環境下,配置執行許可權後,ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環境變數會自動被設定。
*/
fcClient, err := fc.NewClient(fmt.Sprintf("%s.cn-shanghai.fc.aliyuncs.com", os.Getenv("ACCOUNT_ID")),
"2016-08-15", os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
if err != nil {
panic(err)
}
// Create a function, with CustomContainerConfig.AccelerationType to be Default,
// which enables image pull acceleration
respC, err := fcClient.CreateFunction(fc.NewCreateFunctionInput("demo-service").
WithFunctionName("demo-function").
WithHandler("bootstrap").
WithRuntime("custom-container").
WithCustomContainerConfig(fc.NewCustomContainerConfig().
WithImage("registry.cn-shenzhen.aliyuncs.com/fc-demo/nodejs-express:v1")))
if err != nil {
panic(err)
}
fmt.Printf("FC CreateFunction response: %+v\n", *respC)
}