【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 ....
...
당연히, 이하의 기사를 참고로 빌드의 체크했습니다만. . .
$ 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 ....
...
위의 오류가 멈추지 않습니다.
신규 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.mod
및 go.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의 런타임, 어쩌면 버전 업해서 불평은 없습니다만, 빌드 실패했을 때의 에러 메세지가 매우 알기 어렵네요. (라고 하는지, 실제로는 에러 메세지는 해결이 실마리도 되어 있지 않다...)
손이 막히면 기본으로 돌아와 공식 사이트를 본다는 것도 하나의 손입니다.
여러가지 말하고 싶은 것은 있습니다만 이상입니다. . .
(··· 이런 것은 미필의 고의라고 말하는 것은 아냐?)
Reference
이 문제에 관하여(【2019년 9월판】Cloud Functions로 Go를 배포할 때의 에러 메세지가 「go:finding・・・」이었을 때의 대처 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koinori/items/cf381675eb8ac596dfe0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)