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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google App Engine

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GoogleComputeEngine

GoogleComputeEngineとは、Linux VMをGoogleのデータセンター上で走らせるIaaS (インフラストラクチャ アズ ア サービス)製品で、ビジネス向けクラウドコンピューティング基盤のことです。

Q&A

0回答

1496閲覧

RailsサービスをGAEにデプロイしようとするとtimeoutする

joru

総合スコア45

Google App Engine

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GoogleComputeEngine

GoogleComputeEngineとは、Linux VMをGoogleのデータセンター上で走らせるIaaS (インフラストラクチャ アズ ア サービス)製品で、ビジネス向けクラウドコンピューティング基盤のことです。

0グッド

0クリップ

投稿2019/06/22 14:44

編集2019/06/23 09:17

前提・実現したいこと

Herokuで本番環境運用しているRailsサービスを、GAEに移行しようとしています。
どうやら、ヘルスチェックが終わらずにタイムアウトしてしまっているようです。

発生している問題・エラーメッセージ

ERROR: (gcloud.app.deploy) Operation [apps/[サービス名]/operations/0c33ed31-3096-4cb8-add5-e37762788546] timed out. This operation may still be underway.

該当のソースコード

ruby

1# app.yaml 2 3entrypoint: bundle exec rackup --port $PORT 4env: flex 5runtime: ruby 6 7liveness_check: 8 path: "/healthcheck" 9 10readiness_check: 11 path: "/healthcheck" 12 app_start_timeout_sec: 3600 13 14env_variables: 15 SECRET_KEY_BASE: [secret_key]

ruby

1class GaeController < ApplicationController 2 protect_from_forgery :except => [:healthcheck] 3 def healthcheck 4 render text:'ok' 5 end 6end

ruby

1# route.rb 2 3get '/healthcheck' => 'gae#healthcheck'

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

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

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

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

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

joru

2019/06/23 04:07

情報整理しました。 もともと entrypoint: bundle exec rackup --port $PORT env: flex runtime: ruby env_variables: SECRET_KEY_BASE: [secret_key] でやっていて、liveness_check や readiness_checkを試してみたと言う形です
gouf

2019/06/23 04:17

Rails の routes には liveness_check, readiness_check に応答可能なルートは設定されていますか? (≒ 「rails routes」コマンドの実行結果一覧に表示されているか)
joru

2019/06/23 05:16 編集

今app.yamlはこの形です。 entrypoint: bundle exec rackup --port $PORT env: flex runtime: ruby readiness_check: app_start_timeout_sec: 3600 env_variables: SECRET_KEY_BASE: googleのドキュメントを読んでもよく理解できなかったのですが、 https://cloud.google.com/appengine/docs/flexible/ruby/reference/app-yaml?hl=ja#updated_health_checks readiness_chack:  path: (こちらはデフォルトではなし、になっていますがURLを設定しなくてはいけないと言うことでしょうか?)
joru

2019/06/23 09:10

ヘルスチェック用のコントローラを設定して、app.yamlでそこにパス指定しました。 ですが、ヘルスチェックが終わらずにタイムアウトしてしまっているようです。 ヘルスチェックのタイムアウトまでの時間は最長に設定しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問