質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Q&A

解決済

1回答

556閲覧

GAE/Goでデプロイ出来ない

nakabonne

総合スコア52

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

0グッド

0クリップ

投稿2017/12/04 12:48

編集2017/12/06 23:48

発生してる問題

GAE初心者です。GAE/Goでデプロイができません。
ビルドは完了するのですが、serviceのアップデートに時間がかかりすぎてtimeoutになってしまいます。
importするpackageをhttprouterのみにすると成功するので、外部packageの問題だと認識しています。
GAEはsyscallunsafeパッケージのインポートが許されていないことは調べて分かりました。
golang.org/x/sys/unixをインポートしているので、これが原因なのでしょうか??
以下にて現状をお伝えするので、GAE/Goのよくある問題等、ヒントになる情報が欲しいです。
もし少しでも気になったことがあったらコメントして頂けますでしょうか??
よろしくお願い致します。

ディレクトリ構成

app.yamlはルート配下のappディレクトリに置いてあります。

![イメージ説明

app.yaml

runtime: go env: flex api_version: go1.8 manual_scaling: instances: 1 resources: cpu: 2 memory_gb: 2.3 disk_size_gb: 20 readiness_check: app_start_timeout_sec: 3600 beta_settings: cloud_sql_instances: "インスタンス接続名"

エラーメッセージ

ERROR: (gcloud.app.deploy) Operation [apps/profect_id/operations/24c2d890-3bb4-4c72-b037-e7cb57f85b7f] timed out. This operation may still be underway.

インポートしている外部package

github.com/jinzhu/inflection
github.com/jinzhu/gorm
github.com/go-sql-driver/mysql
github.com/jinzhu/gorm/dialects/mysql
github.com/julienschmidt/httprouter

デプロイツール

  • gcloud app deploy

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattn

2017/12/06 00:16

依存するパッケージから gopkg.in/yaml.v2 を削除するとどうなるでしょうか?gopkg.in はリダイレクトを使っており、もしかすると GAE 側が対応していない可能性があります。
nakabonne

2017/12/06 05:57 編集

ありがとうございます!! gopkg.in/yaml.v2を削除しましたが、同じ結果となってしまいました。。 gopkg.inはリダイレクトを使っているというのはどういう意味か教えて頂けますでしょうか??
nakabonne

2017/12/06 06:57

外部packageを編集致しました!
mattn

2017/12/06 08:31

gopkg は github や他の git repository に誘導する為のサービスなので gkpkg 本体は git repository を提供していません。ただこれを削除してもエラーが出ているとの事なので関係は無さそうです。
mattn

2017/12/06 08:31

ちなみに vm: true だと何か変わるでしょうか?
nakabonne

2017/12/06 23:34

gopkgはgit repositoryを提供していないんですね!勉強になります!
nakabonne

2017/12/06 23:36

ちなみに、デプロイには`gcloud app deploy`を使用しています。
mattn

2017/12/07 10:16

警告の言うように env: flex でも状況変わらずでしょうか。
nakabonne

2017/12/08 00:40

元々env: flexで行なっているので、状況は変わらずでございます、、
nakabonne

2017/12/08 02:35

readiness_checkにて404エラーが出ています。GET 404 19 B 0 ms GoogleHC/1.0 /readiness_check
nakabonne

2017/12/08 04:31

解決しました!長らくアドバイスして頂きありがとうございました!!
mattn

2017/12/08 05:45

もしよかったら後の人がここみて解決できる様に、ご自分の回答を作るといいかもしれません。
nakabonne

2017/12/08 07:02

ありがとうございます。後ほど作らせて頂きます。
guest

回答1

0

自己解決

原因

Updated health checksを有効にしているのにも関わらず、readiness_check のエンドポイントを設定していないのが原因でした。

GAEのヘルスチェック

GAEにはLegacy health checksUpdated health checksがあり、今回Updated health checksを有効にしていました。

Updated health checks

Updated health checksは以下の2つを確認します。

Liveness checks

VMとDockerコンテナが実行中であることを確認する

Readiness checks

インスタンスがリクエストを受け入れられる状態かどうかをチェックします

今回は、上記のReadiness checksのエンドポイントをアプリケーションで設定していなかったため、サービスをアップデートする事ができませんでした。

*間違いがあったらご指摘お願いします。

投稿2017/12/08 08:04

nakabonne

総合スコア52

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問