问题描述
我想使用 aws lambda 函数来索引 aws cloudSearch 服务中的文档。为此,我使用了 cloudSearchDomain 的 API 和以下 SDK https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudSearchDomain.html
所以我使用以下代码:
var params = {
contentType: "application/json",documents: JSON.stringify(payload)
};
var csd = new AWS.CloudSearchDomain(
{
endpoint: process.env.endpoint,apiVersion: '2013-01-01'
});
console.log("csd: "+csd+" endpoint: "+process.env.endpoint);
csd.uploadDocuments(params,function(err,data) {
if (err)
console.log("Error Upload: "+ err,err.stack);
else
console.log("Data Upload: "+ data);
});
我已将 endpoint
定义为 .env
文件中的环境变量
由于 aws 要求要 idexed 的文件采用 JSON 格式,因此我将 .txt
文件的格式设置如下,尊重 aws 要求的格式。
let payload = [
{
type: "add",id: name,fields: {
content_type : "text/plain",x_parsed_by : "org.apache.tika.parser.DefaultParser",content_encoding : "UTF-8",resourcename : name,content: Text
}
} ];
name
和 Text
变量在代码的其他地方声明。
问题:
当我使用来自 SQS 队列的事件通知 .txt
文件已存储在 s3 存储桶中时,此代码在 VSC 上本地运行时运行良好。代码完全运行,.txt
文件已在 cloudSearch 中编入索引。但是,当我使用 zip 格式将代码上传到我的 lambda 函数时,该函数直到最后才会运行。日志确实显示我的函数在调用 csd.uploadDocuments
方法之前被中断
我更改了 lambda 函数的执行时间,但 uploadDoccuments
方法仍未执行。我不明白原因,它阻止了我。你对问题的根源有什么想法吗?非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)