{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Notebook 5: Clean Up Resources\n", "\n", "Specify \"Python 3\" Kernel and \"Data Science\" Image.\n", "\n", "### Background\n", "\n", "In this notebook, we will clean up the resources we provisioned during this workshop:\n", "\n", "- SageMaker Feature Groups\n", "- SageMaker Endpoints\n", "- Amazon Kinesis Data Stream\n", "- Amazon Kinesis Data Analytics application" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from parameter_store import ParameterStore\n", "from utils import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Session variables" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "role = sagemaker.get_execution_role()\n", "sagemaker_session = sagemaker.Session()\n", "region = sagemaker_session.boto_region_name\n", "boto_session = boto3.Session()\n", "kinesis_client = boto_session.client(service_name='kinesis', region_name=region)\n", "kinesis_analytics_client = boto_session.client('kinesisanalytics')\n", "\n", "ps = ParameterStore(verbose=False)\n", "ps.set_namespace('feature-store-workshop')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load variables from previous notebooks" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "parameters = ps.read()\n", "\n", "customers_feature_group_name = parameters['customers_feature_group_name']\n", "products_feature_group_name = parameters['products_feature_group_name']\n", "orders_feature_group_name = parameters['orders_feature_group_name']\n", "click_stream_historical_feature_group_name = parameters['click_stream_historical_feature_group_name']\n", "click_stream_feature_group_name = parameters['click_stream_feature_group_name']\n", "\n", "cf_model_endpoint_name = parameters['cf_model_endpoint_name']\n", "ranking_model_endpoint_name = parameters['ranking_model_endpoint_name']\n", "\n", "kinesis_stream_name = parameters['kinesis_stream_name']\n", "kinesis_analytics_application_name = parameters['kinesis_analytics_application_name']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Delete feature groups" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "feature_group_list = [customers_feature_group_name, products_feature_group_name,\n", " orders_feature_group_name, click_stream_historical_feature_group_name,\n", " click_stream_feature_group_name]\n", "\n", "for feature_group in feature_group_list:\n", " print(f'Deleting feature group: {feature_group}')\n", " delete_feature_group(feature_group)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Delete endpoints and endpoint configurations" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def clean_up_endpoint(endpoint_name):\n", " response = sagemaker_session.sagemaker_client.describe_endpoint(EndpointName=endpoint_name)\n", " endpoint_config_name = response['EndpointConfigName']\n", " print(f'Deleting endpoint: {endpoint_name}')\n", " print(f'Deleting endpoint configuration : {endpoint_config_name}')\n", " sagemaker_session.sagemaker_client.delete_endpoint(EndpointName=endpoint_name)\n", " sagemaker_session.sagemaker_client.delete_endpoint_config(EndpointConfigName=endpoint_config_name)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "endpoint_list = [cf_model_endpoint_name, ranking_model_endpoint_name]\n", "\n", "for endpoint in endpoint_list:\n", " clean_up_endpoint(endpoint)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Delete Kinesis Data Stream" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "kinesis_client.delete_stream(StreamName=kinesis_stream_name,\n", " EnforceConsumerDeletion=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Delete Kinesis Data Analytics application" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "response = kinesis_analytics_client.describe_application(ApplicationName=kinesis_analytics_application_name)\n", "create_ts = response['ApplicationDetail']['CreateTimestamp']\n", "kinesis_analytics_client.delete_application(ApplicationName=kinesis_analytics_application_name, CreateTimestamp=create_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Go back to Workshop Studio and click on \"Next\"." ] } ], "metadata": { "instance_type": "ml.t3.medium", "interpreter": { "hash": "fea7262dfaa662dc7ea8f1b256cf975fd886d2f868152164ef15877318a1e322" }, "kernelspec": { "display_name": "Python 3 (Data Science)", "language": "python", "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:ca-central-1:310906938811:image/datascience-1.0" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }