Selaa lähdekoodia

设备注册到iot兼容传参region_id方式

locky 3 vuotta sitten
vanhempi
commit
6ed1057b46
2 muutettua tiedostoa jossa 12 lisäystä ja 10 poistoa
  1. 5 3
      Controller/IotCoreController.py
  2. 7 7
      Object/IOTCore/IotObject.py

+ 5 - 3
Controller/IotCoreController.py

@@ -129,10 +129,12 @@ class IotCoreView(View):
                 }
                 return response.json(0, {'res': res})
             else:
-                # 根据配置信息确定region_id
-                region_id = CommonService.confirm_region_id(request)
-                iotClient = IOTClient(region_id)
+                region_id = request_dict.get('region_id', None)
+                if not region_id:
+                    # 根据配置信息确定region_id
+                    region_id = CommonService.confirm_region_id(request)
 
+                iotClient = IOTClient(int(region_id))
                 # 拼接物品名
                 thingName = CommonService.get_thing_name(company_mark, thing_name_suffix)
                 thingGroup = device_version + '_' + language

+ 7 - 7
Object/IOTCore/IotObject.py

@@ -19,7 +19,7 @@ class IOTClient:
                                        aws_secret_access_key=AWS_IOT_SES_ACCESS_CHINA_SECRET)
             # 终端节点: https://cn-northwest-1.console.amazonaws.cn/iot/home?region=cn-northwest-1#/settings
             self.endpoint = 'a250bbr0p9u7as-ats.iot.cn-northwest-1.amazonaws.com.cn'
-            self.iotrole = AWS_IOT_SES_ACCESS_CHINA_ROLE
+            self.iot_role = AWS_IOT_SES_ACCESS_CHINA_ROLE
 
         elif region_id == 2 or region_id == 3:
             # 美东弗吉尼亚
@@ -27,7 +27,7 @@ class IOTClient:
                                        aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,
                                        aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)
             self.endpoint = 'a2rqy12o004ad8-ats.iot.us-east-1.amazonaws.com'
-            self.iotrole = AWS_IOT_SES_ACCESS_FOREIGN_ROLE
+            self.iot_role = AWS_IOT_SES_ACCESS_FOREIGN_ROLE
 
         elif region_id == 4:
             # 西欧爱尔兰
@@ -35,7 +35,7 @@ class IOTClient:
                                        aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,
                                        aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)
             self.endpoint = 'a2rqy12o004ad8-ats.iot.eu-west-1.amazonaws.com'
-            self.iotrole = AWS_IOT_SES_ACCESS_FOREIGN_ROLE
+            self.iot_role = AWS_IOT_SES_ACCESS_FOREIGN_ROLE
 
     def create_provisioning_claim(self, templateName):
 
@@ -137,17 +137,17 @@ class IOTClient:
                 templateBody=templateBody,
                 parameters=parameters
             )
-            topicsql = "SELECT * FROM 'my/things/" + ThingName + "/shadow/update_lwt'"
+            topic_sql = "SELECT * FROM 'my/things/{}/shadow/update_lwt'".format(ThingName)
             self.client.create_topic_rule(
-                ruleName= ThingName + '_LWT',
+                ruleName=ThingName + '_LWT',
                 topicRulePayload={
-                    "sql": topicsql,
+                    "sql": topic_sql,
                     "ruleDisabled": False,
                     "awsIotSqlVersion": "2016-03-23",
                     'actions': [
                         {
                             'republish': {
-                                'roleArn': self.iotrole,
+                                'roleArn': self.iot_role,
                                 'topic': '$$aws/things/' + ThingName + '/shadow/update',
                                 'qos': 1
                             }