LoginSignup
2
1

More than 3 years have passed since last update.

【2019年9月版】Cloud FunctionsでGoをデプロイをする際のエラーメッセージが「go: finding ・・・」だった時の対処方法

Posted at

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

当然、以下の記事を参考にビルドのチェックいたしましたが。。。

上記のエラーが止まらないのです。

新規のfunctionsはデプロイを中止し、ソースコードをいったんリバートしまして、既にデプロイ済みのfunctionsを再度、デプロイしてみたところ・・・

またもや上記のエラーが発生したのです。

これは困ってしまいました。ちょっと前に上げたfunctionsが、今は上がらなくなっているのです。
しかし、今上がっているfunctionsは問題なく動いています。。。

これは何だろう・・・?と公式ドキュメントを開いてみましたら・・・

Cloud Functions | The Go Runtime

The Go Runtime     Cloud Functions Documentation     Google Cloud.png

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

環境によっては GOPATHGOROOT の変更が必要かと思います。
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のランタイム、しれっとバージョンアップして文句はないですが、ビルド失敗したときのエラーメッセージが非常に分かりにくいですね。(というか、実際にはエラーメッセージは解決が糸口にもなってない。。。)

手詰まりになったら基本に立ち返って公式サイトを見る、というのも一つの手です。

いろいろ言いたいことはありますが以上です。。。
(・・・こういうのって未必の故意っていうんじゃないのぉ?)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1