【发布时间】:2021-07-14 09:29:09
【问题描述】:
我需要帮助。 所以我需要从 AWS Lambda 获取从 AWS IOT CORE 订阅(触发)的主题名称。 所以这是我的 lambda 代码:
public string FunctionHandler(Gps message, ILambdaContext context)
{
LambdaLogger.Log("STRING MESSAGE DT: " + message.dt);
LambdaLogger.Log("STRING MESSAGE LN: " + message.ln);
LambdaLogger.Log("STRING MESSAGE LT: " + message.lt);
LambdaLogger.Log("input context: " + context.FunctionName);
LambdaLogger.Log("input context: " + context.Identity);
LambdaLogger.Log("input context: " + context.InvokedFunctionArn);
LambdaLogger.Log("input context: " + context.FunctionName);
LambdaLogger.Log("input context: " + context.AwsRequestId);
LambdaLogger.Log("input context: " + context.ClientContext);
LambdaLogger.Log("input context: " + context.Logger);
LambdaLogger.Log("input context: " + context.LogStreamName);
return JsonConvert.SerializeObject(gpsList);
}
我在 Cloud Watch 中看到,我正确接收到来自 MQTT 的有效负载数据并正确触发。 所以这是我的主题:
AWS/#
这是我在 AWS/Test 上发布的有效负载(地理定位对象 json)
{
"dt": "2020-02-26 18:03:30",
"lt": "xxx.xxx",
"ln": "yyy.yyy"
}
我的 aws iot 核心规则:
SELECT *, topic() as Topic FROM 'AWS/#'
这是我来自 AWS CloudWatch 的日志
2021-04-20T09:26:48.457+02:00 STRING MESSAGE DT: 2020-02-26 18:03:30
2021-04-20T09:26:48.473+02:00 STRING MESSAGE LN: xxx.xxx
2021-04-20T09:26:48.473+02:00 STRING MESSAGE LT: yyy.yyy
如您所见,我正确收到了所有数据,但我需要阅读主题名称。
在这种情况下我需要阅读AWS/Test
我需要,因为该主题将包含机器序列等基本信息,例如“AWS/xyz”。 如何从发布 MQTT 中读取主题名称并读取“xyz”?我需要在 AWS Lambda 中获取主题名称。 我无法将串口机插入payload,只能在发布主题的命名上。
【问题讨论】:
标签: .net amazon-web-services aws-lambda amazon-cloudwatch aws-iot