開発中 (デプロイ前) に Google クラウド プラットフォームでマネージド VM モジュールの 1 つのログを表示したいのですが、次のコマンドで許可されていることに気付きました。
gcloud preview app run --enable-mvm-logs <module name>
ただし、そのスイッチを通常の run コマンドに追加すると、ロード中にモジュールがクラッシュします。
INFO: Go VM Deployment process failed: [Errno 104] Connection reset by peer
ERROR: Internal error while starting instance.
Traceback (most recent call last):
File "/home/bakeonandham/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1823, in _start_instance
if not inst.start():
File "/home/bakeonandham/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/instance.py", line 274, in start
self._runtime_proxy.start()
File "/home/bakeonandham/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/vm_runtime_proxy_go.py", line 130, in start
self._vm_runtime_proxy.start(dockerfile_dir=dst_deployment_dir)
File "/home/bakeonandham/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/vm_runtime_proxy.py", line 196, in start
self._module_configuration.major_version, runtime_config.instance_id)
File "/home/bakeonandham/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/log_manager.py", line 172, in add
_create_table(l)
File "/home/bakeonandham/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/log_manager.py", line 138, in _create_table
response = conn.getresponse()
File "/usr/lib/python2.7/httplib.py", line 1073, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 415, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 371, in _read_status
line = self.fp.readline(_MAXLINE + 1)
File "/usr/lib/python2.7/socket.py", line 476, in readline
data = self._sock.recv(self._rbufsize)
error: [Errno 104] Connection reset by peer
スイッチがなければ、アプリは正常に実行および展開され、展開されると、ログに記録しているデータが Dev コンソールで利用できるようになります。
理想的ではありませんが、開発サーバーを起動したターミナルで開発中にログを表示する方法を見つけました。
--verbosity デバッグ フラグを使用すると、出力が表示されますが、ログに記録された内容がエラーとしてログに記録されているにもかかわらず、loglevel debug でのみ表示されます。他の詳細レベルでは、出力はまったく表示されません。
ところで、私は Go ランタイムを使用しています。
要約すると、マネージド VM のローカル開発サーバー環境を使用してログを表示できるように見える唯一の方法は、次のコマンドを使用して起動することです。
gcloud --verbosity debug preview app run <module name>
loglevel Error でログに記録しても、 --verbosity error を設定すると、出力は端末やその他の場所に表示されません。
--enable-mvm-logs スイッチを機能させることができた人はいますか、それとも壊れていますか? マネージド VM のログ出力を表示するためのより良い方法に関するアイデアはありますか?