Google Cloud Functions で Go のサブパッケージを構築する
Go Cloud Functions をデプロイするには、多くの場合、複数の関数間でヘルパー ロジックを共有する必要があります。これを最適化するために、サブパッケージを利用して同じプロジェクト内の共有コードを整理できます。
解決策: Go モジュールとサブパッケージ
Go モジュールは、次のことを可能にする依存関係管理システムを提供します。共通のインポート パス プレフィックスの下にあるパッケージの定義。これにより、モジュール内の関数がインポートされたパスを使用してサブパッケージにアクセスできるようになります。
ファイル構造:
クラウド関数内でサブパッケージを参照するためのファイル構造の例を次に示します:
. ├── cmd │ └── main.go # Testing/debugging entry point ├── function.go # Imports and uses example.com/foo/helperpackage ├── function_test.go ├── go.mod # Module: example.com/foo └── helperpackage └── helper.go
インポート中サブパッケージ:
function.go では、次を使用してヘルパー パッケージをインポートできます:
import example.com/foo/helperpackage
テスト:
cmd ディレクトリローカルテストに使用できます。 main 関数は example.com/foo をインポートし、関数を HTTP ハンドラーとして登録できます。
package main import ( "log" "net/http" "example.com/foo" ) func main() { http.Handle("/HelloHTTP", foo.HelloHTTP) log.Fatal(http.ListenAndServe(":8080", nil)) }
代替アプローチ (非推奨):
ベンダーの使用ディレクトリはサブパッケージの共有にも使用できますが、インポートされたすべてのパッケージを完全なインポート パスとともにディレクトリにコピーする必要があり、面倒な作業になる可能性があります。落胆しました。
以上がGoogle Cloud Functions で Go コードのサブパッケージを効果的に構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。