AWS Lambdaには、REST APIから.zipを取り出し、その内容を抽出して別のものに内容を表示する機能がありますビューアアプリ。ルーティング用にexpressjsを使用していますが、私はrequest
モジュールを使用してリクエストを処理しています。ExpressJSとAWS Lambda - .zipへのGET応答をパイプでつなぐ
私app.jsは、次のようになります。
app.get('/', function(req, res) {
var r = request(queryURL); // Where queryURL is a get request to fetch a .zip file
r.on('response', function(response) {
response.pipe(fs.createWriteStream('/tmp/testFile.zip'))
.on('close', function() {
res.send('Test message');
})
})
})
module.exports = app;
問題は、私はその/tmp/testFile.html
に無関係html
とのパイプを取得し、うまくres.sendFile('/tmp/testFile.html')
でそれをレンダリングすることができますresponse.pipe(fs.createWriteStream(...));
であると思われます。同じAPIから個々の画像を取得することもできます。しかし、.zipファイルに関するものは何かを破壊します。
これはすべてローカルで実行されますが、ラムダにアップロードすると破損し、ブラウザに{"message": "Internal server error"}
が表示されます。ログにアクセスする方法がわかりません.ClaudiaJSを使用して機能をアップロードします。ここで
は私のハンドラ関数は、関連するかもしれない場合には、次のとおりです。
'use strict'
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context)
ありがとう!