def get_access_token()

in aws-cloudknox-controltower/lambda/CloudKnox_TriggerLifecycleEvent.py [0:0]


def get_access_token(service_id,timestamp,access_key,secret_key,url,port):
    """Get CloudKnox access token."""
    try:
        conn = http.client.HTTPSConnection(url, port)
        content_type = "application/json"
        print('serviceId-accessToken: '+ service_id )
        print('timestamp-accessToken: '+ timestamp )
        print('accessKey-accessToken: '+ access_key )
        print('secretKey-accessToken: '+ secret_key )
        print('url-accessToken: ' + url)

        headers = {
          'X-CloudKnox-Service-Account-Id': service_id,
          'X-CloudKnox-Timestamp-Millis': timestamp,
          'Content-Type': content_type
        }

        cloudknox_dict = {}
        cloudknox_dict['serviceAccountId'] = service_id
        cloudknox_dict['accessKey'] = access_key
        cloudknox_dict['secretKey'] = secret_key

        payload = json.dumps(cloudknox_dict)
        print('payload-accessToken: ' + payload)

        conn.request("POST", "/api/v2/service-account/authenticate", payload, headers)
        res = conn.getresponse()
        data = res.read()
        data_raw = data.decode()
        print('data_raw: ' + data_raw)
        data_response = json.loads(data.decode("utf-8"))
        print('accessToken: ' + data_response['accessToken'])
        return data_response['accessToken']
    except Exception as e:
        logger.error('Unexpected Error: %s', e)