skip to Main Content

I’m trying to extract data from trust advisor through lambda function and upload to s3. Some part of the function executes the append module on the data. However, that module block throws error. That specific block is

try:
                check_summary = support_client.describe_trusted_advisor_check_summaries(
                                checkIds=[checks['id']])['summaries'][0]
                if check_summary['status'] != 'not_available':
                    checks_list[checks['category']].append(
                       [checks['name'], check_summary['status'],
                        str(check_summary['resourcesSummary']['resourcesProcessed']),
                        str(check_summary['resourcesSummary']['resourcesFlagged']),
                        str(check_summary['resourcesSummary']['resourcesSuppressed']),
                        str(check_summary['resourcesSummary']['resourcesIgnored'])  
                        ])
                else:
                    print("unable to append checks")
                       
            except:
                print('Failed to get check: ' +  checks['name'])
                traceback.print_exc()

The error logs

unable to append checks

I’m new to Python. So, unsure of how to check for trackback stacks under else: statement. Also, am I doing anything wrong in the above ? Plz help

2

Answers


  1. You are not calling the s3_upload function anywhere, also the code is invalid since it has file_name variable in it which is not initialized.

    Login or Signup to reply.
  2. I’ve observed your script-

    • traceback.print_exc() This should be executed before the return statement so that the python compiler can identify the obstacles/errors

    • if __name__ == '__main__':
      lambda_handler
      This will work only if is used to execute some code only if the file was run directly, and not imported.

    • According to the documentation the first three parameters of the put_object method,
      def put_object(self, bucket_name, object_name, data, length,
      Fix your parameters of put_object.

    • you’re not using s3_upload in your lambda.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search