問題タブ [google-app-engine-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-app-engine - 外部ライブラリを使用するランタイム 1.12 で AppEngine Go アプリをデプロイできない
Go で記述された古い Google App Engine (標準環境) プロジェクトをランタイム 1.12 に移行しようとしています。2017年後半から触れていませんが、それ以来多くのことが変わったようです. いくつかのことを整理できましたが、外部依存関係があるため、コードをデプロイできませんでした。
デプロイしようとしたときのコンソール出力の関連部分
上記のスニペットに見られるように、私の GOPATH は に設定されてd:\src\go
おり、私のアプリは にd:\src\go\src\data-axe
あり、私が使用している Bluemonday は にあるd:\src\go\src\github.com\microcosm-cc\bluemonday
ので、私の知る限り、これらはすべて私の GOPATH にあります。
依存関係を指定するためのApp Engineのドキュメントには、
アプリケーションが GOPATH のディレクトリにある場合、App Engine は GOPATH からのインポートを分析、コピー、アップロードします。このアプローチは、ベンダー ディレクトリをサポートします。
ここでわからないことがあるはずです。GOPATH で使用するコードとライブラリの両方がありますが、デプロイしようとすると、App Engine がインポートを取得してアップロードしないようです。
私の main.go のインポートでは、ドキュメントに記載されているように絶対パスを使用しています。
私は何を間違っていますか?
編集
の全出力go env
:
google-app-engine - 「自動」を指すキャッチオールハンドラーは悪い考えですか?
私のインスタンスにはほとんどまたはまったくトラフィックがありませんが、min-idle インスタンスが 1 に設定されています。私が気付いたのは、(何らかのボットを介して) 存在しないランダムな URL がアクセスされるたびに、動的リクエストと見なされることです。私のキャッチオールハンドラーは自動です。これは問題ありませんが、これらの 404 エラー (404 は、yaml が catch all パターンを定義しているにもかかわらず、これらの URL パターンに関連付けられた http ハンドラーがないため) が表示され、インスタンスが再起動することを除いては問題ありません。404 エラーが発生した場合、インスタンスを再起動する必要があるのはなぜですか?
私はすべての動的ハンドラーを「/api」パターンに従い、次にそうでないものをいくつか持っています。したがって、すべての有効なパターンを明示的にリストし、自動ハンドラーにマップできます。これらのランダムリンクは静的であると見なされますが、存在せず、404エラーがスローされます(私は問題ありません)? 不正なリクエストが原因でインスタンスが実行され続けないようにしたい。
go - 環境変数にローカルで依存するアプリのテスト
Google の App Engine は事前定義された環境変数のリストを提供し、追加の環境変数はapp.yamlで定義できます。一方、アプリケーションのテストとデプロイgo run
の手順では、アプリをローカルでテストするために使用するように指示されています。cloud-sdk Docker コンテナ内でアプリをローカルにテストする場合gcloud
、App Engine と同じ環境変数をローカル コンテナに作成するコマンド (または別のツール) はありますか? 現在、bash スクリプトを使用して環境変数をローカルに設定しているだけですが、それは複数の場所で変数を維持する必要があることを意味します。