获取从 AWS IOT CORE 到 AWS Lambda .Net Core 的 MQTT 主题名称
Get MQTT Topic name coming from AWS IOT CORE to AWS Lambda .Net Core
我需要帮助。
所以我需要从 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);
}
我在云表中看到,我正确地收到了来自 MQTT 的有效负载数据并正确地触发了。
所以这是我的主题:
AWS/#
这是我的负载(地理位置对象 json)发布在 AWS/Test
{
"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,只能在publish topic的命名上。
您需要将 .Topic 属性添加到您的 Gps class。 lambda 收到的事件如下所示:
{
"dt": "2020-02-26 18:03:30",
"lt": "xxx.xxx",
"ln": "yyy.yyy"
"Topic: "your topic here"
}
我需要帮助。 所以我需要从 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);
}
我在云表中看到,我正确地收到了来自 MQTT 的有效负载数据并正确地触发了。 所以这是我的主题:
AWS/#
这是我的负载(地理位置对象 json)发布在 AWS/Test
{
"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,只能在publish topic的命名上。
您需要将 .Topic 属性添加到您的 Gps class。 lambda 收到的事件如下所示:
{
"dt": "2020-02-26 18:03:30",
"lt": "xxx.xxx",
"ln": "yyy.yyy"
"Topic: "your topic here"
}