ForFour

[Flask, AWS] 카카오 오픈빌더로 챗봇 만들기 - 3 : AWS에서 Flask서버 구성하기 본문

Python/[Flask,AWS]카카오 오픈빌더로 챗봇 만들기

[Flask, AWS] 카카오 오픈빌더로 챗봇 만들기 - 3 : AWS에서 Flask서버 구성하기

for_four 2020. 12. 17. 15:42

일단 서버를 만들려면 자원이 있어야 합니다.
클라우드 컴퓨팅 서비스를 이용할 건데 MS의 Azure, AWS, Google Cloud Platform, 네이버 등.. 되게 여러 서비스가 있습니다.

 

저는 AWS를 사용하겠습니다. AWS에서 EC2를 생성하는 건 구글에 검색하면 많이 나오니 생략.

 

학생은 학생 계정으로 신청하면 일주일 정도 걸려 승인받을 수 있습니다.
공식문서 : Amazon Linux EC2 인스턴스를 생성
참고 블로그 : jaehyeongan님 블로그

 

EC2를 생성했으면 간단하게 Flask를 이용해 간단하게 서버를 열어봅니다.

코드는 다음과 같이 생성해줍니다.
dataSend의 json형식은 카카오 오픈 빌더 리턴 형식입니다. 공식문서에서 확인할 수 있습니다.

# server.py
from flask import Flask, request, jsonify
import sys
app = Flask(__name__)


@app.route('/keyboard')
def Keyboard():
    dataSend = {
    "Subject":"OSSP",
    "user":"corona_chatbot"
    }
    return jsonify(dataSend)

@app.route('/message', methods=['POST'])
def Message():

    content = request.get_json()
    content = content['userRequest']
    content = content['utterance']

    if content == u"안녕":
        dataSend = {
            "version": "2.0",
            "template": {
                "outputs": [
                    {
                        "carousel": {
                            "type" : "basicCard",
                            "items": [
                                {
                                    "title" : "",
                                    "description" : "안녕하세요"
                                }
                            ]
                        }
                    }
                ]
            }
        }
    return jsonify(dataSend)

if __name__ == "__main__":
    app.run(host='0.0.0.0') # Flask 기본포트 5000번

 

이 파일을 실행시키기 전에 AWS 인바운드 규칙에서 5000번 포트를 포트포워딩해주어야 합니다.

이 부분도 위 블로그에 잘 설명되어 있습니다.

AWS에서는 계정당 고정 ip 또한 하나씩 받을 수 있기 때문에 저는 고정 ip도 하나 받았습니다.

 

모든 게 준비가 됐으면 ssh로 EC2에 연결하고 서버를 실행시킵니다.

python3 server.py

 

 

 

서버를 열고 "public ip or dns:포트번호/키워드" 

ex > ec2-3-223-84-68.compute-1.amazonaws.com:5000/keyboard 로 접속해서

출력이 이렇게 나온다면 서버 설정도 끝났습니다.

 

 

 

Comments