【GAE/GO】Echo V3はGAE未対応?V2なら動く!

※2018/3/20時点で最新のEchoのバージョンV3で動かせなかった事象です。
その後、V4がリリースされているので最新版のEchoでは本記事の問題は解決しているかもしれません。(未確認)

GAE/GoEchoを導入しようとしてハマった件について

結局、最新バージョンのEchoV3(2018/3/20当時の最新)はGAE環境で動かせませんでした…

妥協してV2では動かすことができたので、同じ様にハマっている方の参考になれば。

目次

EchoのバージョンV3だと動かない?

最新のEchoV3でセットアップを始めました。

公式のマニュアルを参考にセットアップを行いました。

Google App Engine Recipe
Google App Engine Recipe | Echo - High performance, minimalist Go web framework Google App Engine recipe for Echo | Echo is a high performance, extensible, minimalist web framework for Go (Golang).

ですが、下記のようなエラーが。

2018/03/16 18:56:06 go-app-builder: Failed parsing input: parser: bad import “unsafe” in github.com/json-iterator/go/adapter.go from GOPATH

GAEでは、unsafeパッケージをインポートしちゃダメってことのようですが、Echoが参照しているライブラリでインポートしているんですよね。

色々試してみましたが、解決せず。

諦めて、情報が豊富なV2で試してみることに。

EchoのV2でセットアップ

V2だと無事にセットアップ出来ました!

下記のQiitaの記事の通りに進めれば無事にセットアップ出来ます。

Qiita
Go製のフレームワークechoを使ってJSONを返すWebサーバーを作り、GoogleAppEngineで動かす - Qiita UPDATE 2016/06/12 2.0がリリースされました。 v2.0.1でやってみたところこの記事内容は動くようですが、少しだけ変更点があるようです。 https://echo.labstack.com/guide...

補足するとしたら、Echoのバージョンの切替方法でしょうか。

バージョンの切り替えは、go getEchoを取得しているとGitリポジトリになっているので、Gitの操作でバージョンを切り替える事ができます。

Echoのディレクトリで、下記のコマンドでV2のブランチに切り替え。

git checkout V2

依存関係でエラーが出るので、下記のモジュールをクローンします。

https://github.com/rs/cors

これで無事に動きました。

まとめ:本当はV3が使いたい

一応動くようにはなりましたが、バージョンを下げて対応という結果でした。

これって、V3の開発が進めば解決するんですかね。

もしくは、単なる僕のミスでV3でもちゃんとセットアップできたりして…

GAE/Go/EchoV3でセットアップできた方がいれば教えていただきたいです。

追記

kashitakaさんよりコメントを頂きました、別のフレームワークのGinを使うという選択肢もありですね。

無理してEchoの古いバージョンを使うよりGinの最新版を使った方が良さそうです。

kashitakaさん、貴重な情報ありがとうございました。

※2018/3/20時点で最新のEchoのバージョンV3で動かせなかった事象です。
その後、V4がリリースされているので最新版のEchoでは本記事の問題は解決しているかもしれません。(未確認)

おすすめ記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次