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) | |