尝试订阅 AWS-IOT 自定义主题时出现 NULL 和错误 403

Getting NULL and Error 403 while trying to subscribe the AWS-IOT custom topic

我有一个节点应用程序,我正在使用 aws-iot-sdk 建立与 IOT Core 的连接。我正在制作一个动态主题,并且有一个相同的规则将消息传输到 lambda,lambda 进行一些后端处理。我现在正尝试订阅我通过规则引擎操作重新发布的节点应用程序中的主题。 我是 AWS IOT SDK 的新手,由于 "null" 我遇到了困难,请指导我。

我试图访问 aws-iot-sdk 的文档,按照他们写的步骤操作,但我无法通过相同的步骤。 如果我只是在节点应用程序中发布而不订阅,我将通过 SNS 获得响应,但无法返回应用程序。

我的节点代码:

ar awsIot = require('aws-iot-device-sdk');

var name = 'My Thing name';
const TAG = '[' + name + '] >>>>>>>>> ';
const INIT_DELAY = 15;
var app = awsIot.device({
    keyPath: 'My private key',
    certPath: 'My Cert path',
    caPath: 'My Root cert Path',
    clientId: name,
    region: 'the region',
    host: "<host addr>",
});






app.on('connect', () => {
    try{
        app.subscribe('/postacttest/response', (event) => {
            console.log(event);
        });
    } catch(err) {
        console.log(err);
    }

    app.publish('/getacttest/client1', JSON.stringify(
        {
            state: {
                desired: {
                    message: "GET_TEST_RESULT",
                    clientId: "AWSNODECLIENT"
                }
            }
        }
    ));

})

以下是我收到的回复:

null

以下是我在 AWS 上编写的规则:

SELECT state.desired.clientId AS clientId 
FROM "/getacttest/#" 
WHERE state.desired.message="GET_TEST_RESULT"

请指导我应该如何订阅主题并显示结果,就像我们使用 mqtt.js 一样,就像 WebSocket。

如果我按如下方式配置我的连接对象,我会收到下面同一 pic'c 终端区域中所示的错误:

我已经为我的 ACT 服务编写了所有允许和操作策略。

我更改了设备配置对象以具有有效的区域值。它开始工作正常。