2017-06-22 25 views
0
creating Lambda lambda.setupRequestListeners 
     { RequestEntityTooLargeException: Request must be smaller than 69905067 bytes for the CreateFunction operation 
    message: 'Request must be smaller than 69905067 bytes for the CreateFunction operation', 
     code: 'RequestEntityTooLargeException', 
     time: 2017-06-22T08:30:52.260Z, 
     requestId: 'xxx', 
     statusCode: 413, 
     retryable: false, 
     retryDelay: 89.31111557639109 
     } 

私のプロジェクトは大きすぎるのですか、何が起こっていますか? S3経由でアップロードすることはできますか、それともプロジェクトのルート数と関係がありますか?AWS Lambda setupRequestListerners RequestEntityTooLargeException claudia.js

同じデプロイメント手法は、2つのルートしかない小さなプロジェクトでも機能します。

私はこれらのコマンドでclaudia.jsを使用しています:

"scripts": { 
    "deploy": "claudia create --handler lambda.handler --name authService --deploy-proxy-api --region eu-central-1", 
    "update": "claudia update", 
    "generate-proxy": "claudia generate-serverless-express-proxy --express-module server", 
    "test": "./node_modules/.bin/mocha --reporter spec" 
    }, 

答えて

0

これを解決するには、2つの良い方法があります。 1つは仲介S3バケットを使用してコードを展開することです。 ClaudiaはS3にzipファイルをアップロードしてから、S3からコードを取得するためにLambdaに要求を小さくします。それには--use-s3-bucket <bucket name>claudia updateを使用してください。

2番目のオプションは、ラムダが起動するときにすぐにどこか(例:s3)を必要とせず、/tmpディレクトリにダウンロードするものです。これを大きなフォントファイルやサードパーティのバイナリに使用します。

+0

ありがとう、私は行くだろう! –

1

これをテストするための2つの方法は次のとおりです。 1)AWS CLI S3から機能コードを導入すると、ラムダに直接アップロードする場合と比べて大幅に大きな展開パッケージが可能になります。

ラムダ関数のコードをAWSラムダに入れるには、関数のデプロイメントパッケージを直接アップロードする方法と、ラムダがS3から引き出す方法の2通りがあります。

https://hackernoon.com/exploring-the-aws-lambda-deployment-limits-9a8384b0bec3

2)ClaudiaJS CLI

ここで読む

https://claudiajs.com/news/2016/09/21/claudia-1.9.0.html

クラウディアは私たち-南-1 --region --handler lambda.handler --deployプロキシ-APIを作成します - -use-s3-バケットバケット名

ご協力いただきありがとうございます。

PS:回答をコメントとして書き込めません。