AWS Lambda デバイスに空き容量がありません 質問する

AWS Lambda デバイスに空き容量がありません 質問する

私はAPIゲートウェイを使用して、S3からmpegファイル(10MB)をインポートしてLambdaの/tmpフォルダに保存し、Lambdaがそれを外部API(YouTubeなど)にアップロードするLambda関数を呼び出しています。最近、APIゲートウェイのLambda呼び出しがエラーで断続的に失敗しています。

[Errno 28] No space left on device

ファイルをダウンロードする方法は次のとおりです

urllib.urlretrieve (s3_mpeg_url, '/tmp/{}'.format(mpeg_filename))

同じラムダ関数の新しいバージョンを作成し、を指すエイリアスAPIゲートウェイに割り当てると、動作し始めますが、ある時点で再び同じエラーが発生し続けます。

ラムダコンソールからラムダ関数をテストすると常に動作します

何か案が ?

ベストアンサー1

ラムダ関数利用可能なディスク容量は約500MBです/tmpただし、パフォーマンス上の理由から、AWS Lambda は関数のインスタンスを保持し、後続の呼び出しで再利用する場合があります。ここでは、2 つの方法があります。

  1. mpeg関数が完全にステートレスである場合 (つまり、外部 API にアップロードした後はファイルが必要ない場合)、/tmpアップロード後にフォルダーからファイルを削除するだけです。
  2. データを保持する必要がある場合は、処理後に S3 や DynamoDB などの別のメディアに保存することを検討してください。

おすすめ記事