Dalam sistem teragih, fungsi Go menyediakan cara untuk memisahkan perkhidmatan, meningkatkan kebolehskalaan dan kebolehselenggaraan, dan bahasa Go ialah pilihan ideal untuk melaksanakan fungsi kerana keselarasan dan kecekapannya. Apabila membina fungsi dalam Go, amalan terbaik termasuk mencipta dan menggunakan fungsi, menggunakan pencetus Pub/Sub dan menggunakan fungsi kepada pengeluaran. Amalan ini membantu mewujudkan fungsi Go yang cekap dan boleh diselenggara, dengan itu meningkatkan amalan DevOps dalam sistem teragih.
Amalan DevOps bagi fungsi Go dalam sistem teragih
Dalam sistem teragih, fungsi memainkan peranan penting, ia menyediakan perkhidmatan penyahgandingan, meningkatkan kebolehskalaan dan kaedah kebolehselenggaraan. Bahasa Go sesuai untuk melaksanakan fungsi kerana keselarasan dan kecekapan terbina dalamnya.
Bina fungsi yang diedarkan
package main import ( "context" "fmt" "log" "time" functions "cloud.google.com/go/functions/apiv1" ) func init() { ctx := context.Background() client, err := functions.NewClient(ctx) if err != nil { log.Fatalf("functions.NewClient: %v", err) } defer client.Close() req := &functions.CreateFunctionRequest{ Location: "us-central1", Function: &functions.Function{ Name: "my-function", SourceCode: &functions.SourceCode{ ZipBytes: []byte(` package main import ( "context" "fmt" ) func HelloGo(ctx context.Context, req []byte) ([]byte, error) { return []byte(fmt.Sprintf("Hello, Go!\n")), nil } `), }, Handler: "HelloGo", Runtime: "go111", }, } if _, err := client.CreateFunction(ctx, req); err != nil { log.Fatalf("client.CreateFunction: %v", err) } }
Gunakan pencetus Pub/Sub
package main import ( "context" "fmt" "log" "time" functions "cloud.google.com/go/functions/apiv1" cloudevents "github.com/cloudevents/sdk-go/v2" ) func init() { ctx := context.Background() client, err := functions.NewClient(ctx) if err != nil { log.Fatalf("functions.NewClient: %v", err) } defer client.Close() req := &functions.CreateFunctionRequest{ Location: "us-central1", Function: &functions.Function{ Name: "my-function", SourceCode: &functions.SourceCode{ ZipBytes: []byte(` package main import ( "context" "fmt" cloudevents "github.com/cloudevents/sdk-go/v2" ) func HelloCloudEvent(ctx context.Context, evt cloudevents.Event) error { log.Printf("Type: %s, ID: %s\n", evt.Type(), evt.ID()) fmt.Printf("Data: %s\n", string(evt.Data())) return nil } `), }, Handler: "HelloCloudEvent", Runtime: "go111", Trigger: &functions.Function_Pubsub{ Pubsub: &functions.Pubsub{ Topic: "some-topic", }, }, }, } if _, err := client.CreateFunction(ctx, req); err != nil { log.Fatalf("client.CreateFunction: %v", err) } }
Kerahkan ke pengeluaran
gcloud functions deploy my-function --stage=prod --entry-point=HelloGo --trigger-http
Kesimpulan
Kesimpulan terbaik anda boleh membina sistem ini mengerahkan dan mengurus secara menyeluruh Go berfungsi dalam . Dengan kuasa prinsip Go dan DevOps, anda boleh mencipta fungsi yang teguh, berskala dan mudah diselenggara.Atas ialah kandungan terperinci Amalan DevOps fungsi Golang dalam sistem teragih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!