问题可能出在规则B的设置上。需要检查以下几点:
以下是一个示例代码,它演示了如何设置AWS IoT规则来触发Lambda函数:
const AWS = require('aws-sdk');
const iot = new AWS.Iot();
const lambda = new AWS.Lambda();
exports.handler = async (event, context) => {
const ruleNameA = "myRuleA";
const ruleNameB = "myRuleB";
const functionName = "myLambdaFunction";
// Create rule A
const ruleA = await iot.createTopicRule({
ruleName: ruleNameA,
topicRulePayload: {
sql: "SELECT * FROM 'my/topic/a'",
actions: [
{
lambda: {
functionArn: `arn:aws:lambda:${process.env.AWS_REGION}:${process.env.AWS_ACCOUNT_ID}:function:${functionName}`
}
}
]
}
}).promise();
// Create rule B
const ruleB = await iot.createTopicRule({
ruleName: ruleNameB,
topicRulePayload: {
sql: "SELECT * FROM 'my/topic/b'",
actions: [
{
lambda: {
functionArn: `arn:aws:lambda:${process.env.AWS_REGION}:${process.env.AWS_ACCOUNT_ID}:function:${functionName}`
}
}
]
}
}).promise();
console.log(`Created rules: ${ruleA.ruleArn}, ${ruleB.ruleArn}`);
return {
statusCode: 200,
body: