ホームページ >バックエンド開発 >Golang >golang 関数開発に関するコミュニティ チュートリアル

golang 関数開発に関するコミュニティ チュートリアル

王林
王林オリジナル
2024-04-26 18:36:01495ブラウズ

このチュートリアルでは、Go を使用してコミュニティ Cloud Functions を開発およびデプロイする方法、つまりプロジェクトの設定と Cloud Functions API の有効化について説明します。 Go 関数を記述し、コードを含むファイルを作成します。関数をコンパイルしてデプロイします。 cURL を使用して関数をテストします。エラーを処理し、適切な応答コードを返します。

golang 関数開発に関するコミュニティ チュートリアル

Go 関数開発のコミュニティ チュートリアル

このチュートリアルでは、Go 言語を使用して関数を開発する方法と、それらをコミュニティ ランタイム環境にデプロイします。プロセスを段階的に説明し、実際のケースを示しますので、ご自身で体験していただけます。

前提条件

  • Go 1.18 以降がインストールされていること
  • Google Cloud SDK がインストールされていること
  • 課金が有効になっている Google Cloud アカウントがあること

ステップ 1: Cloud Functions プロジェクトを設定する

  1. 新しい Google Cloud プロジェクトを作成します:

    gcloud projects create my-functions-project
  2. Cloud Functions API を有効にする:

    gcloud services enable cloudfunctions.googleapis.com

ステップ 2: Go 関数を作成する

という名前のファイルを作成しますhello_world.go に移動し、次のコードを入力します:

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/cloudevents/sdk-go/v2/event"
)

func HelloFunction(ctx context.Context, e event.Event) error {
    msg := e.Data()
    if msg != nil {
        s := string(msg)
        log.Printf("Function invoked with data: %s", s)
        return fmt.Errorf("function failed with message: %s", s)
    }

    msg = []byte("Hello World!")
    log.Print("Function invoked without data")
    return e.Respond(200, msg, event.ResultOK)
}

ステップ 3: 関数をコンパイルしてデプロイする

  1. 関数をコンパイルします:

    go build hello_world.go
  2. #関数をデプロイします:

    gcloud functions deploy hello_world \
    --runtime go113 \
    --entry-point HelloFunction \
    --trigger-http \
    --service-account my-service-account@my-functions-project.iam.gserviceaccount.com

#ステップ 4: 関数をテストします

#関数をテストしますcURL を使用:

curl https://<REGION>-<PROJECT_ID>.cloudfunctions.net/hello_world

「Hello World!」という応答が表示されるはずです。

ステップ 5: エラーの処理

以前のサンプル関数は、無効なデータを受け取ったときにエラーを返しました。 e.Data()

:

if e.Data() == nil {
    return e.Respond(400, nil, event.ResultFailedPrecondition)
}
の型を調べることで、データが存在するかどうかを確認できます。

以上がgolang 関数開発に関するコミュニティ チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。