autopilot/mlops/timeseries/aws-automl-ts-cdk/lambda/check-config/index.py (37 lines of code) (raw):

import boto3 import os s3 = boto3.client('s3') def handler(event, context): resource_bucket = os.environ['RESOURCE_BUCKET'] files_to_check = [ 'config/automl_problem_config.json', 'config/batch_transform_job_config.json' ] for file_key in files_to_check: try: s3.head_object(Bucket=resource_bucket, Key=file_key) except: return { 'config_status': 'FAILED', 'message': f'File {file_key} does not exist.' } # Check for .zip or .csv file in the S3 bucket with prefix raw/ response = s3.list_objects_v2( Bucket=resource_bucket, Prefix='raw/', MaxKeys=100 ) # Iterate over the returned objects and look for files with the desired extensions if 'Contents' in response: for obj in response['Contents']: if obj['Key'].endswith('.zip') or obj['Key'].endswith('.csv'): return { 'config_status': 'SUCCEEDED' } return { 'config_status': 'FAILED', 'message': 'No .zip or .csv files found with the raw/ prefix.' } else: return { 'config_status': 'FAILED', 'message': 'No .zip or .csv files found with the raw/ prefix.' }