2017-07-25 9 views
0

APIゲートウェイの制限を超える6MBのJSONファイル*のカタログファイルで応答するAPIエンドポイントをセットアップする必要があります。AWS API Gateway GzipされたJSONファイル

私はgzipファイルを256kbに圧縮できますが、APIゲートウェイでgzipにContent-Encodingを設定することはできません。

去年11月にbinaryMIMETypesを使用し始めましたが、私が見てきた例では、データもbase64でエンコードする必要があります(Standard Lambda ExampleServerless Example)。クライアントはGZIPだけでなくBase64も処理する必要があります。

しかし、(aws-serverless-express example)にはapp.use(compression(())が含まれているようですが、gzippedのJSON応答を送信することが可能になると思います。

私はaws-serverless-expressの例を使用しようとしましたが、npmを実行しようとすると、クラウド形成スタックの作成/更新に失敗します。

私は、そのような初心者の質問に対する謝罪ので、ラムダとAPIゲートウェイに非常に新しいです、ローカルの作業ノード/ Expressエンドポイントは、次のコード

var express = require('express'); 
var app  = express();  
var compression = require('compression'); 
var jsonfile = require('jsonfile'); 
const cors = require('cors'); 
var router = express.Router(); 

app.use('/api', router); 
app.use(compression()) 
app.use(cors()) 

var port = process.env.PORT || 8080; 

router.get('/', function(req, res) { 
    var file = './data/catalogue.json' 
    jsonfile.readFile(file, function(err, obj) { 
     res.json(obj); 
    }) 
}); 
app.listen(port); 

を使用して作業しています。 Gzip JSONファイルでラムダ/ APIゲートウェイを使用する方法に関する助言や助言を誰でも提供できます。

答えて

1

これは(6MBの制限がなくても)それほど良いアプローチではありません。

AWSラムダを使用する場合、には、100ミリ秒ごとに請求されます。これをたくさんのユーザーに送信していて、それぞれにダウンロードに時間がかかると、多くの費用がかかります。

私はあなたのS3(これは非常に速い)に保存し、S3のリンクをクライアントに送信して、S3からクライアントにダウンロードさせることをお勧めします。

+0

はAWSサービスプロキシを稼働させるのに時間がかかりましたが、これはこれを実現するための巧妙な方法です。 – tjmgis

関連する問題