バッチプットを行うと、時々このエラーが発生します。
RequestTooLargeError: API 呼び出し datastore_v3.Put() への要求が大きすぎました。
これをトリガーするdb.put
呼び出しは、1000 以上のエンティティのリストで呼び出しを行います。各エンティティには、db.TextProperty
約 20,000 文字で埋められる 1 つのフィールドがあります。db.put
各エンティティには親エンティティもありますが、共通の親を共有するために渡されたリスト内のエンティティはありません。親エンティティはそれぞれ約 10 個の整数を格納し、それほど大きくはありません。
私の最初の本能は、渡されるエンティティの数を分割することでしたdb.put
が、
この原因に関するアイデアはありますか?
編集:エンティティの分割は機能します。たとえば、私はこれを行うことができます:
for entity in entities: entity.put()
しかし、この質問に対する答えは、配置されるエンティティの数は重要ではないことを示唆しています。だからまだ混乱しています。