def actiontrail_get_default_trail()

in rules/customer-fc/aggregate-ram-role-last-login-expired-check-v2.py [0:0]


def actiontrail_get_default_trail(context):
    creds = context.credentials
    credentials = StsTokenCredential(creds.access_key_id, creds.access_key_secret, creds.security_token)
    client = AcsClient(region_id=CONFIG_SERVICE_REGION, credential=credentials)
    logger.info("init at client ok.")

    try:
        request = CommonRequest()
        request.set_accept_format('json')
        domain = 'actiontrail.' + ACTIONTRAIL_SERVICE_REGION + '.aliyuncs.com'
        request.set_domain(domain)
        logger.info('actiontrail_get_default_trail domain: {}.'.format(domain))

        request.set_method('POST')
        request.set_protocol_type('https')
        request.set_version('2020-07-06')
        request.set_action_name('DescribeTrails')
        request.add_query_param('IncludeOrganizationTrail', True)
        response = client.do_action_with_exception(request)
        logger.info('actiontrail_get_default_trail response : {}.'.format(response))
        resource_result = str(response, encoding='utf-8')
        for trail_detail in json.loads(resource_result)['TrailList']:
            logger.info('actiontrail_get_default_trail loop trail : {}.'.format(trail_detail))

            sls_project = str.split(trail_detail['SlsProjectArn'], '/')[1]
            sls_logstore = 'actiontrail_' + str.split(trail_detail['TrailArn'], '/')[1]
            is_organization_trail = trail_detail['IsOrganizationTrail']

            ## 多账号
            if is_organization_trail:
                return sls_project, sls_logstore

    except Exception as e:
        logger.error('DescribeTrails error: %s' % e)