def lambda_handler()

in src/update_tags.py [0:0]


def lambda_handler(event, context):
    logger.debug(f'Lambda event:{event}')

    account = get_account_by_id(company_name=event['CompanyName'], account_id=event['AccountId'])[0]
    # Note: We don't want to generate tags for account that need to be suspended.
    if account['AccountStatus'] > Constant.AccountStatus.UPDATED:
        return event

    s3_client = boto3.client('s3')
    file_name = f"tag-{event['CompanyName']}.json"
    while True:
        object_tag = ""
        data = {}
        obj = get_data(s3_client, Constant.SHARED_RESOURCE_BUCKET, file_name)
        if obj.get('ETag'):
            object_tag = obj.get('ETag')
            data = obj['Body'].read()

        updated_date = update_tags(data, account)
        if object_tag == get_etag(s3_client, Constant.SHARED_RESOURCE_BUCKET, file_name):
            s3_client.put_object(Body=bytes(json.dumps(updated_date), 'utf-8'),
                                 Bucket=Constant.SHARED_RESOURCE_BUCKET,
                                 Key=file_name)
            break
        sleep(2)

    return {"Status": Constant.StateMachineStates.COMPLETED, "CompanyName": event['CompanyName']}