Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Berkongsi Pakej Pembantu Antara Fungsi Go Cloud Tanpa Penerbitan Awam?

Bagaimana untuk Berkongsi Pakej Pembantu Antara Fungsi Go Cloud Tanpa Penerbitan Awam?

DDD
DDDasal
2024-12-11 16:04:20333semak imbas

How to Share Helper Packages Between Go Cloud Functions Without Public Publication?

Sub-Pakej dalam Go on Google Cloud Functions

Soalan:

Bagaimana anda boleh menggunakan pakej pembantu dalam Go Fungsi Awan sambil memastikan ia boleh diakses merentas berbilang fungsi dalam projek yang sama (tanpa menerbitkannya secara terbuka)?

Jawapan:

Merangkul modul Go, sistem pengurusan pergantungan lanjutan Go, menawarkan penyelesaian yang berkesan untuk bekerja dengan subpakej. Modul membolehkan anda beroperasi di luar GOPATH dan mengurus versi kebergantungan anda dengan tepat.

Yang penting, modul membenarkan definisi kumpulan pakej Go dengan awalan laluan import yang konsisten. Dalam Fungsi Awan anda, anda boleh memanfaatkan ciri ini untuk mengimport pakej lain dalam modul anda.

Adalah penting untuk ambil perhatian bahawa fungsi yang anda gunakan harus berada pada akar modul anda. Pertimbangkan struktur fail berikut sebagai contoh:

.
├── cmd
│   └── main.go # For testing purposes, can import and configure your function.
├── function.go # Imports "example.com/foo/helperpackage"
├── function_test.go
├── go.mod # Module "example.com/foo"
└── helperpackage
    └── helper.go

Dalam persediaan ini, fungsi anda berada dalam function.go dan diuji oleh function_test.go. Komponen ini tergolong dalam modul "example.com/foo," dan function.go boleh mengimport "example.com/foo/helperpackage."

Selain itu, direktori cmd memudahkan ujian setempat. Dengan mengimport "example.com/foo," anda boleh memulakan pelayan HTTP yang mengendalikan permintaan menggunakan pengendali fungsi anda. Contoh kod berikut menggambarkan pendekatan ini:

package main

import (
    "log"
    "net/http"

    "example.com/foo"
)

func main() {
    http.Handle("/HelloHTTP", foo.HelloHTTP)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

Semasa menggunakan direktori vendor boleh mencapai hasil yang serupa, sub-pakej perlu disalin secara individu ke dalam direktori vendor (menggunakan laluan import penuh mereka), menjadikan penyelenggaraan menyusahkan. Oleh itu, pendekatan ini tidak biasa digunakan untuk subpakej.

Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Pakej Pembantu Antara Fungsi Go Cloud Tanpa Penerbitan Awam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn