当我在 AWS API 网关中使用 HTTP post 发布 JSON 负载时,出现 500 个内部服务器错误

问题描述 投票:0回答:1

我在尝试将 JSON 负载发布到 IoT Core 时遇到问题。我收到 500 内部服务器错误。 API 网关似乎已正确配置,因为它正在访问 Lambda 函数。但是,Lambda 函数遇到错误并抛出 500 内部服务器错误消息。负载是在 AWS API Gateway 中使用 HTTP POST 发送的。使用 AWS Lambda 内置测试工具时,不会出现错误。然而,当用Postman使用HTTP post时,会遇到错误。

这是我正在使用的 Lambda 函数。

import AWS from 'aws-sdk';

const iotData = new AWS.IotData({ endpoint: 'IoTendpoint' });

export const handler = async (event) => {
  const params = {
    topic: event.topic,
    payload: JSON.stringify(event.message),
    qos: 0
  };

  try {
    await iotData.publish(params).promise();
    return { statusCode: 200, body: 'Message published' };
  } catch (error) {
    console.error('Publish error:', error);
    return { statusCode: 500, body: 'Failed to publish message' };
  }
};

这是我要发布的有效负载。

{
  "topic": "gateway/test",
  "message": {
    "Temp": "60",
    "battery": "42"
  }
}

这是我从 Cloudwatch 获得的日志 错误发布错误:MissingRequiredParameter:参数中缺少必需的键“主题”。

aws-lambda http-post aws-iot
1个回答
0
投票

将响应正文与 err 事件和 statusCode 交换为 err.code,然后重试。这将使您更好地理解堆栈跟踪,因为查看/理解在 AWS 上运行的错误可能很困难。如果实际错误不明显问题所在,请使用返回的错误事件更新您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.