0

私のアプリケーションはG Suiteのドメインに接続し、1つのまれな機能によりすべてのユーザーをリストするcsvをダウンロードできます。Google Storageのアップロードに関する問題(GAEから)

ファイルはGoogleストレージに保存され、そこからダウンロードされます。

通常のドメインでは正常に機能していましたが、より大きなドメイン(1/2Mユーザー)ではスケーラビリティの問題がありました。私はインクリメンタル・アップロードを行うことができないと私は考えることができるすべての回避策はいくつかの時点でメモリ内のファイルを保持する必要があり、私の知る限りでは

Exceeded soft private memory limit of 128 MB with 340 MB after servicing 9 requests total 

:CSVは、につながる巨大になります。

私には分かりません。

Driveへのインクリメンタルセーブのような初心者の考えですか?むしろ追加の範囲を避けてください。

+0

関連:https://stackoverflow.com/questions/39840101/google-app-engine-and-google-sheets-exceeding-soft-memory-limit –

答えて

0

あなたはapp.yaml設定ファイルにinstance_class設定項目を経て、その後、唯一の解決策は、より多くのメモリをa GAE instance classを使用しているメモリ(および/またはそれに関連するデータ)ファイル全体を保つことができるという要件を維持する場合。

もちろん、このソリューションは、メモリ要件が使用可能なインスタンスクラスの1つの空きメモリを下回っている場合にのみ機能し、CSVサイズでは無期限に拡張できません。

0

これまでApp Engineでこのような一括エクスポート機能を実装していました。 App Engineを使用して、 Compute Engine VMをAPI経由で起動しました。 Compute VMが起動すると、単純なスクリプトが実行された後、シャットダウンされます。

コンピューティングエンジンVMの利点は、一時的なのディスク領域に書き込み、メモリを節約できることです。デフォルトでは、GCEインスタンスには10GBのルートディスクがあり、これはうまくいけば十分ですbut this can be increasedです。

GCEインスタンスでは、GSuite APIコールを作成し、エクスポートをディスク上の一時ファイルとして構築し、準備が整ったらdriveまたはgoogle cloud storage apisを使用してアップロードできます。計算エンジンのインスタンスをshut itself downにします。

App EngineのGCE APIを使用することは、それほど難しくありません。 I wrote up a detailed blog postでは、計算エンジンインスタンスを制御できるApp Engine上のWebサービスを設定する方法について説明しています。最後に、githubの完全なデプロイ可能な例にリンクしています。あなたはあなたの輸出を行うためにスクリプトを書く必要がありますが、あなたのスクリプトのDockerイメージを作ることができるなら、このサービスはそれを実行することができます!

関連する問題