4

私は現在、Go プログラミング言語を使用して AppEngine アプリをローカルで開発しています。私のオペレーティング システムは Mac OS X 10.8.3 です。

開発中は、AppEngine の開発サーバー (dev_appserver.py) を実行し続けます。アプリケーション ファイル (サーバーが変更を監視しているファイル) の 1 つを保存するたびに、OS X ファイアウォール ダイアログがポップアップし、「_go_app が受信接続を受信できるようにしますか?」と表示されます。ダイアログは、再び消える前に 1 秒未満しか表示されません。

常にポップアップしないようにするにはどうすればよいですか? OS X ファイアウォールで _go_app アプリケーションと単に Python の両方に明示的なルールを設定して、着信接続を許可または拒否しようとしましたが、それが (簡単に) ポップアップし続けるかどうかは問題ではありません。

4

3 に答える 3

0

何かが変わったかどうかはわかりませんが、バンドルされている GCloud SDK を使用してこのエラーが発生していましたdev_appserver.py。(2019-02-03、MacOS Mojave/10.14、Google Cloud SDK 232.0.0) Go 1.11.

Go 1.11 では、明示的にバインドすると次のことがlocalhost役立ちます。

host := ""
if os.Getenv("NODE_ENV") == "development" {
  host = "localhost"
  log.Printf("Binding to 'localhost' only for '%s'", envPurpose)
}

srv := &http.Server{
  Handler:      r,
  Addr:         fmt.Sprintf("%s:%s", host, port),
  WriteTimeout: 10 * time.Second,
  ReadTimeout:  10 * time.Second,
}

log.Fatal(srv.ListenAndServe())

編集:しかし、これにより最初の起動時に「拒否/許可」ポップアップが防止されましたが、ファイルでハンドラーを明示的に宣言しない限り、自動再起動には役立ちませんでした。app.yaml明らかに、ボンネットの下でさらに多くのことが起こっています。

ただし、「ベア」app.yamlファイルでは、希望どおりに機能しました。

于 2019-02-03T19:06:46.240 に答える