IotObject.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from abc import ABCMeta,abstractmethod
  4. import boto3
  5. from Ansjer.config import AWS_IOT_SES_ACCESS_CHINA_REGION, AWS_IOT_SES_ACCESS_CHINA_ID, AWS_IOT_SES_ACCESS_CHINA_SECRET, \
  6. AWS_IOT_SES_ACCESS_FOREIGN_REGION_AMERICA, AWS_IOT_SES_ACCESS_FOREIGN_ID, AWS_IOT_SES_ACCESS_FOREIGN_SECRET, \
  7. AWS_IOT_SES_ACCESS_FOREIGN_REGION_EUROPE, AWS_IOT_SES_ACCESS_FOREIGN_REGION_ASIA
  8. class IOTObject(metaclass=ABCMeta):
  9. @abstractmethod
  10. def create_provisioning_claim(self, templateName):
  11. pass
  12. class ChinaIOTClient(IOTObject):
  13. def __init__(self):
  14. self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_CHINA_REGION,
  15. aws_access_key_id=AWS_IOT_SES_ACCESS_CHINA_ID,
  16. aws_secret_access_key=AWS_IOT_SES_ACCESS_CHINA_SECRET)
  17. def create_provisioning_claim(self, templateName):
  18. result = self.client.create_provisioning_claim(templateName=templateName)
  19. res = {
  20. 'certificateId': result['certificateId'],
  21. 'certificatePem': result['certificatePem'],
  22. 'publicKey': result['keyPair']['PublicKey'],
  23. 'privateKey': result['keyPair']['PrivateKey'],
  24. 'endpoint': 'a250bbr0p9u7as-ats.iot.cn-northwest-1.amazonaws.com.cn'
  25. }
  26. return res
  27. class AmericaIOTClient(IOTObject):
  28. def __init__(self):
  29. self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_FOREIGN_REGION_AMERICA,
  30. aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,
  31. aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)
  32. def create_provisioning_claim(self, templateName):
  33. result = self.client.create_provisioning_claim(templateName=templateName)
  34. res = {
  35. 'certificateId': result['certificateId'],
  36. 'certificatePem': result['certificatePem'],
  37. 'publicKey': result['keyPair']['PublicKey'],
  38. 'privateKey': result['keyPair']['PrivateKey'],
  39. 'endpoint': 'a2rqy12o004ad8-ats.iot.us-east-1.amazonaws.com'
  40. }
  41. return res
  42. class AsiaIOTClient(IOTObject):
  43. def __init__(self):
  44. self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_FOREIGN_REGION_ASIA,
  45. aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,
  46. aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)
  47. def create_provisioning_claim(self, templateName):
  48. result = self.client.create_provisioning_claim(templateName=templateName)
  49. res = {
  50. 'certificateId': result['certificateId'],
  51. 'certificatePem': result['certificatePem'],
  52. 'publicKey': result['keyPair']['PublicKey'],
  53. 'privateKey': result['keyPair']['PrivateKey'],
  54. 'endpoint': 'a2rqy12o004ad8-ats.iot.ap-southeast-1.amazonaws.com'
  55. }
  56. return res
  57. class EuropeIOTClient(IOTObject):
  58. def __init__(self):
  59. self.client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_FOREIGN_REGION_EUROPE,
  60. aws_access_key_id=AWS_IOT_SES_ACCESS_FOREIGN_ID,
  61. aws_secret_access_key=AWS_IOT_SES_ACCESS_FOREIGN_SECRET)
  62. def create_provisioning_claim(self, templateName):
  63. result = self.client.create_provisioning_claim(templateName=templateName)
  64. res = {
  65. 'certificateId': result['certificateId'],
  66. 'certificatePem': result['certificatePem'],
  67. 'publicKey': result['keyPair']['PublicKey'],
  68. 'privateKey': result['keyPair']['PrivateKey'],
  69. 'endpoint': 'a2rqy12o004ad8-ats.iot.eu-west-1.amazonaws.com'
  70. }
  71. return res