Go의 종속 항목 지정

Go 모듈 또는 vendor 디렉터리를 사용하여 Cloud 함수 종속 항목을 지정할 수 있습니다.

Go 모듈로 종속 항목 지정

Go 모듈로 Cloud Functions 종속 항목을 지정하려면 go.mod 파일에 나열합니다. 함수를 배포하면 Go가 go.mod 파일에 종속 항목을 자동으로 통합합니다.

go.mod 파일을 만들려면 Go에서 종속 항목 관리를 참조하세요.

함수 프레임워크는 모든 함수에 필요한 종속 항목입니다. Cloud Functions는 함수 생성 시 이를 자동으로 설치하지만 명확히 하자면 명시적 종속 항목으로 포함하는 것이 좋습니다.

함수에서 비공개 종속 항목을 사용하는 경우 functions-framework를 비공개 레지스트리에 미러링하는 것이 좋습니다. 공개 인터넷에서 패키지를 설치하지 않으려면 미러링된 functions-framework를 함수에 대한 종속 항목으로 포함합니다.

vendor 디렉터리로 종속 항목 지정

Cloud Functions를 사용하면 vendor 디렉터리를 통해 종속 항목을 포함할 수도 있습니다. vendor 디렉터리 사용은 종속 항목 관리자를 통해 종속 항목을 사용할 수 없거나 Cloud Functions 환경의 인터넷 액세스가 제한된 경우 유용합니다.

대부분의 경우 종속 항목 관리자를 사용하여 vendor 디렉터리를 유지합니다. 선호하는 임의의 종속 항목 관리자를 사용할 수 있습니다. 예를 들어 Go의 모듈 기능을 사용하여 go.mod 파일에서 vendor 디렉터리를 만들 수 있습니다.

vendor 디렉터리에 Go용 함수 프레임워크를 포함해야 합니다. 이를 위해 Go 도구 모음을 사용하려면 다음 안내를 따르세요.

  1. Go 코드의 import 블록에 다음 지시어를 추가합니다.

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. 새로 가져온 패키지를 포함하도록 go.mod 파일을 업데이트합니다.

    go mod tidy
    
  3. go.mod 파일의 콘텐츠를 사용하여 vendor 디렉터리를 만듭니다.

    go mod vendor
    

Go 1.16 이전 버전

Go 버전이 1.16 이전의 경우 go.mod 파일 및 vendor 디렉터리가 있으면 함수를 배포할 때 vendor 디렉터리가 무시됩니다. vendor 디렉터리가 보장되도록 하려면 .gcloudignore 파일을 사용하여 go.modgo.sum 파일을 업로드하지 않도록 합니다.

  1. 프로젝트 디렉터리의 루트에 다음 내용이 포함된 .gcloudignore 파일을 만듭니다.

    go.mod
    go.sum
    
    # Also ignore Git directories. Delete the following two lines if you want to
    # upload them.
    .git
    .gitignore
    

비공개 종속 항목 사용

함수의 종속 항목이 공개 액세스가 불가능한 저장소에 호스팅된 경우 vendor 디렉터리를 사용하여 종속 항목을 가져온 후 함수를 배포해야 합니다. go.mod 파일을 사용하려는 경우 위의 안내를 참조하여 go.mod 파일과 vendor 디렉터리의 잠재적 충돌을 방지하세요.