Spaces:
Build error
Build error
from loguru import logger | |
try: | |
import boto3 | |
from botocore.exceptions import ClientError | |
except ModuleNotFoundError: | |
logger.warning("Couldn't load AWS or SageMaker imports. Run 'poetry install --with aws' to support AWS.") | |
from llm_engineering.settings import settings | |
def delete_endpoint_and_config(endpoint_name) -> None: | |
""" | |
Deletes an AWS SageMaker endpoint and its associated configuration. | |
Args: | |
endpoint_name (str): The name of the SageMaker endpoint to delete. | |
Returns: | |
None | |
""" | |
try: | |
sagemaker_client = boto3.client( | |
"sagemaker", | |
region_name=settings.AWS_REGION, | |
aws_access_key_id=settings.AWS_ACCESS_KEY, | |
aws_secret_access_key=settings.AWS_SECRET_KEY, | |
) | |
except Exception: | |
logger.exception("Error creating SageMaker client") | |
return | |
# Get the endpoint configuration name | |
try: | |
response = sagemaker_client.describe_endpoint(EndpointName=endpoint_name) | |
config_name = response["EndpointConfigName"] | |
except ClientError: | |
logger.error("Error getting endpoint configuration and modelname.") | |
return | |
# Delete the endpoint | |
try: | |
sagemaker_client.delete_endpoint(EndpointName=endpoint_name) | |
logger.info(f"Endpoint '{endpoint_name}' deletion initiated.") | |
except ClientError: | |
logger.error("Error deleting endpoint") | |
try: | |
response = sagemaker_client.describe_endpoint_config(EndpointConfigName=endpoint_name) | |
model_name = response["ProductionVariants"][0]["ModelName"] | |
except ClientError: | |
logger.error("Error getting model name.") | |
# Delete the endpoint configuration | |
try: | |
sagemaker_client.delete_endpoint_config(EndpointConfigName=config_name) | |
logger.info(f"Endpoint configuration '{config_name}' deleted.") | |
except ClientError: | |
logger.error("Error deleting endpoint configuration.") | |
# Delete models | |
try: | |
sagemaker_client.delete_model(ModelName=model_name) | |
logger.info(f"Model '{model_name}' deleted.") | |
except ClientError: | |
logger.error("Error deleting model.") | |
if __name__ == "__main__": | |
endpoint_name = settings.SAGEMAKER_ENDPOINT_INFERENCE | |
logger.info(f"Attempting to delete endpoint: {endpoint_name}") | |
delete_endpoint_and_config(endpoint_name=endpoint_name) | |