从NodeJ调用的AWS Lambda中的空事件值

2024-09-29 19:31:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在构建所有javascript前端代码,以便将其放到NodeJS中的AWS上。 我的请求链如下:

  • 用户通过以下调用从Javascript调用NodeJS AWS hosted函数(1)
  • NodeJS函数调用用于获取文件大小的python脚本。在本地调用时,此函数运行良好。但是这里接收的event值是空的,所以什么都不会发生。。。(2) (三)
  • 尺寸已更新,可在我的DynamoDB表中找到。你知道吗

有人知道为什么这个事件是空的吗?我做错什么了吗?你知道吗

代码块1:

API.post("notes", "/upload", {
    test: {
      "userId": toto['userId'],
      "noteId": toto['noteId']
    }
  });

代码块2:

import AWS from "aws-sdk";
import { success, failure } from "./libs/response-lib";

export function main(event, context, callback) {
  var lambda = new AWS.Lambda({
     region: 'us-east-1'
  });

  lambda.invoke({
     FunctionName: 'miseajour',
     InvocationType: 'RequestResponse',
     Payload: event.test
     }, function(error, data) {
         if (error) {
             callback(null, failure({error: error}));
         } else if(data){
             callback(null, success(data));
         }
    });
}

Tags: 函数代码fromtestimportawseventdata
1条回答
网友
1楼 · 发布于 2024-09-29 19:31:06

AWS JavaScript SDK的invoke函数在Payload属性上需要缓冲区、类型化数组、Blob或字符串。您可以在SDKdocumentation site上查看它。以下是invoke方法的整个接口,取自该链接:

var params = {
  FunctionName: 'STRING_VALUE', /* required */
  ClientContext: 'STRING_VALUE',
  InvocationType: Event | RequestResponse | DryRun,
  LogType: None | Tail,
  Payload: Buffer.from('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */,
  Qualifier: 'STRING_VALUE'
};
lambda.invoke(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

在您的情况下,您传递的是一个对象。先用JSON.stringify把它转换成string。你知道吗

相关问题 更多 >

    热门问题