def __init__(self, bootstrap, socket_options, tls_context, region): assert isinstance(bootstrap, ClientBootstrap) assert isinstance(socket_options, SocketOptions) assert isinstance(tls_context, ClientTlsContext) assert isinstance(region, str) self._bootstrap = bootstrap self._socket_options = socket_options self._region = region self._gg_server_name = 'greengrass-ats.iot.{}.amazonaws.com'.format( region) self._tls_connection_options = tls_context.new_connection_options() self._tls_connection_options.set_server_name(self._gg_server_name) self.port = 8443 if is_alpn_available(): self._tls_connection_options.set_alpn_list(['x-amzn-http-ca']) self.port = 443
tls_options = None if args.cert or args.key or args.root_ca: if args.cert: assert args.key tls_options = io.TlsContextOptions.create_client_with_mtls_from_path(args.cert, args.key) else: tls_options = io.TlsContextOptions() if args.root_ca: with open(args.root_ca, mode='rb') as ca: rootca = ca.read() tls_options.override_default_trust_store(rootca) if args.port: port = args.port elif io.is_alpn_available(): port = 443 if tls_options: tls_options.alpn_list = ['x-amzn-mqtt-ca'] else: port = 8883 tls_context = io.ClientTlsContext(tls_options) if tls_options else None mqtt_client = mqtt.Client(client_bootstrap, tls_context) # Connect print("Connecting to {}:{} with client-id:{}".format(args.endpoint, port, CLIENT_ID)) mqtt_connection = mqtt.Connection( client=mqtt_client, host_name=args.endpoint, port=port,