Aws-iot-device-sdk-python-v2: MQTT über Websocket kann keine Verbindung herstellen

Erstellt am 28. Apr. 2020  ·  3Kommentare  ·  Quelle: aws/aws-iot-device-sdk-python-v2

Bestätigen Sie, indem Sie unten [ ] in [x] ändern, um sicherzustellen, dass es sich um einen Fehler handelt:

Beschreibe den Fehler
MQTT über Websocket-Verbindung kann keine Verbindung herstellen, obwohl ein normales MQTT einwandfrei funktioniert.

SDK-Versionsnummer
awscrt==0.5.13
awsiotsdk==1.0.6

Plattform/Betriebssystem/Gerät
MAC

Reproduzieren (beobachtetes Verhalten)

  1. Erstellen Sie ein neues Ding mit einem Policy iot:* und * für den ARN.
    2.- Führen Sie das pubsub-Beispiel mit der websocket-Option aus, es funktioniert nicht.

Erwartetes Verhalten
Um möglichst reibungslos zu arbeiten

Protokolle/Ausgabe

Vollständige Protokolle finden Sie hier

python pubsub.py --endpoint xxxxxxxx-ats.iot.us-east-2.amazonaws.com --root-ca AmazonRootCA1.pem   --cert Certificate.crt  --key PrivateKey.pem.key  --use-websocket --signing-region us-east-2 --verbosity Debug

Zusätzlicher Kontext
Bei einer Verbindung ohne Websocket funktioniert es wie erwartet.

bug needs-triage

Alle 3 Kommentare

Sie können dies schließen, es gab ein Problem mit den Berechtigungen im Zusammenhang mit den Berechtigungen des IAM-Benutzers, daher einige Rückmeldungen:

  1. Es wäre toll, wenn der Fehler etwas damit zusammenhängt und nicht:
    awscrt.exceptions.AwsCrtError: AwsCrtError(name='AWS_ERROR_MQTT_UNEXPECTED_HANGUP', message='The connection was closed unexpectedly.', code=5134)
    2.- Es wäre großartig, wenn Sie Leute auf die Dokumentation verweisen könnten, in der angegeben ist, welche Berechtigungen benötigt werden. Ich habe AWSIOTFullAccess gegeben und es hat funktioniert, aber ich weiß nicht genau, welche benötigt werden.

Hallo, sorry, ich habe nicht verstanden, wie du das Problem gelöst hast. Kannst du mehr erklären? Ich habe das gleiche Problem bei der Verwendung des Beispiels shadow.py und bin Anfänger

Es kann viele Ursachen für ein unerwartetes Auflegen geben, aber victorct-pronto hat sein Problem durch die Verwendung einer super-permissiven IAM-Richtlinie namens AWSIOTFullAccess behoben. Es sieht aus wie das:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:*"
            ],
            "Resource": "*"
        }
    ]
}

Nachdem Sie Ihren Code zum Laufen gebracht haben, stellen Sie sicher, dass Sie die Richtlinienberechtigungen auf das erforderliche Maß reduzieren. Auch wenn Sie immer noch Probleme haben, es zum Laufen zu bringen, empfehle ich, ein neues Problem zu öffnen, in dem beschrieben wird, was Sie versucht haben und wo Sie feststecken.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

satay99 picture satay99  ·  6Kommentare

supertick picture supertick  ·  7Kommentare

mkozjak picture mkozjak  ·  8Kommentare

qcabrol picture qcabrol  ·  8Kommentare

Sanrro10 picture Sanrro10  ·  16Kommentare