Aws-iot-device-sdk-python-v2: MQTT sur Websocket ne peut pas se connecter

Créé le 28 avr. 2020  ·  3Commentaires  ·  Source: aws/aws-iot-device-sdk-python-v2

Confirmez en remplaçant [ ] par [x] ci-dessous pour vous assurer qu'il s'agit d'un bogue :

Décrivez le bogue
La connexion MQTT sur Websocket ne peut pas se connecter, même si un MQTT normal fonctionne correctement.

Numéro de version du SDK
awscrt==0.5.13
awsiotsdk==1.0.6

Plateforme/OS/Périphérique
MAC

Reproduire (comportement observé)

  1. Créez une nouvelle chose avec une stratégie iot:* et * pour l'ARN.
    2.- Exécutez l'exemple pubsub avec l'option websocket, cela ne fonctionnera pas.

Comportement prévisible
Pour travailler le plus doucement possible

Journaux/sortie

Les journaux complets peuvent être trouvés ici

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

Contexte supplémentaire
Lors de la connexion sans Websocket, cela fonctionne comme prévu.

bug needs-triage

Tous les 3 commentaires

Vous pouvez fermer ceci, c'était un problème avec les autorisations liées aux autorisations de l'utilisateur IAM, donc quelques retours :

  1. Ce serait génial si l'erreur montre quelque chose lié à cela et non:
    awscrt.exceptions.AwsCrtError: AwsCrtError(name='AWS_ERROR_MQTT_UNEXPECTED_HANGUP', message='The connection was closed unexpectedly.', code=5134)
    2.- Ce serait génial si vous pouviez diriger les gens vers la documentation où dit quelles autorisations sont nécessaires, j'ai donné AWSIOTFullAccess, et cela a fonctionné, mais je ne sais pas exactement lesquelles sont nécessaires.

Bonjour, désolé, je n'ai pas compris comment vous avez résolu le problème. Pouvez-vous expliquer plus? J'ai le même problème lors de l'utilisation de l'exemple shadow.py et je suis débutant

Il peut y avoir plusieurs causes à un raccrochage inattendu, mais victorct-pronto a résolu son problème en utilisant une stratégie IAM super permissive appelée AWSIOTFullAccess. Cela ressemble à ceci :

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

Une fois que votre code fonctionne, assurez-vous de réduire les autorisations de stratégie à ce qui est uniquement requis. De plus, si vous rencontrez toujours des difficultés pour le faire fonctionner, je vous recommande d'ouvrir un nouveau numéro décrivant ce que vous avez essayé et où vous êtes bloqué.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Sanrro10 picture Sanrro10  ·  16Commentaires

satay99 picture satay99  ·  6Commentaires

banuprathap picture banuprathap  ·  10Commentaires

qcabrol picture qcabrol  ·  8Commentaires

mkozjak picture mkozjak  ·  8Commentaires