HOK*_*HOK 6 javascript amazon-s3 amazon-web-services node.js aws-lambda
我想不通这个。任何帮助表示赞赏。
我有一个 lambda,它基本上将 HTML 文件从一个 S3 存储桶复制到另一个 S3 存储桶,其中包括一些“魔法”(重用其他 HTML 文件的部分)。
我已经在nodes.js 10中启动并运行了它
exports.handler = async (event, context, callback) => { }
与回调。切换到node.js 12
exports.handler = async (event) => { }
我不得不从回调切换到承诺。
生成的代码适用于 60% 的情况。
exports.handler = async (event) => {
for (var record of event.Records) {
    if(record.s3.object.key.indexOf(".") != -1){
        if (record.s3.object.key.localeCompare("website/") != 0) {
            const objectCopied = await s3.putObject( { Body: (await generateHTML( (await s3.getObject({ Bucket: record.s3.bucket.name, Key: record.s3.object.key }).promise()).Body.toString('utf-8'), record.s3.bucket.name )), Bucket: DestBucket, Key: record.s3.object.key.slice("website/".length), ACL: 'public-read',  ContentType: 'text/html'}).promise();
        }           
    }
}    
return 0;
};
在另外 40% 中,我收到此错误:
Response:
{
  "errorType": "TypeError",
  "errorMessage": "Cannot read property 'push' of undefined",
  "trace": [
    "TypeError: Cannot read property 'push' of undefined",
    "    at Request.HTTP_DATA (/var/runtime/node_modules/aws-sdk/lib/event_listeners.js:389:35)",
    "    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
    "    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
    "    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
    "    at IncomingMessage.onReadable (/var/runtime/node_modules/aws-sdk/lib/event_listeners.js:289:32)",
    "    at IncomingMessage.emit (events.js:311:20)",
    "    at IncomingMessage.EventEmitter.emit (domain.js:482:12)",
    "    at emitReadable_ (_stream_readable.js:562:12)",
    "    at onEofChunk (_stream_readable.js:540:5)",
    "    at readableAddChunk (_stream_readable.js:242:5)"
  ]
}
我不知道我在这里做错了什么。请帮忙!
关于“为什么”的另一句话:我的研究表明,AWS 在链接承诺方面存在问题,但我发现的建议解决方案是使用回调。据我所知,这不是 Nodejs 12 的一个选项,而且它在代码中看起来非常丑陋。
| 归档时间: | 
 | 
| 查看次数: | 2210 次 | 
| 最近记录: |