【2019년 9월판】Cloud Functions로 Go를 배포할 때의 에러 메세지가 「go:finding・・・」이었을 때의 대처 방법

Cloud Functions의 Go 인스턴스에서 배포 오류가 발생했습니다.



Golang에서 구현한 functions를 배포하려고 하면 다음과 같은 오류가 발생했습니다.
$ gcloud beta functions deploy xxxxxxxxx \
    --project xxxxxxxxxx \
    --entry-point xxxxxxxxx \
    --runtime go111 \
    --trigger-http \
    --memory 128MB
Deploying function (may take a while - up to 2 minutes)...failed.
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: go: finding ....
...

당연히, 이하의 기사를 참고로 빌드의 체크했습니다만. . .
  • Cloud Functions에서 Go를 배포할 때 발생하는 오류 메시지가 'go:finding...'이었을 때 해결하기

  • 위의 오류가 멈추지 않습니다.

    신규 functions는 배포를 중지하고 소스 코드를 일단 리버트하고, 이미 배포된 functions를 다시 배포해 보았는데...

    다시 위의 오류가 발생했습니다.

    이것은 곤란해 버렸습니다. 조금 전에 올린 functions가, 지금은 오르지 않게 되어 있습니다.
    그러나 지금 올라가는 기능은 문제없이 움직이고 있습니다. . .

    이것은 무엇일까・・・? 라고 공식 문서를 열어 보면・・・

    Cloud Functions | The Go Runtime



    Go 1.11.6 ...?

    Go 1.11.6 ...?

    아니, 이 전 올렸을 때는 1.11.5 이었겠지요! ! !
    (아무리 짖어도 어쩔 수 없기 때문에 이번은 제대로 스쿠쇼 붙여 둡니다.)

    ... 라고 하는 것으로, 1.11.5 에서 1.11.6 에의 마이그레이션의 순서입니다.

    Go 1.11.5에서 1.11.6으로 전환



    우선 go의 환경을 1.11.5에서 1.11.6으로 바꿉니다. 이런 때에는 goenv 도움이 되네요.

    이하의 커멘드로 빨리 대응 완료입니다.
    $ goenv install 1.11.6
    ...
    $ goenv global 1.11.6
    ...
    

    환경에 따라서는 GOPATH 이나 GOROOT 의 변경이 필요할까 생각합니다.
    goenv가 없으면 최선을 다하십시오. . .

    종속 모듈 정보 업데이트



    그런 다음 functions 프로젝트에서 go.modgo.sum를 제거하고 go 모듈을 다시 만듭니다.
    $ rm go.mod go.sum
    
    $ go mod init
    

    빌드 확인



    다음 명령으로 빌드합니다.
    $ go build
    

    go 빌드는 매우 간단하고 도움이됩니다. 빨리.

    배포 재실행



    빌드하면 go.mod가 업데이트되고 go.sum가 다시 생성됩니다. (go.sum, 굉장히 바뀌고 있는 얀···)
    이제 배포를 해 봅시다!
    $ gcloud beta functions deploy xxxxxxxxx \
        --project xxxxxxxxxx \
        --entry-point xxxxxxxxx \
        --runtime go111 \
        --trigger-http \
        --memory 128MB
    Deploying function (may take a while - up to 2 minutes)...
    ...
    

    여기서 엔드포인트 정보 등이 표시되면 성공입니다!

    마지막으로



    Go의 런타임, 어쩌면 버전 업해서 불평은 없습니다만, 빌드 실패했을 때의 에러 메세지가 매우 알기 어렵네요. (라고 하는지, 실제로는 에러 메세지는 해결이 실마리도 되어 있지 않다...)

    손이 막히면 기본으로 돌아와 공식 사이트를 본다는 것도 하나의 손입니다.

    여러가지 말하고 싶은 것은 있습니다만 이상입니다. . .
    (··· 이런 것은 미필의 고의라고 말하는 것은 아냐?)

    좋은 웹페이지 즐겨찾기