Topik ini memberikan contoh cara membuat fungsi kontainer kustom menggunakan SDK.
Contoh SDK
package main
import (
"fmt"
"os"
"github.com/aliyun/fc-go-sdk"
)
func main() {
/*
Pasangan AccessKey dari akun Alibaba Cloud dapat digunakan untuk mengakses semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi di Function Compute adalah operasi berisiko tinggi. Kami menyarankan Anda menggunakan pengguna RAM untuk memanggil Operasi API atau melakukan operasi pemeliharaan rutin.
Kami menyarankan Anda untuk tidak menyimpan ID AccessKey dan Rahasia AccessKey ke kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu.
Dalam contoh ini, pasangan AccessKey disimpan ke variabel lingkungan untuk otentikasi.
Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET di lingkungan lokal Anda sebelum menjalankan kode sampel.
Di lingkungan runtime Function Compute, variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET secara otomatis dikonfigurasi setelah Anda mengatur izin eksekusi.
*/
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)
}
// Buat fungsi, dengan CustomContainerConfig.AccelerationType menjadi Default,
// yang mengaktifkan percepatan penarikan gambar
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)
}