stable-diffusion-aws-extension/middleware_api/workflows/delete_workflow_handler.py

44 lines
1.1 KiB
Python

import json
import logging
import os
from dataclasses import dataclass
import boto3
from aws_lambda_powertools import Tracer
from common.ddb_service.client import DynamoDbUtilsService
from common.response import no_content
from libs.utils import response_error
tracer = Tracer()
table_name = os.environ.get('WORKFLOWS_TABLE')
logger = logging.getLogger(__name__)
logger.setLevel(os.environ.get('LOG_LEVEL') or logging.ERROR)
ddb_service = DynamoDbUtilsService(logger=logger)
s3_resource = boto3.resource('s3')
bucket_name = os.environ.get('S3_BUCKET_NAME')
s3_bucket = s3_resource.Bucket(bucket_name)
@dataclass
class DeleteWorkflowHandlerEvent:
name: str
@tracer.capture_lambda_handler
def handler(raw_event, ctx):
try:
logger.info(json.dumps(raw_event))
event = DeleteWorkflowHandlerEvent(**raw_event)
s3_bucket.objects.filter(Prefix=f"comfy/workflows/{event.name}/").delete()
ddb_service.delete_item(table=table_name, keys={'name': event.name})
return no_content(message="Workflows Deleted")
except Exception as e:
return response_error(e)