【问题标题】:CloudWatch Endpoint Response is same for all API Gateway routesCloudWatch 端点响应对于所有 API 网关路由都相同
【发布时间】:2022-01-26 04:01:31
【问题描述】:

我现在有一个简单的 API 网关设置,包含三个路由 - $connect, $disconnect, OnMessage。它们中的每一个都会触发不同的 Lambda 函数。

Lambda 函数是默认函数:

exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'), // Varies for each Lambda function
    };
    return response;
};

除了JSON.stringify 部分对于三个路由不同。

现在我要做的就是连接到 API Gateway 的 websocket URL 并触发函数。我能够连接到 websocket 并且 CloudWatch 也正确记录了三个触发器,所以我知道这方面正在工作。

但是当我检查日志时,Endpoint Response before Transformation 对于所有三个都是相同的:

应该是"Hello from Lambda",仅用于$connect的日志。

Lambda 控制台中Monitor 下的指标反映了准确触发的函数,但返回的响应不正确。

我该如何解决这个问题?

我是否对 CloudWatch 日志的理解有误,或者是否需要进行特定设置或设置才能获得准确的结果?

任何与此相关的建议都会有所帮助。

编辑: 我更改了$connect 的 Lambda 函数,结果发现 CloudWatch 日志中的响应不是来自这个 Lambda 函数。端点响应只是默认的 Lambda 函数。

【问题讨论】:

  • 事实证明 CloudWatch 日志中的响应不是来自这个 Lambda 函数:这是我的第一个猜测,并且已经被问到了,这里:@ 987654322@
  • 我已经部署了我的代码更改并且没有版本冲突
  • 没关系,我认为 API 是我们唯一部署的东西。我没有看到 Lambda 函数也需要部署
  • 鉴于此问题,我认为此问题与the one I commented earlier 重复,应该关闭

标签: amazon-web-services aws-lambda aws-api-gateway amazon-cloudwatchlogs


【解决方案1】:

就像上面的评论指出的那样,它与部署 Lambda 函数有关。 我认为 API 是我们唯一部署的东西,但我们还需要部署 Lambda 函数才能让它们正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多