>백엔드 개발 >Golang >공개 게시 없이 Go Cloud 기능 간에 도우미 패키지를 공유하는 방법은 무엇입니까?

공개 게시 없이 Go Cloud 기능 간에 도우미 패키지를 공유하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-11 16:04:20329검색

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

Google Cloud Functions의 Go 하위 패키지

질문:

Go 내에서 도우미 패키지를 어떻게 활용할 수 있나요? Cloud 함수를 게시하지 않고도 동일한 프로젝트 내의 여러 함수에서 액세스할 수 있는지 확인합니다. 공개)?

답변:

Go의 고급 종속성 관리 시스템인 Go 모듈을 도입하면 하위 패키지 작업을 위한 효과적인 솔루션을 제공합니다. 모듈을 사용하면 GOPATH 외부에서 작동하고 종속성 버전을 정확하게 관리할 수 있습니다.

결정적으로 모듈을 사용하면 일관된 가져오기 경로 접두사를 사용하여 Go 패키지 그룹을 정의할 수 있습니다. Cloud 함수 내에서 이 기능을 활용하여 모듈 내의 다른 패키지를 가져올 수 있습니다.

배포된 함수는 모듈의 루트에 있어야 한다는 점에 유의하는 것이 중요합니다. 예를 들어 다음 파일 구조를 고려하십시오.

.
├── 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

이 설정에서 함수는 function.go에 있고 function_test.go에서 테스트됩니다. 이러한 구성 요소는 "example.com/foo" 모듈에 속하며 function.go는 "example.com/foo/helperpackage"를 가져올 수 있습니다.

또한 cmd 디렉터리는 로컬 테스트를 용이하게 합니다. "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))
}

공급업체 디렉터리를 사용하면 비슷한 결과를 얻을 수 있지만 하위 패키지는 전체 가져오기 경로를 사용하여 공급업체 디렉터리에 개별적으로 복사해야 합니다. 유지관리 번거로움. 따라서 이 접근 방식은 하위 패키지에는 일반적으로 사용되지 않습니다.

위 내용은 공개 게시 없이 Go Cloud 기능 간에 도우미 패키지를 공유하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.