-1

AWS IoT SDK sample program connect to AWS IoT. But it does not work with lastWill configure.

I downloaded windows&python SDK sample program from AWS IoT Console.

I added these sentenses, between #########, before connect in basicPubSub.py.

I got this message:

Traceback (most recent call last):
  File "basicPubSub.py", line 113, in <module>
    myAWSIoTMQTTClient.connect()
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\AWSIoTPythonSDK\MQTTLib.py", line 486,
in connect
    return self._mqtt_core.connect(keepAliveIntervalSecond)
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\AWSIoTPythonSDK\core\protocol\mqtt_core
.py", line 195, in connect
    raise connectTimeoutException()
AWSIoTPythonSDK.exception.AWSIoTExceptions.connectTimeoutException
# Init AWSIoTMQTTClient
myAWSIoTMQTTClient = None
if useWebsocket:
    ...
else:
    myAWSIoTMQTTClient = AWSIoTMQTTClient(clientId)
    ...
...

#########
# Will Topic
myAWSIoTMQTTClient.configureLastWill('last/will/topic', 'somepayload', 1)
#########

# Connect and subscribe to AWS IoT
myAWSIoTMQTTClient.connect()

How can I connect to it with lastWill message?

isexxx
  • 727
  • 1
  • 6
  • 23

1 Answers1

2

Whoops! I was careless.

I have to include lastWill topic into AWS IoT Policy as "iot:Publish" like:

  "Effect": "Allow",
  "Action": "iot:Publish",
  "Resource": [
    "arn:aws:iot:ap-northeast-1:xxxxxxxxxxxx:topic/last/will/topic"
  ]
isexxx
  • 727
  • 1
  • 6
  • 23