所有 API 网关路由的 CloudWatch 端点响应都相同
CloudWatch Endpoint Response is same for all API Gateway routes
我现在有一个简单的 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 网关的 websocket URL 并触发功能。我能够连接到 websocket,CloudWatch 也正确记录了三个触发器,所以我知道这方面正在工作。
但是当我检查日志时,Endpoint Response before Transformation
对于所有三个都是相同的:
只对$connect
的日志应该是"Hello from Lambda"
。
Lambda 控制台中 Monitor
下的指标反映了准确触发的函数,但返回的响应不正确。
我该如何解决这个问题?
我是否错误地理解了 CloudWatch 日志,或者我需要进行特定的设置或设置才能获得准确的结果?
有关此的任何指示都会有所帮助。
编辑:
我更改了 $connect
的 Lambda 函数,结果发现 CloudWatch 日志中的响应不是来自此 Lambda 函数。端点响应只是默认的 Lambda 函数。
正如上面的评论所指出的,它与部署 Lambda 函数有关。
我以为 API 是我们唯一部署的东西,但我们还需要部署 Lambda 函数才能使它们正常工作。
我现在有一个简单的 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 网关的 websocket URL 并触发功能。我能够连接到 websocket,CloudWatch 也正确记录了三个触发器,所以我知道这方面正在工作。
但是当我检查日志时,Endpoint Response before Transformation
对于所有三个都是相同的:
只对$connect
的日志应该是"Hello from Lambda"
。
Lambda 控制台中 Monitor
下的指标反映了准确触发的函数,但返回的响应不正确。
我该如何解决这个问题?
我是否错误地理解了 CloudWatch 日志,或者我需要进行特定的设置或设置才能获得准确的结果?
有关此的任何指示都会有所帮助。
编辑:
我更改了 $connect
的 Lambda 函数,结果发现 CloudWatch 日志中的响应不是来自此 Lambda 函数。端点响应只是默认的 Lambda 函数。
正如上面的评论所指出的,它与部署 Lambda 函数有关。 我以为 API 是我们唯一部署的东西,但我们还需要部署 Lambda 函数才能使它们正常工作。