之前也有类似的问题,我也搜索了很多,虽然我找到的答案并没有帮助我解决问题。
我正在尝试为我的 IoT 设备连接到 AWS 的 MQTT 代理,我正在通过 AWS Amplify 的 PubSub 库通过 Web 套接字使用 MQTT。身份验证也通过 Amplify 处理(是的,用户已成功通过身份验证)。当我尝试连接时,它立即关闭并显示错误消息:
错误代码:8,错误消息:AMQJS0008I 套接字已关闭。
我已经为身份池设置了 IAM 角色,并将 IoT 策略附加到经过身份验证的用户(使用从 Amplify 检索的身份 ID)。
用于附加策略的命令:
aws iot attach-principal-policy --policy-name "Air-RME-Users" --principal "ap-northeast-1:4f76a019-9f84-44f0-a23d-48357210016c"
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏,谢谢!
CloudWatch 物联网日志:
{
"timestamp": "2018-07-05 04:00:42.998",
"logLevel": "ERROR",
"traceId": "<removed>",
"accountId": "<removed>",
"status": "Failure",
"eventType": "Connect",
"protocol": "MQTT",
"clientId": "4e900ea4-8f05-4022-98a8-c1b26280b2a2",
"principalId": "<removed>:CognitoIdentityCredentials",
"sourceIp": "<removed>",
"sourcePort": 54641,
"reason": "AUTHORIZATION_FAILURE"
}
Run Code Online (Sandbox Code Playgroud)
Cognito 身份池策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect",
"iot:Publish", …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services aws-iot aws-cognito aws-amplify