{ "cells": [ { "cell_type": "markdown", "id": "6494d164", "metadata": {}, "source": [ "# CF 를 위한 코드 ZIP 파일 패키징" ] }, { "cell_type": "markdown", "id": "c41c543c", "metadata": {}, "source": [ "# 1. 환경 설정\n", "\n", "### [중요] bucket 이름은 반드시 바꾸어 주세요. !!!" ] }, { "cell_type": "code", "execution_count": 1, "id": "c5fe4f61", "metadata": {}, "outputs": [], "source": [ "# bucket = 'kr-lex-workshop'\n", "# region = 'ap-northeast-2'\n", "# project_prefix = 'Lex-KR_BankingBot'\n", "# aws_profile = 'default'" ] }, { "cell_type": "markdown", "id": "976f71cc", "metadata": {}, "source": [ "### 개인 곤수 계정" ] }, { "cell_type": "code", "execution_count": 2, "id": "638ef421", "metadata": {}, "outputs": [], "source": [ "bucket = 'gonsoomoon-priviate-share'\n", "region = 'ap-northeast-2'\n", "project_prefix = 'Lex-KR_BankingBot'\n", "aws_profile = 'private-gs'" ] }, { "cell_type": "code", "execution_count": 17, "id": "dc5adfc9", "metadata": {}, "outputs": [], "source": [ "Biz_DDB_Code_Folder = 'Artifact/Lambda-BizLogic-DynamoDB-Code'\n", "Biz_Logic_Code_Folder = 'Artifact/Lambda-BizLogic-BankingService-Code'\n", "Lex_Artifact_Folder = 'Artifact/Lambda-LexArtifact-Export-Artifact'" ] }, { "cell_type": "markdown", "id": "f373ceac", "metadata": {}, "source": [ "# 2. DDB 레코드 입력 람다 코드 준비" ] }, { "cell_type": "code", "execution_count": 7, "id": "6498b394", "metadata": {}, "outputs": [], "source": [ "DDBInsertFolder = \"Deploy-Package/Lambda-BizLogic-DynamoDB\"\n", "DDBInsertCodeZip = \"DDBInsert.zip\"" ] }, { "cell_type": "markdown", "id": "cedb71b9", "metadata": {}, "source": [ "### (1) 코드 파일, 의존성 패키지를 압축한 Zip 파일 생성" ] }, { "cell_type": "markdown", "id": "d20865b1", "metadata": {}, "source": [ "#### Shell 명령어 설명\n", "- DDBInsertCodeZip 파일이 존재하면 삭제\n", "- 의존 패키지가 저장된 package 폴더가 있으면 삭제\n", "- 의존성 패키지 requests 설치\n", "- 의존성 패키지를 DDBInsertCodeZip 파일에 추가\n", "- DDBInsertCodeZip 파일에 lambda_function.py cfnresponse.py BankingBotData.json 파일 추가" ] }, { "cell_type": "code", "execution_count": 10, "id": "b6f82c4d", "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Deploy-Package/Lambda-BizLogic-DynamoDB\n", "DDBInsert.zip\n", "Existing Code Zip file is deleted\n", "existing package folder is deleted\n", "Collecting requests\n", " Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)\n", "Collecting idna<4,>=2.5\n", " Using cached idna-3.3-py3-none-any.whl (61 kB)\n", "Collecting certifi>=2017.4.17\n", " Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)\n", "Collecting urllib3<1.27,>=1.21.1\n", " Using cached urllib3-1.26.8-py2.py3-none-any.whl (138 kB)\n", "Collecting charset-normalizer~=2.0.0\n", " Using cached charset_normalizer-2.0.10-py3-none-any.whl (39 kB)\n", "Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests\n", "Successfully installed certifi-2021.10.8 charset-normalizer-2.0.10 idna-3.3 requests-2.27.1 urllib3-1.26.8\n", " adding: requests-2.27.1.dist-info/ (stored 0%)\n", " adding: requests-2.27.1.dist-info/INSTALLER (stored 0%)\n", " adding: requests-2.27.1.dist-info/top_level.txt (stored 0%)\n", " adding: requests-2.27.1.dist-info/RECORD (deflated 55%)\n", " adding: requests-2.27.1.dist-info/REQUESTED (stored 0%)\n", " adding: requests-2.27.1.dist-info/METADATA (deflated 58%)\n", " adding: requests-2.27.1.dist-info/WHEEL (deflated 14%)\n", " adding: requests-2.27.1.dist-info/LICENSE (deflated 65%)\n", " adding: idna/ (stored 0%)\n", " adding: idna/core.py (deflated 77%)\n", " adding: idna/compat.py (deflated 40%)\n", " adding: idna/uts46data.py (deflated 80%)\n", " adding: idna/__init__.py (deflated 67%)\n", " adding: idna/package_data.py (stored 0%)\n", " adding: idna/codec.py (deflated 76%)\n", " adding: idna/idnadata.py (deflated 79%)\n", " adding: idna/__pycache__/ (stored 0%)\n", " adding: idna/__pycache__/uts46data.cpython-36.pyc (deflated 73%)\n", " adding: idna/__pycache__/codec.cpython-36.pyc (deflated 59%)\n", " adding: idna/__pycache__/idnadata.cpython-36.pyc (deflated 67%)\n", " adding: idna/__pycache__/package_data.cpython-36.pyc (deflated 12%)\n", " adding: idna/__pycache__/intranges.cpython-36.pyc (deflated 40%)\n", " adding: idna/__pycache__/compat.cpython-36.pyc (deflated 37%)\n", " adding: idna/__pycache__/core.cpython-36.pyc (deflated 51%)\n", " adding: idna/__pycache__/__init__.cpython-36.pyc (deflated 41%)\n", " adding: idna/intranges.py (deflated 57%)\n", " adding: idna/py.typed (stored 0%)\n", " adding: requests/ (stored 0%)\n", " adding: requests/_internal_utils.py (deflated 51%)\n", " adding: requests/status_codes.py (deflated 60%)\n", " adding: requests/certs.py (deflated 35%)\n", " adding: requests/__version__.py (deflated 40%)\n", " adding: requests/auth.py (deflated 71%)\n", " adding: requests/compat.py (deflated 66%)\n", " adding: requests/sessions.py (deflated 72%)\n", " adding: requests/__init__.py (deflated 63%)\n", " adding: requests/hooks.py (deflated 50%)\n", " adding: requests/models.py (deflated 71%)\n", " adding: requests/api.py (deflated 74%)\n", " adding: requests/exceptions.py (deflated 67%)\n", " adding: requests/cookies.py (deflated 73%)\n", " adding: requests/adapters.py (deflated 76%)\n", " adding: requests/structures.py (deflated 62%)\n", " adding: requests/__pycache__/ (stored 0%)\n", " adding: requests/__pycache__/exceptions.cpython-36.pyc (deflated 65%)\n", " adding: requests/__pycache__/api.cpython-36.pyc (deflated 70%)\n", " adding: requests/__pycache__/structures.cpython-36.pyc (deflated 56%)\n", " adding: requests/__pycache__/auth.cpython-36.pyc (deflated 54%)\n", " adding: requests/__pycache__/_internal_utils.cpython-36.pyc (deflated 38%)\n", " adding: requests/__pycache__/hooks.cpython-36.pyc (deflated 35%)\n", " adding: requests/__pycache__/__version__.cpython-36.pyc (deflated 25%)\n", " adding: requests/__pycache__/compat.cpython-36.pyc (deflated 40%)\n", " adding: requests/__pycache__/packages.cpython-36.pyc (deflated 26%)\n", " adding: requests/__pycache__/status_codes.cpython-36.pyc (deflated 48%)\n", " adding: requests/__pycache__/sessions.cpython-36.pyc (deflated 57%)\n", " adding: requests/__pycache__/certs.cpython-36.pyc (deflated 29%)\n", " adding: requests/__pycache__/utils.cpython-36.pyc (deflated 51%)\n", " adding: requests/__pycache__/__init__.cpython-36.pyc (deflated 41%)\n", " adding: requests/__pycache__/help.cpython-36.pyc (deflated 43%)\n", " adding: requests/__pycache__/models.cpython-36.pyc (deflated 55%)\n", " adding: requests/__pycache__/cookies.cpython-36.pyc (deflated 60%)\n", " adding: requests/__pycache__/adapters.cpython-36.pyc (deflated 59%)\n", " adding: requests/packages.py (deflated 53%)\n", " adding: requests/utils.py (deflated 68%)\n", " adding: requests/help.py (deflated 71%)\n", " adding: charset_normalizer-2.0.10.dist-info/ (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/INSTALLER (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/top_level.txt (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/RECORD (deflated 59%)\n", " adding: charset_normalizer-2.0.10.dist-info/METADATA (deflated 59%)\n", " adding: charset_normalizer-2.0.10.dist-info/WHEEL (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/entry_points.txt (deflated 21%)\n", " adding: charset_normalizer-2.0.10.dist-info/LICENSE (deflated 41%)\n", " adding: urllib3-1.26.8.dist-info/ (stored 0%)\n", " adding: urllib3-1.26.8.dist-info/LICENSE.txt (deflated 41%)\n", " adding: urllib3-1.26.8.dist-info/INSTALLER (stored 0%)\n", " adding: urllib3-1.26.8.dist-info/top_level.txt (stored 0%)\n", " adding: urllib3-1.26.8.dist-info/RECORD (deflated 62%)\n", " adding: urllib3-1.26.8.dist-info/METADATA (deflated 65%)\n", " adding: urllib3-1.26.8.dist-info/WHEEL (deflated 14%)\n", " adding: bin/ (stored 0%)\n", " adding: bin/normalizer (deflated 29%)\n", " adding: idna-3.3.dist-info/ (stored 0%)\n", " adding: idna-3.3.dist-info/INSTALLER (stored 0%)\n", " adding: idna-3.3.dist-info/LICENSE.md (deflated 47%)\n", " adding: idna-3.3.dist-info/top_level.txt (stored 0%)\n", " adding: idna-3.3.dist-info/RECORD (deflated 47%)\n", " adding: idna-3.3.dist-info/METADATA (deflated 61%)\n", " adding: idna-3.3.dist-info/WHEEL (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/ (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/INSTALLER (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/top_level.txt (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/RECORD (deflated 44%)\n", " adding: certifi-2021.10.8.dist-info/METADATA (deflated 59%)\n", " adding: certifi-2021.10.8.dist-info/WHEEL (deflated 14%)\n", " adding: certifi-2021.10.8.dist-info/LICENSE (deflated 43%)\n", " adding: certifi/ (stored 0%)\n", " adding: certifi/core.py (deflated 57%)\n", " adding: certifi/__init__.py (stored 0%)\n", " adding: certifi/cacert.pem (deflated 46%)\n", " adding: certifi/__pycache__/ (stored 0%)\n", " adding: certifi/__pycache__/__main__.cpython-36.pyc (deflated 24%)\n", " adding: certifi/__pycache__/core.cpython-36.pyc (deflated 38%)\n", " adding: certifi/__pycache__/__init__.cpython-36.pyc (deflated 10%)\n", " adding: certifi/__main__.py (deflated 39%)\n", " adding: charset_normalizer/ (stored 0%)\n", " adding: charset_normalizer/constant.py (deflated 70%)\n", " adding: charset_normalizer/version.py (deflated 19%)\n", " adding: charset_normalizer/assets/ (stored 0%)\n", " adding: charset_normalizer/assets/__init__.py (deflated 89%)\n", " adding: charset_normalizer/assets/__pycache__/ (stored 0%)\n", " adding: charset_normalizer/assets/__pycache__/__init__.cpython-36.pyc (deflated 60%)\n", " adding: charset_normalizer/legacy.py (deflated 70%)\n", " adding: charset_normalizer/__init__.py (deflated 53%)\n", " adding: charset_normalizer/models.py (deflated 73%)\n", " adding: charset_normalizer/api.py (deflated 75%)\n", " adding: charset_normalizer/cd.py (deflated 74%)\n", " adding: charset_normalizer/__pycache__/ (stored 0%)\n", " adding: charset_normalizer/__pycache__/version.cpython-36.pyc (deflated 12%)\n", " adding: charset_normalizer/__pycache__/api.cpython-36.pyc (deflated 48%)\n", " adding: charset_normalizer/__pycache__/cd.cpython-36.pyc (deflated 50%)\n", " adding: charset_normalizer/__pycache__/md.cpython-36.pyc (deflated 64%)\n", " adding: charset_normalizer/__pycache__/constant.cpython-36.pyc (deflated 55%)\n", " adding: charset_normalizer/__pycache__/utils.cpython-36.pyc (deflated 52%)\n", " adding: charset_normalizer/__pycache__/__init__.cpython-36.pyc (deflated 43%)\n", " adding: charset_normalizer/__pycache__/legacy.cpython-36.pyc (deflated 55%)\n", " adding: charset_normalizer/__pycache__/models.cpython-36.pyc (deflated 58%)\n", " adding: charset_normalizer/md.py (deflated 81%)\n", " adding: charset_normalizer/utils.py (deflated 75%)\n", " adding: charset_normalizer/py.typed (stored 0%)\n", " adding: charset_normalizer/cli/ (stored 0%)\n", " adding: charset_normalizer/cli/__init__.py (stored 0%)\n", " adding: charset_normalizer/cli/__pycache__/ (stored 0%)\n", " adding: charset_normalizer/cli/__pycache__/__init__.cpython-36.pyc (deflated 18%)\n", " adding: charset_normalizer/cli/__pycache__/normalizer.cpython-36.pyc (deflated 44%)\n", " adding: charset_normalizer/cli/normalizer.py (deflated 73%)\n", " adding: urllib3/ (stored 0%)\n", " adding: urllib3/util/ (stored 0%)\n", " adding: urllib3/util/ssl_.py (deflated 66%)\n", " adding: urllib3/util/response.py (deflated 61%)\n", " adding: urllib3/util/timeout.py (deflated 70%)\n", " adding: urllib3/util/retry.py (deflated 73%)\n", " adding: urllib3/util/ssltransport.py (deflated 70%)\n", " adding: urllib3/util/__init__.py (deflated 59%)\n", " adding: urllib3/util/url.py (deflated 66%)\n", " adding: urllib3/util/wait.py (deflated 63%)\n", " adding: urllib3/util/proxy.py (deflated 62%)\n", " adding: urllib3/util/connection.py (deflated 60%)\n", " adding: urllib3/util/queue.py (deflated 49%)\n", " adding: urllib3/util/ssl_match_hostname.py (deflated 61%)\n", " adding: urllib3/util/request.py (deflated 63%)\n", " adding: urllib3/util/__pycache__/ (stored 0%)\n", " adding: urllib3/util/__pycache__/request.cpython-36.pyc (deflated 47%)\n", " adding: urllib3/util/__pycache__/timeout.cpython-36.pyc (deflated 61%)\n", " adding: urllib3/util/__pycache__/wait.cpython-36.pyc (deflated 48%)\n", " adding: urllib3/util/__pycache__/proxy.cpython-36.pyc (deflated 41%)\n", " adding: urllib3/util/__pycache__/response.cpython-36.pyc (deflated 42%)\n", " adding: urllib3/util/__pycache__/ssltransport.cpython-36.pyc (deflated 54%)\n", " adding: urllib3/util/__pycache__/ssl_.cpython-36.pyc (deflated 50%)\n", " adding: urllib3/util/__pycache__/__init__.cpython-36.pyc (deflated 41%)\n", " adding: urllib3/util/__pycache__/url.cpython-36.pyc (deflated 47%)\n", " adding: urllib3/util/__pycache__/queue.cpython-36.pyc (deflated 45%)\n", " adding: urllib3/util/__pycache__/connection.cpython-36.pyc (deflated 40%)\n", " adding: urllib3/util/__pycache__/retry.cpython-36.pyc (deflated 59%)\n", " adding: urllib3/util/__pycache__/ssl_match_hostname.cpython-36.pyc (deflated 39%)\n", " adding: urllib3/packages/ (stored 0%)\n", " adding: urllib3/packages/__init__.py (stored 0%)\n", " adding: urllib3/packages/six.py (deflated 75%)\n", " adding: urllib3/packages/backports/ (stored 0%)\n", " adding: urllib3/packages/backports/makefile.py (deflated 59%)\n", " adding: urllib3/packages/backports/__init__.py (stored 0%)\n", " adding: urllib3/packages/backports/__pycache__/ (stored 0%)\n", " adding: urllib3/packages/backports/__pycache__/makefile.cpython-36.pyc (deflated 33%)\n", " adding: urllib3/packages/backports/__pycache__/__init__.cpython-36.pyc (deflated 18%)\n", " adding: urllib3/packages/__pycache__/ (stored 0%)\n", " adding: urllib3/packages/__pycache__/six.cpython-36.pyc (deflated 58%)\n", " adding: urllib3/packages/__pycache__/__init__.cpython-36.pyc (deflated 19%)\n", " adding: urllib3/response.py (deflated 73%)\n", " adding: urllib3/fields.py (deflated 70%)\n", " adding: urllib3/__init__.py (deflated 60%)\n", " adding: urllib3/connection.py (deflated 71%)\n", " adding: urllib3/_collections.py (deflated 69%)\n", " adding: urllib3/exceptions.py (deflated 69%)\n", " adding: urllib3/contrib/ (stored 0%)\n", " adding: urllib3/contrib/pyopenssl.py (deflated 69%)\n", " adding: urllib3/contrib/securetransport.py (deflated 72%)\n", " adding: urllib3/contrib/ntlmpool.py (deflated 64%)\n", " adding: urllib3/contrib/_appengine_environ.py (deflated 54%)\n", " adding: urllib3/contrib/__init__.py (stored 0%)\n", " adding: urllib3/contrib/socks.py (deflated 70%)\n", " adding: urllib3/contrib/appengine.py (deflated 71%)\n", " adding: urllib3/contrib/__pycache__/ (stored 0%)\n", " adding: urllib3/contrib/__pycache__/ntlmpool.cpython-36.pyc (deflated 41%)\n", " adding: urllib3/contrib/__pycache__/appengine.cpython-36.pyc (deflated 51%)\n", " adding: urllib3/contrib/__pycache__/securetransport.cpython-36.pyc (deflated 54%)\n", " adding: urllib3/contrib/__pycache__/socks.cpython-36.pyc (deflated 51%)\n", " adding: urllib3/contrib/__pycache__/_appengine_environ.cpython-36.pyc (deflated 45%)\n", " adding: urllib3/contrib/__pycache__/__init__.cpython-36.pyc (deflated 20%)\n", " adding: urllib3/contrib/__pycache__/pyopenssl.cpython-36.pyc (deflated 53%)\n", " adding: urllib3/contrib/_securetransport/ (stored 0%)\n", " adding: urllib3/contrib/_securetransport/__init__.py (stored 0%)\n", " adding: urllib3/contrib/_securetransport/low_level.py (deflated 68%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/ (stored 0%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/low_level.cpython-36.pyc (deflated 50%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/bindings.cpython-36.pyc (deflated 53%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/__init__.cpython-36.pyc (deflated 18%)\n", " adding: urllib3/contrib/_securetransport/bindings.py (deflated 75%)\n", " adding: urllib3/connectionpool.py (deflated 73%)\n", " adding: urllib3/request.py (deflated 67%)\n", " adding: urllib3/filepost.py (deflated 63%)\n", " adding: urllib3/poolmanager.py (deflated 71%)\n", " adding: urllib3/__pycache__/ (stored 0%)\n", " adding: urllib3/__pycache__/_version.cpython-36.pyc (deflated 16%)\n", " adding: urllib3/__pycache__/exceptions.cpython-36.pyc (deflated 65%)\n", " adding: urllib3/__pycache__/request.cpython-36.pyc (deflated 55%)\n", " adding: urllib3/__pycache__/response.cpython-36.pyc (deflated 56%)\n", " adding: urllib3/__pycache__/poolmanager.cpython-36.pyc (deflated 55%)\n", " adding: urllib3/__pycache__/fields.cpython-36.pyc (deflated 56%)\n", " adding: urllib3/__pycache__/filepost.cpython-36.pyc (deflated 46%)\n", " adding: urllib3/__pycache__/_collections.cpython-36.pyc (deflated 55%)\n", " adding: urllib3/__pycache__/connectionpool.cpython-36.pyc (deflated 57%)\n", " adding: urllib3/__pycache__/__init__.cpython-36.pyc (deflated 42%)\n", " adding: urllib3/__pycache__/connection.cpython-36.pyc (deflated 50%)\n", " adding: urllib3/_version.py (stored 0%)\n", "Current Director: \n", "/home/ec2-user/SageMaker/Lex-KR-Workshop-CF/Deploy-Package/Lambda-BizLogic-DynamoDB\n", " adding: ../../Artifact/Lambda-BizLogic-DynamoDB-Code/cfnresponse.py (deflated 56%)\n", " adding: ../../Artifact/Lambda-BizLogic-DynamoDB-Code/lambda_function.py (deflated 68%)\n", " adding: ../../Artifact/Lambda-BizLogic-DynamoDB-Code/BankingBotData.json (deflated 80%)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "anaconda-project 0.9.1 requires ruamel-yaml, which is not installed.\n", "aiobotocore 1.3.0 requires botocore<1.20.50,>=1.20.49, but you have botocore 1.23.4 which is incompatible.\n", "WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.\n", "You should consider upgrading via the '/home/ec2-user/anaconda3/envs/python3/bin/python -m pip install --upgrade pip' command.\n" ] } ], "source": [ "%%sh -s {DDBInsertFolder} {DDBInsertCodeZip} {Biz_DDB_Code_Folder}\n", "DynamoTableInsertFolder=$1\n", "DBInsertCodeZip=$2\n", "Biz_DDB_Code_Folder=$3\n", "\n", "echo $DynamoTableInsertFolder\n", "echo $DBInsertCodeZip\n", "\n", "# 코드 있는 폴더로 이동\n", "cd $DynamoTableInsertFolder\n", "\n", "# 코드를 압축한 zip 파일 있으면 삭제\n", "if test -f $DBInsertCodeZip; then\n", " rm $DBInsertCodeZip\n", " echo \"Existing Code Zip file is deleted\"\n", "fi\n", "\n", "# package 폴더 있으면 삭제\n", "if [ -d \"package\" ]; then\n", " rm -rf package\n", " echo \"existing package folder is deleted\" \n", "fi \n", "\n", "# requests 패키지 다운로드\n", "pip install --target ./package requests\n", "\n", "cd package\n", "# 패키지 폴더 내용 압축\n", "zip -r ../$DBInsertCodeZip .\n", "cd ..\n", "\n", "echo 'Current Director: '\n", "echo $PWD\n", "# 코드 파일 및 데이터 파일을 압축 파일에 추가\n", "zip -g $DBInsertCodeZip ../../$Biz_DDB_Code_Folder/*.py ../../$Biz_DDB_Code_Folder/*.json\n", "\n" ] }, { "cell_type": "markdown", "id": "fc451865", "metadata": {}, "source": [ "### (2) Zip 파일을 S3에 업로드" ] }, { "cell_type": "code", "execution_count": 11, "id": "6e21d71c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s3_file_path: s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n", "local_file_path: Deploy-Package/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n" ] } ], "source": [ "import os\n", "\n", "prefix = 'Lambda-BizLogic-DynamoDB'\n", "file_name = DDBInsertCodeZip\n", "\n", "s3_file_path = 's3://' + os.path.join(bucket, project_prefix, prefix, file_name)\n", "local_file_path = os.path.join(DDBInsertFolder, file_name)\n", "\n", "print(\"s3_file_path: \", s3_file_path)\n", "print(\"local_file_path: \", local_file_path)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "4e5780c3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "upload: Deploy-Package/Lambda-BizLogic-DynamoDB/DDBInsert.zip to s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n", "2020-10-14 06:11:10 86513735 201014-AWS AIML Healthcare-gonsoomoon.pdf\n", "2020-10-21 10:00:07 159622216 201021-AWS AIML Healthcare-gonsoomoon.pptx\n", "2021-01-07 04:19:37 0 210107-Reinvent-BespinGlobal/\n", "2021-01-07 04:25:10 1086597285 210107-Reinvent-BespinGlobal/2020-Reinvent-BaspinGlobal.zip\n", "2020-03-18 03:24:58 2024 DaekeunPersonalizeDemo.yaml\n", "2020-07-13 08:19:35 1587 GonsooPersonalizeForecastDemo.yaml\n", "2021-12-08 07:15:05 8616 Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n", "2021-12-08 07:14:50 5535 Lex-KR_BankingBot/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n", "2022-01-27 14:02:33 816256 Lex-KR_BankingBot/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n", "2021-12-08 07:15:03 824436 Lex-KR_BankingBot/Lambda-LexArtifact-Import/LexImport.zip\n", "2020-07-13 08:20:41 36 public_test\n" ] } ], "source": [ "! aws s3 cp {local_file_path} {s3_file_path} --profile {aws_profile}\n", "! aws s3 ls {bucket} --recursive --profile {aws_profile}" ] }, { "cell_type": "markdown", "id": "2cae9902", "metadata": {}, "source": [ "# 3. 비즈 로직 Banking Service 람다 코드 준비" ] }, { "cell_type": "markdown", "id": "201edaa2", "metadata": {}, "source": [ "터미널에서 아래 명령어 실행\n", "```\n", "cd Lambda-BankingService/\n", "npm install requests\n", "rm BankingServiceFunction.zip \n", "zip -r BankingServiceFunction.zip .\n", "aws lambda update-function-code --function-name BankingServiceFunction --zip-file fileb://BankingServiceFunction.zip\n", "```" ] }, { "cell_type": "code", "execution_count": 15, "id": "2787a874", "metadata": {}, "outputs": [], "source": [ "BizLambdaFolder = \"Deploy-Package/Lambda-BizLogic-BankingService\"\n", "BizLambdaCodeZip = \"BankingServiceFunction.zip\"" ] }, { "cell_type": "code", "execution_count": 18, "id": "1cae268c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Deploy-Package/Lambda-BizLogic-BankingService\n", "BankingServiceFunction.zip\n", "Artifact/Lambda-BizLogic-BankingService-Code\n", "Current Directory: \n", "/home/ec2-user/SageMaker/Lex-KR-Workshop-CF/Deploy-Package/Lambda-BizLogic-BankingService\n", "\tzip warning: BankingServiceFunction.zip not found or empty\n", " adding: ../../Artifact/Lambda-BizLogic-BankingService-Code/banking_service.js (deflated 66%)\n", " adding: ../../Artifact/Lambda-BizLogic-BankingService-Code/check_balance.js (deflated 65%)\n", " adding: ../../Artifact/Lambda-BizLogic-BankingService-Code/fallback.js (deflated 55%)\n", " adding: ../../Artifact/Lambda-BizLogic-BankingService-Code/index.js (deflated 62%)\n", " adding: ../../Artifact/Lambda-BizLogic-BankingService-Code/transfer.js (deflated 78%)\n", " adding: ../../Artifact/Lambda-BizLogic-BankingService-Code/utils.js (deflated 82%)\n" ] } ], "source": [ "%%sh -s {BizLambdaFolder} {BizLambdaCodeZip} {Biz_Logic_Code_Folder}\n", "BizLambdaFolder=$1\n", "BizLambdaCodeZip=$2\n", "Biz_Logic_Code_Folder=$3\n", "\n", "echo $BizLambdaFolder\n", "echo $BizLambdaCodeZip\n", "echo $Biz_Logic_Code_Folder\n", "\n", "# 코드 있는 폴더로 이동\n", "cd $BizLambdaFolder\n", "\n", "# 코드를 압축한 zip 파일 있으면 삭제\n", "if test -f $BizLambdaCodeZip; then\n", " rm $BizLambdaCodeZip\n", " echo \"Existing Code Zip file is deleted\"\n", "fi\n", "\n", "echo 'Current Directory: '\n", "echo $PWD \n", "\n", "# 코드 파일 및 데이터 파일을 압축 파일에 추가\n", "zip -g $BizLambdaCodeZip ../../$Biz_Logic_Code_Folder/*.js\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 19, "id": "0a38a58e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s3_file_path: s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n", "local_file_path: Deploy-Package/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n" ] } ], "source": [ "import os\n", "\n", "prefix = 'Lambda-BizLogic-BankingService'\n", "file_name = \"BankingServiceFunction.zip\"\n", "\n", "s3_file_path = 's3://' + os.path.join(bucket, project_prefix, prefix, file_name)\n", "local_file_path = os.path.join(BizLambdaFolder, file_name)\n", "\n", "print(\"s3_file_path: \", s3_file_path)\n", "print(\"local_file_path: \", local_file_path)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 20, "id": "f3c070c4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "upload: Deploy-Package/Lambda-BizLogic-BankingService/BankingServiceFunction.zip to s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n", "2020-10-14 06:11:10 86513735 201014-AWS AIML Healthcare-gonsoomoon.pdf\n", "2020-10-21 10:00:07 159622216 201021-AWS AIML Healthcare-gonsoomoon.pptx\n", "2021-01-07 04:19:37 0 210107-Reinvent-BespinGlobal/\n", "2021-01-07 04:25:10 1086597285 210107-Reinvent-BespinGlobal/2020-Reinvent-BaspinGlobal.zip\n", "2020-03-18 03:24:58 2024 DaekeunPersonalizeDemo.yaml\n", "2020-07-13 08:19:35 1587 GonsooPersonalizeForecastDemo.yaml\n", "2021-12-08 07:15:05 8616 Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n", "2022-01-27 14:08:54 6147 Lex-KR_BankingBot/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n", "2022-01-27 14:02:33 816256 Lex-KR_BankingBot/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n", "2021-12-08 07:15:03 824436 Lex-KR_BankingBot/Lambda-LexArtifact-Import/LexImport.zip\n", "2020-07-13 08:20:41 36 public_test\n" ] } ], "source": [ "! aws s3 cp {local_file_path} {s3_file_path} --profile {aws_profile}\n", "! aws s3 ls {bucket} --recursive --profile {aws_profile}" ] }, { "cell_type": "markdown", "id": "268e1543", "metadata": {}, "source": [ "# 4. 렉스 봇 아티펙트 설치 람다 코드 준비" ] }, { "cell_type": "markdown", "id": "a2d7a9ac", "metadata": {}, "source": [ "폴더 구조\n", "- request 라이브러리\n", "- bot_details.json\n", " ```\n", "{\n", " \"name\": \"CardServices\",\n", " \"bot_definition\": \"CardServicesBot-DRAFT-AIGCF4Y0R2-LexJson.zip\"\n", "}\n", " \n", " ```\n", "- Bot 익스포트 zip 파일 (에: \"CardServicesBot-DRAFT-AIGCF4Y0R2-LexJson.zip\")\n", "- cfnresponse.py\n", "- lambda_function.py" ] }, { "cell_type": "markdown", "id": "328cbd70", "metadata": {}, "source": [ "### (1) Lex Import ZIP 생성" ] }, { "cell_type": "code", "execution_count": 21, "id": "0842986c", "metadata": {}, "outputs": [], "source": [ "LexImportFolder = \"Deploy-Package/Lambda-LexArtifact-Import\"\n", "LexImportCodeZip = \"LexImport.zip\"" ] }, { "cell_type": "code", "execution_count": 22, "id": "8f980f2b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Deploy-Package/Lambda-LexArtifact-Import\n", "LexImport.zip\n", "Artifact/Lambda-LexArtifact-Export-Artifact\n", "Collecting requests\n", " Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)\n", "Collecting idna<4,>=2.5\n", " Using cached idna-3.3-py3-none-any.whl (61 kB)\n", "Collecting certifi>=2017.4.17\n", " Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)\n", "Collecting charset-normalizer~=2.0.0\n", " Using cached charset_normalizer-2.0.10-py3-none-any.whl (39 kB)\n", "Collecting urllib3<1.27,>=1.21.1\n", " Using cached urllib3-1.26.8-py2.py3-none-any.whl (138 kB)\n", "Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests\n", "Successfully installed certifi-2021.10.8 charset-normalizer-2.0.10 idna-3.3 requests-2.27.1 urllib3-1.26.8\n", " adding: requests-2.27.1.dist-info/ (stored 0%)\n", " adding: requests-2.27.1.dist-info/INSTALLER (stored 0%)\n", " adding: requests-2.27.1.dist-info/top_level.txt (stored 0%)\n", " adding: requests-2.27.1.dist-info/RECORD (deflated 55%)\n", " adding: requests-2.27.1.dist-info/REQUESTED (stored 0%)\n", " adding: requests-2.27.1.dist-info/METADATA (deflated 58%)\n", " adding: requests-2.27.1.dist-info/WHEEL (deflated 14%)\n", " adding: requests-2.27.1.dist-info/LICENSE (deflated 65%)\n", " adding: idna/ (stored 0%)\n", " adding: idna/core.py (deflated 77%)\n", " adding: idna/compat.py (deflated 40%)\n", " adding: idna/uts46data.py (deflated 80%)\n", " adding: idna/__init__.py (deflated 67%)\n", " adding: idna/package_data.py (stored 0%)\n", " adding: idna/codec.py (deflated 76%)\n", " adding: idna/idnadata.py (deflated 79%)\n", " adding: idna/__pycache__/ (stored 0%)\n", " adding: idna/__pycache__/uts46data.cpython-36.pyc (deflated 73%)\n", " adding: idna/__pycache__/codec.cpython-36.pyc (deflated 59%)\n", " adding: idna/__pycache__/idnadata.cpython-36.pyc (deflated 67%)\n", " adding: idna/__pycache__/package_data.cpython-36.pyc (deflated 12%)\n", " adding: idna/__pycache__/intranges.cpython-36.pyc (deflated 40%)\n", " adding: idna/__pycache__/compat.cpython-36.pyc (deflated 38%)\n", " adding: idna/__pycache__/core.cpython-36.pyc (deflated 51%)\n", " adding: idna/__pycache__/__init__.cpython-36.pyc (deflated 41%)\n", " adding: idna/intranges.py (deflated 57%)\n", " adding: idna/py.typed (stored 0%)\n", " adding: requests/ (stored 0%)\n", " adding: requests/_internal_utils.py (deflated 51%)\n", " adding: requests/status_codes.py (deflated 60%)\n", " adding: requests/certs.py (deflated 35%)\n", " adding: requests/__version__.py (deflated 40%)\n", " adding: requests/auth.py (deflated 71%)\n", " adding: requests/compat.py (deflated 66%)\n", " adding: requests/sessions.py (deflated 72%)\n", " adding: requests/__init__.py (deflated 63%)\n", " adding: requests/hooks.py (deflated 50%)\n", " adding: requests/models.py (deflated 71%)\n", " adding: requests/api.py (deflated 74%)\n", " adding: requests/exceptions.py (deflated 67%)\n", " adding: requests/cookies.py (deflated 73%)\n", " adding: requests/adapters.py (deflated 76%)\n", " adding: requests/structures.py (deflated 62%)\n", " adding: requests/__pycache__/ (stored 0%)\n", " adding: requests/__pycache__/exceptions.cpython-36.pyc (deflated 65%)\n", " adding: requests/__pycache__/api.cpython-36.pyc (deflated 70%)\n", " adding: requests/__pycache__/structures.cpython-36.pyc (deflated 56%)\n", " adding: requests/__pycache__/auth.cpython-36.pyc (deflated 54%)\n", " adding: requests/__pycache__/_internal_utils.cpython-36.pyc (deflated 38%)\n", " adding: requests/__pycache__/hooks.cpython-36.pyc (deflated 35%)\n", " adding: requests/__pycache__/__version__.cpython-36.pyc (deflated 26%)\n", " adding: requests/__pycache__/compat.cpython-36.pyc (deflated 40%)\n", " adding: requests/__pycache__/packages.cpython-36.pyc (deflated 27%)\n", " adding: requests/__pycache__/status_codes.cpython-36.pyc (deflated 48%)\n", " adding: requests/__pycache__/sessions.cpython-36.pyc (deflated 57%)\n", " adding: requests/__pycache__/certs.cpython-36.pyc (deflated 29%)\n", " adding: requests/__pycache__/utils.cpython-36.pyc (deflated 51%)\n", " adding: requests/__pycache__/__init__.cpython-36.pyc (deflated 41%)\n", " adding: requests/__pycache__/help.cpython-36.pyc (deflated 43%)\n", " adding: requests/__pycache__/models.cpython-36.pyc (deflated 55%)\n", " adding: requests/__pycache__/cookies.cpython-36.pyc (deflated 60%)\n", " adding: requests/__pycache__/adapters.cpython-36.pyc (deflated 59%)\n", " adding: requests/packages.py (deflated 53%)\n", " adding: requests/utils.py (deflated 68%)\n", " adding: requests/help.py (deflated 71%)\n", " adding: charset_normalizer-2.0.10.dist-info/ (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/INSTALLER (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/top_level.txt (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/RECORD (deflated 59%)\n", " adding: charset_normalizer-2.0.10.dist-info/METADATA (deflated 59%)\n", " adding: charset_normalizer-2.0.10.dist-info/WHEEL (stored 0%)\n", " adding: charset_normalizer-2.0.10.dist-info/entry_points.txt (deflated 21%)\n", " adding: charset_normalizer-2.0.10.dist-info/LICENSE (deflated 41%)\n", " adding: urllib3-1.26.8.dist-info/ (stored 0%)\n", " adding: urllib3-1.26.8.dist-info/LICENSE.txt (deflated 41%)\n", " adding: urllib3-1.26.8.dist-info/INSTALLER (stored 0%)\n", " adding: urllib3-1.26.8.dist-info/top_level.txt (stored 0%)\n", " adding: urllib3-1.26.8.dist-info/RECORD (deflated 62%)\n", " adding: urllib3-1.26.8.dist-info/METADATA (deflated 65%)\n", " adding: urllib3-1.26.8.dist-info/WHEEL (deflated 14%)\n", " adding: bin/ (stored 0%)\n", " adding: bin/normalizer (deflated 29%)\n", " adding: idna-3.3.dist-info/ (stored 0%)\n", " adding: idna-3.3.dist-info/INSTALLER (stored 0%)\n", " adding: idna-3.3.dist-info/LICENSE.md (deflated 47%)\n", " adding: idna-3.3.dist-info/top_level.txt (stored 0%)\n", " adding: idna-3.3.dist-info/RECORD (deflated 47%)\n", " adding: idna-3.3.dist-info/METADATA (deflated 61%)\n", " adding: idna-3.3.dist-info/WHEEL (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/ (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/INSTALLER (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/top_level.txt (stored 0%)\n", " adding: certifi-2021.10.8.dist-info/RECORD (deflated 44%)\n", " adding: certifi-2021.10.8.dist-info/METADATA (deflated 59%)\n", " adding: certifi-2021.10.8.dist-info/WHEEL (deflated 14%)\n", " adding: certifi-2021.10.8.dist-info/LICENSE (deflated 43%)\n", " adding: certifi/ (stored 0%)\n", " adding: certifi/core.py (deflated 57%)\n", " adding: certifi/__init__.py (stored 0%)\n", " adding: certifi/cacert.pem (deflated 46%)\n", " adding: certifi/__pycache__/ (stored 0%)\n", " adding: certifi/__pycache__/__main__.cpython-36.pyc (deflated 24%)\n", " adding: certifi/__pycache__/core.cpython-36.pyc (deflated 39%)\n", " adding: certifi/__pycache__/__init__.cpython-36.pyc (deflated 12%)\n", " adding: certifi/__main__.py (deflated 39%)\n", " adding: charset_normalizer/ (stored 0%)\n", " adding: charset_normalizer/constant.py (deflated 70%)\n", " adding: charset_normalizer/version.py (deflated 19%)\n", " adding: charset_normalizer/assets/ (stored 0%)\n", " adding: charset_normalizer/assets/__init__.py (deflated 89%)\n", " adding: charset_normalizer/assets/__pycache__/ (stored 0%)\n", " adding: charset_normalizer/assets/__pycache__/__init__.cpython-36.pyc (deflated 60%)\n", " adding: charset_normalizer/legacy.py (deflated 70%)\n", " adding: charset_normalizer/__init__.py (deflated 53%)\n", " adding: charset_normalizer/models.py (deflated 73%)\n", " adding: charset_normalizer/api.py (deflated 75%)\n", " adding: charset_normalizer/cd.py (deflated 74%)\n", " adding: charset_normalizer/__pycache__/ (stored 0%)\n", " adding: charset_normalizer/__pycache__/version.cpython-36.pyc (deflated 12%)\n", " adding: charset_normalizer/__pycache__/api.cpython-36.pyc (deflated 48%)\n", " adding: charset_normalizer/__pycache__/cd.cpython-36.pyc (deflated 50%)\n", " adding: charset_normalizer/__pycache__/md.cpython-36.pyc (deflated 64%)\n", " adding: charset_normalizer/__pycache__/constant.cpython-36.pyc (deflated 55%)\n", " adding: charset_normalizer/__pycache__/utils.cpython-36.pyc (deflated 51%)\n", " adding: charset_normalizer/__pycache__/__init__.cpython-36.pyc (deflated 43%)\n", " adding: charset_normalizer/__pycache__/legacy.cpython-36.pyc (deflated 56%)\n", " adding: charset_normalizer/__pycache__/models.cpython-36.pyc (deflated 58%)\n", " adding: charset_normalizer/md.py (deflated 81%)\n", " adding: charset_normalizer/utils.py (deflated 75%)\n", " adding: charset_normalizer/py.typed (stored 0%)\n", " adding: charset_normalizer/cli/ (stored 0%)\n", " adding: charset_normalizer/cli/__init__.py (stored 0%)\n", " adding: charset_normalizer/cli/__pycache__/ (stored 0%)\n", " adding: charset_normalizer/cli/__pycache__/__init__.cpython-36.pyc (deflated 18%)\n", " adding: charset_normalizer/cli/__pycache__/normalizer.cpython-36.pyc (deflated 44%)\n", " adding: charset_normalizer/cli/normalizer.py (deflated 73%)\n", " adding: urllib3/ (stored 0%)\n", " adding: urllib3/util/ (stored 0%)\n", " adding: urllib3/util/ssl_.py (deflated 66%)\n", " adding: urllib3/util/response.py (deflated 61%)\n", " adding: urllib3/util/timeout.py (deflated 70%)\n", " adding: urllib3/util/retry.py (deflated 73%)\n", " adding: urllib3/util/ssltransport.py (deflated 70%)\n", " adding: urllib3/util/__init__.py (deflated 59%)\n", " adding: urllib3/util/url.py (deflated 66%)\n", " adding: urllib3/util/wait.py (deflated 63%)\n", " adding: urllib3/util/proxy.py (deflated 62%)\n", " adding: urllib3/util/connection.py (deflated 60%)\n", " adding: urllib3/util/queue.py (deflated 49%)\n", " adding: urllib3/util/ssl_match_hostname.py (deflated 61%)\n", " adding: urllib3/util/request.py (deflated 63%)\n", " adding: urllib3/util/__pycache__/ (stored 0%)\n", " adding: urllib3/util/__pycache__/request.cpython-36.pyc (deflated 47%)\n", " adding: urllib3/util/__pycache__/timeout.cpython-36.pyc (deflated 61%)\n", " adding: urllib3/util/__pycache__/wait.cpython-36.pyc (deflated 48%)\n", " adding: urllib3/util/__pycache__/proxy.cpython-36.pyc (deflated 41%)\n", " adding: urllib3/util/__pycache__/response.cpython-36.pyc (deflated 42%)\n", " adding: urllib3/util/__pycache__/ssltransport.cpython-36.pyc (deflated 54%)\n", " adding: urllib3/util/__pycache__/ssl_.cpython-36.pyc (deflated 50%)\n", " adding: urllib3/util/__pycache__/__init__.cpython-36.pyc (deflated 42%)\n", " adding: urllib3/util/__pycache__/url.cpython-36.pyc (deflated 47%)\n", " adding: urllib3/util/__pycache__/queue.cpython-36.pyc (deflated 45%)\n", " adding: urllib3/util/__pycache__/connection.cpython-36.pyc (deflated 40%)\n", " adding: urllib3/util/__pycache__/retry.cpython-36.pyc (deflated 59%)\n", " adding: urllib3/util/__pycache__/ssl_match_hostname.cpython-36.pyc (deflated 39%)\n", " adding: urllib3/packages/ (stored 0%)\n", " adding: urllib3/packages/__init__.py (stored 0%)\n", " adding: urllib3/packages/six.py (deflated 75%)\n", " adding: urllib3/packages/backports/ (stored 0%)\n", " adding: urllib3/packages/backports/makefile.py (deflated 59%)\n", " adding: urllib3/packages/backports/__init__.py (stored 0%)\n", " adding: urllib3/packages/backports/__pycache__/ (stored 0%)\n", " adding: urllib3/packages/backports/__pycache__/makefile.cpython-36.pyc (deflated 33%)\n", " adding: urllib3/packages/backports/__pycache__/__init__.cpython-36.pyc (deflated 18%)\n", " adding: urllib3/packages/__pycache__/ (stored 0%)\n", " adding: urllib3/packages/__pycache__/six.cpython-36.pyc (deflated 58%)\n", " adding: urllib3/packages/__pycache__/__init__.cpython-36.pyc (deflated 19%)\n", " adding: urllib3/response.py (deflated 73%)\n", " adding: urllib3/fields.py (deflated 70%)\n", " adding: urllib3/__init__.py (deflated 60%)\n", " adding: urllib3/connection.py (deflated 71%)\n", " adding: urllib3/_collections.py (deflated 69%)\n", " adding: urllib3/exceptions.py (deflated 69%)\n", " adding: urllib3/contrib/ (stored 0%)\n", " adding: urllib3/contrib/pyopenssl.py (deflated 69%)\n", " adding: urllib3/contrib/securetransport.py (deflated 72%)\n", " adding: urllib3/contrib/ntlmpool.py (deflated 64%)\n", " adding: urllib3/contrib/_appengine_environ.py (deflated 54%)\n", " adding: urllib3/contrib/__init__.py (stored 0%)\n", " adding: urllib3/contrib/socks.py (deflated 70%)\n", " adding: urllib3/contrib/appengine.py (deflated 71%)\n", " adding: urllib3/contrib/__pycache__/ (stored 0%)\n", " adding: urllib3/contrib/__pycache__/ntlmpool.cpython-36.pyc (deflated 42%)\n", " adding: urllib3/contrib/__pycache__/appengine.cpython-36.pyc (deflated 51%)\n", " adding: urllib3/contrib/__pycache__/securetransport.cpython-36.pyc (deflated 54%)\n", " adding: urllib3/contrib/__pycache__/socks.cpython-36.pyc (deflated 51%)\n", " adding: urllib3/contrib/__pycache__/_appengine_environ.cpython-36.pyc (deflated 45%)\n", " adding: urllib3/contrib/__pycache__/__init__.cpython-36.pyc (deflated 20%)\n", " adding: urllib3/contrib/__pycache__/pyopenssl.cpython-36.pyc (deflated 53%)\n", " adding: urllib3/contrib/_securetransport/ (stored 0%)\n", " adding: urllib3/contrib/_securetransport/__init__.py (stored 0%)\n", " adding: urllib3/contrib/_securetransport/low_level.py (deflated 68%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/ (stored 0%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/low_level.cpython-36.pyc (deflated 50%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/bindings.cpython-36.pyc (deflated 53%)\n", " adding: urllib3/contrib/_securetransport/__pycache__/__init__.cpython-36.pyc (deflated 18%)\n", " adding: urllib3/contrib/_securetransport/bindings.py (deflated 75%)\n", " adding: urllib3/connectionpool.py (deflated 73%)\n", " adding: urllib3/request.py (deflated 67%)\n", " adding: urllib3/filepost.py (deflated 63%)\n", " adding: urllib3/poolmanager.py (deflated 71%)\n", " adding: urllib3/__pycache__/ (stored 0%)\n", " adding: urllib3/__pycache__/_version.cpython-36.pyc (deflated 16%)\n", " adding: urllib3/__pycache__/exceptions.cpython-36.pyc (deflated 65%)\n", " adding: urllib3/__pycache__/request.cpython-36.pyc (deflated 55%)\n", " adding: urllib3/__pycache__/response.cpython-36.pyc (deflated 56%)\n", " adding: urllib3/__pycache__/poolmanager.cpython-36.pyc (deflated 55%)\n", " adding: urllib3/__pycache__/fields.cpython-36.pyc (deflated 56%)\n", " adding: urllib3/__pycache__/filepost.cpython-36.pyc (deflated 46%)\n", " adding: urllib3/__pycache__/_collections.cpython-36.pyc (deflated 55%)\n", " adding: urllib3/__pycache__/connectionpool.cpython-36.pyc (deflated 57%)\n", " adding: urllib3/__pycache__/__init__.cpython-36.pyc (deflated 42%)\n", " adding: urllib3/__pycache__/connection.cpython-36.pyc (deflated 50%)\n", " adding: urllib3/_version.py (stored 0%)\n", "Current Directory: \n", "/home/ec2-user/SageMaker/Lex-KR-Workshop-CF/Deploy-Package/Lambda-LexArtifact-Import\n", " adding: ../../Artifact/Lambda-LexArtifact-Export-Artifact/cfnresponse.py (deflated 56%)\n", " adding: ../../Artifact/Lambda-LexArtifact-Export-Artifact/lambda_function.py (deflated 74%)\n", " adding: ../../Artifact/Lambda-LexArtifact-Export-Artifact/bot_details.json (deflated 9%)\n", " adding: ../../Artifact/Lambda-LexArtifact-Export-Artifact/BankingBot-DRAFT-QWXG0RALBK-LexJson.zip (stored 0%)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "anaconda-project 0.9.1 requires ruamel-yaml, which is not installed.\n", "aiobotocore 1.3.0 requires botocore<1.20.50,>=1.20.49, but you have botocore 1.23.4 which is incompatible.\n", "WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.\n", "You should consider upgrading via the '/home/ec2-user/anaconda3/envs/python3/bin/python -m pip install --upgrade pip' command.\n" ] } ], "source": [ "%%sh -s {LexImportFolder} {LexImportCodeZip} {Lex_Artifact_Folder}\n", "LexImportFolder=$1\n", "LexImportCodeZip=$2\n", "Lex_Artifact_Folder=$3\n", "\n", "echo $LexImportFolder\n", "echo $LexImportCodeZip\n", "echo $Lex_Artifact_Folder\n", "\n", "\n", "# 코드 있는 폴더로 이동\n", "cd $LexImportFolder\n", "\n", "# 코드를 압축한 zip 파일 있으면 삭제\n", "if test -f $LexImportCodeZip; then\n", " rm $LexImportCodeZip\n", " echo \"Existing Code Zip file is deleted\"\n", "fi\n", "\n", "# package 폴더 있으면 삭제\n", "if [ -d \"package\" ]; then\n", " rm -rf package\n", " echo \"existing package folder is deleted\" \n", "fi \n", "\n", "# requests 패키지 다운로드\n", "pip install --target ./package requests\n", "\n", "cd package\n", "# 패키지 폴더 내용 압축\n", "zip -r ../$LexImportCodeZip .\n", "cd ..\n", "\n", "echo 'Current Directory: '\n", "echo $PWD \n", "\n", "\n", "# 코드 파일 및 데이터 파일을 압축 파일에 추가\n", "zip -g $LexImportCodeZip ../../$Lex_Artifact_Folder/*.py ../../$Lex_Artifact_Folder/*.json ../../$Lex_Artifact_Folder/*.zip\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "92f68473", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s3_file_path: s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/Lambda-LexArtifact-Import/LexImport.zip\n", "local_file_path: Deploy-Package/Lambda-LexArtifact-Import/LexImport.zip\n" ] } ], "source": [ "import os\n", "\n", "prefix = 'Lambda-LexArtifact-Import'\n", "file_name = LexImportCodeZip\n", "\n", "s3_file_path = 's3://' + os.path.join(bucket, project_prefix, prefix, file_name)\n", "local_file_path = os.path.join(LexImportFolder, file_name)\n", "\n", "print(\"s3_file_path: \", s3_file_path)\n", "print(\"local_file_path: \", local_file_path)\n", "\n" ] }, { "cell_type": "code", "execution_count": 24, "id": "c4fee3fd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "upload: Deploy-Package/Lambda-LexArtifact-Import/LexImport.zip to s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/Lambda-LexArtifact-Import/LexImport.zip\n", "2020-10-14 06:11:10 86513735 201014-AWS AIML Healthcare-gonsoomoon.pdf\n", "2020-10-21 10:00:07 159622216 201021-AWS AIML Healthcare-gonsoomoon.pptx\n", "2021-01-07 04:19:37 0 210107-Reinvent-BespinGlobal/\n", "2021-01-07 04:25:10 1086597285 210107-Reinvent-BespinGlobal/2020-Reinvent-BaspinGlobal.zip\n", "2020-03-18 03:24:58 2024 DaekeunPersonalizeDemo.yaml\n", "2020-07-13 08:19:35 1587 GonsooPersonalizeForecastDemo.yaml\n", "2021-12-08 07:15:05 8616 Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n", "2022-01-27 14:08:54 6147 Lex-KR_BankingBot/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n", "2022-01-27 14:02:33 816256 Lex-KR_BankingBot/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n", "2022-01-27 14:12:11 825595 Lex-KR_BankingBot/Lambda-LexArtifact-Import/LexImport.zip\n", "2020-07-13 08:20:41 36 public_test\n" ] } ], "source": [ "! aws s3 cp {local_file_path} {s3_file_path} --profile {aws_profile}\n", "! aws s3 ls {bucket} --recursive --profile {aws_profile}" ] }, { "cell_type": "markdown", "id": "18fb1156", "metadata": {}, "source": [ "# 5. CF YAML 파일 및 준비 파일 업로드" ] }, { "cell_type": "code", "execution_count": 27, "id": "d8fcbe97", "metadata": {}, "outputs": [], "source": [ "CFFolder = \"Deploy-Package\"" ] }, { "cell_type": "code", "execution_count": 28, "id": "bc465549", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s3_file_path: s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n", "local_file_path: Deploy-Package/CF_KRBankingBot.yaml\n" ] } ], "source": [ "import os\n", "\n", "prefix = \"CF-YAML-File\"\n", "file_name = 'CF_KRBankingBot.yaml'\n", "\n", "s3_file_path = 's3://' + os.path.join(bucket, project_prefix, prefix, file_name)\n", "local_file_path = os.path.join(CFFolder, file_name)\n", "\n", "print(\"s3_file_path: \", s3_file_path)\n", "print(\"local_file_path: \", local_file_path)\n" ] }, { "cell_type": "code", "execution_count": 29, "id": "cdc10d1a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "upload: Deploy-Package/CF_KRBankingBot.yaml to s3://gonsoomoon-priviate-share/Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n", "2020-10-14 06:11:10 86513735 201014-AWS AIML Healthcare-gonsoomoon.pdf\n", "2020-10-21 10:00:07 159622216 201021-AWS AIML Healthcare-gonsoomoon.pptx\n", "2021-01-07 04:19:37 0 210107-Reinvent-BespinGlobal/\n", "2021-01-07 04:25:10 1086597285 210107-Reinvent-BespinGlobal/2020-Reinvent-BaspinGlobal.zip\n", "2020-03-18 03:24:58 2024 DaekeunPersonalizeDemo.yaml\n", "2020-07-13 08:19:35 1587 GonsooPersonalizeForecastDemo.yaml\n", "2022-01-27 14:13:07 8616 Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n", "2022-01-27 14:08:54 6147 Lex-KR_BankingBot/Lambda-BizLogic-BankingService/BankingServiceFunction.zip\n", "2022-01-27 14:02:33 816256 Lex-KR_BankingBot/Lambda-BizLogic-DynamoDB/DDBInsert.zip\n", "2022-01-27 14:12:11 825595 Lex-KR_BankingBot/Lambda-LexArtifact-Import/LexImport.zip\n", "2020-07-13 08:20:41 36 public_test\n" ] } ], "source": [ "! aws s3 cp {local_file_path} {s3_file_path} --profile {aws_profile}\n", "! aws s3 ls {bucket} --recursive --profile {aws_profile}" ] }, { "cell_type": "markdown", "id": "833e03f0", "metadata": {}, "source": [ "## CF S3 경로" ] }, { "cell_type": "code", "execution_count": 30, "id": "073fb833", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://gonsoomoon-priviate-share.s3.ap-northeast-2.amazonaws.com/Lex-KR_BankingBot/CF-YAML-File/CF_KRBankingBot.yaml\n" ] } ], "source": [ "print(f\"https://{bucket}.s3.{region}.amazonaws.com/{project_prefix}/{prefix}/{file_name}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "995d0d48", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 37, "id": "4a1a5e51", "metadata": {}, "outputs": [], "source": [ "# ! aws s3 rm s3://{bucket} --recursive" ] }, { "cell_type": "code", "execution_count": null, "id": "471266dc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "40a5af0d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "conda_python3", "language": "python", "name": "conda_python3" }, "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.6.13" } }, "nbformat": 4, "nbformat_minor": 5 }