40135
# 発生してる問題

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

## ディレクトリ構成

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

[![画像の説明をここに入力](https://i.stack.imgur.com/bmyLr.png)](https://i.stack.imgur.com/bmyLr.png)

## 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
CC BY-SA 3.0
2017-12-04T12:54:39.927
40029
2017-12-08T08:05:27.350
2017-12-06T23:47:30.630
26499
26499
question
go google-app-engine google-cloud デプロイ
GAE/Goでデプロイ出来ない
# 原因

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

# GAEのヘルスチェック

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

# Updated health checks

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

## Liveness checks

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

## Readiness checks

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

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

＊間違いがあったらご指摘お願いします。
CC BY-SA 3.0
2017-12-08T08:05:27.350
40135
2017-12-08T08:05:27.350
26499
40029
answer