MixedCode

이번시간에는 간단히 만들어진 챗봇서비스를 어떻게 Azure Cloud에 배포하고 서비스하며 Azure Bot Service기능을 사용하는지에 대해
알아가보도록 하겠습니다.

하기정보는  Microsoft Bot Framework SDK Ver 4.x버전을 기준으로 설명드립니다.

기존 SDK 3.x버전과는 약간 상이할수 있습니다.

실습을 위해 제공된 Azure Pass 또는  유/무료 계정을 통해 애저포탈 사이트에 로그인을 합니다.


1.Azure Bot Service 신청하기
-애저 포탈 좌측 메뉴에 모든 서비스 메뉴를 클릭합니다.
-모든 서비스 상단 필터검색란에 Bot Service라고 입력하고 조회하거나 하단에 AI+기계학습 카테고리로 이동하여 Bot Services 를 선택합니다.




2.중간 Bot Services 만들기 또는 상단 추가하기 메뉴를 클릭합니다.


3.Web App Bot 서비스를 선택합니다.
-봇서비스를 개발하고 배포할수 있는방법은 크게 Azure Web App Bot(PaaS) 서비스 방식과 Azure Fuctions Bot(FaaS=Serverless) 서비스 방식을 통해 가능합니다.
-Web App Bot를 선택합니다.




4.Web App Bot 하단에 만들기 버튼을 클릭합니다.
-봇이름 : 고유한 여러분만의 봇이름을 입력합니다.
-구독: 무료체험 또는 유료구독 선택
-리소스그룹: 처음 사용자는 새로만들기(봇이름+'RG'), 기존 리소스그룹 재사용시 기존리소스 선택
-위치:애저 데이터 센터 Region선택( Korea Centeral=서울 또는 Korea South=부산 )
-가격책정계층: S1
-앱이름: 봇이름.azurewebsites.net : 앱서비스 도메인 주소
-봇템플릿: Basic Bot(C#)을 클릭하고
ㄴ봇템플릿을 SDK v3 or SDK v4중 여러분이 현재 개발하고 있는 버전을 선택해야한다.
ㄴ언어또한 여러분이 사용하는 언어선택
ㄴEchoBot( 기본 템플릿 제공용 심플 챗봇), Basic Bot (LUIS기능포함된 봇)  개발시 이용한 템플릿 BOt( EcoBot ) 템플릿을 선택한다.

-위에서 BasicBot 를 선택한 경우 LUIS를 개발해 서비스할  LUIS앱위치(Region)를 선택해야한다.
ㄴ2019년 02월 15일기준 LUIS는  호주동부,유럽서부,미국서부 리전만 제공된다. 호주동부선택





-앱서비스 계획/위치 : 클릭 후 새로생성> 앱서비스 계획이름(봇이름+'Plan'),위치:데이터센터 Region(한국중부) 선택 후 확인버튼 클릭


-Application insights 서비스는 해제합니다.


ㅁ앱아이디 및 암호 자동생성 으로 진행합니다.
ㄴ새로생성을 클릭해 챗봇 서비스를 위한 APPID와 APPPassword를 생성합니다.
ㄴ앱ID생성 화면의 파란색 <앱등록 포털에서 앱ID생성> 링크 를 클릭해 APPID와 암호를 생성하고 반드시 ID와 암호값을 기억해둡니다.




-만들기 버튼을 클릭하여 Web App Bot 서비스를 신청완료합니다.





5.Web App Bot 서비스 신청 후 1분내외 BotServices목록에 신청 서비스가 나타납니다.



6.주요 Web App Bot 서비스 메뉴를 확인합니다.

6.1 개요: 해당 Web App Bot 서비스 주요정보를 제공합니다. 끝점(EndPoint)주소를 반드시 확인합니다.




6.2 빌드:애저 포탈상에서 온라인코드 편집기(Visual Studio Code UX)를 이용해 브라우저상에서 간단한  봇서비스 기능수정/빌드/배포가 가능합니다. 



6.3 웹채팅에서 테스트
-애저에서 제공된는 웹채팅 컨트롤을 이용해 바로 웹채팅기반에서 챗봇을 테스트하거나 서비스할수 있습니다.



6.5 채널: 챗봇 서비스와 연결할수 있는 각종 채널(채팅클라이언트)정보를 관리할수 있습니다.
-채널의 종류에는 각종 SNS,웹챗,DirectLine 채널들이 존재합니다.
-웹챗의 편집버튼을 클릭하여 DirectLine의 Security Key값과 웹챗 을 iframe을 이용해 고객사이트에 연결할수 있는 방법을 확인해보세요.






6.4.설정: 봇과 관련한 기본정보를 설정하거나 제공합니다.
-EndPoint 주소를 재설정할수 있습니다.(여러개의 Controller사용시 변경해가며 사용할수 있습니다.


6.5 애플리케이션 설정:  Web App Bot 어플리케이션의 각종 설정정보를 확인하고 관리할수있습니다.
-.NET Framework : v.4.7  개발된 소스를 서비스할 닷넷 프레임워크 버전을 선택합니다.(개발환경 포함 상위버전가능)
-플랫폼 : 64비트를 선택합니다.
-웹소켓 : 설정으로 활성화 합니다.
-앱설정의 주요항목을 확인합니다.







6.6 모든 앱서비스 설정을 클릭하면 애저 웹앱의 설정화면으로 이동합니다.
-개요: 전체 웹앱의 정보/사용현황 정보를 제공합니다.


-응용프로그램 설정





-사용자 지정도메인: 사용자의 도메인을 이용해 챗봇을 서비스할수 있습니다.





-가격책정계층선택 : 서비스 사양을 변경적용할수 있습니다.


-규모확장(App Service 계획): 설정기반 Auto Scale 기능을 제공합니다.



7. 로컬에서 개발한 Visusal Studio로 개발한 Bot Application을 방금 만들어둔 Azure Web App Bot 서비스 공간에 배포해도보록 하겠습니다.
- Azure Bot Service로 배포하기전 하기와 같이 챗봇 프로젝트의  ~.bot 파일을 열어 배포될 Azure Bot Service 설정정보를 추가합니다.
-하기 소스를 카피해 ~.bot파일에 추가로 붙여넣습니다.
저장 후 챗봇 프로젝트에 오른쪽 마우스 클릭 > 게시를 선택합니다.





  {
      "appId": "4e2c3811-7e83-444b-b1b0-590a2c43149e",
      "appPassword": "vipfMTT741:|rvuPHFY18{^",
      "endpoint": "https://eddybottest0216.azurewebsites.net/api/messages",
      "type": "endpoint",
      "name": "production",
      "id": "4"
    }


관련정보 설명
- appId : Azure Bot Service AppID
- appPassword : Azure Bot Service AppPassword
-endpoint : 챗봇이 서비스되는 종단점 주소 




8.Visual Studio의 솔루션 탐색기에서 ChatBotApplication 프로젝트를 선택하고 오른쪽 마우스클릭>게시를 클릭합니다.
-게시대상선택에서 App Service>Azure App Service 의 기존항목선택을 선택합니다.
-중간에 고급링크를 클릭하여 뜨는 팝업창에 파일게시옵션을 반드시 대상에서 추가파일제거 체크박스를 선택후 저장합니다.( 클라우드상의 기존소스를 제거후 로컬 소스로 덮어씀) 
-프로필 만들기 버튼을  클릭합니다.






-App Service 현재 보유중인 애저 앱서비스 목록이 나타나며 애저포탈에 생성한 Web App Bot 서비스를 선택 후 확인을 클릭합니다.
-상단 우측 에 마이크로소프트 계정이 현재 방금전에 AZURE PORTAL에서 Azure Bot Service를 생성한 메일계정인지 확인합니다.
-다르다면 목록에서 해당 계정으로 로그인하세요.
-하단 목록에 애저포탈에서 생성한 Azure Bot Service를 선택후 확인버튼을 클릭합니다.



9.게시버튼을 클릭하여 클라우드에 게시를 합니다.
-게시 프로파일정보 삭제 시 :  동작 링크 클릭 후 프로파일 삭제
-배포서버 정보 수정시: 구성 링크 클릭 후 관련정보 수정
-게시 배포정보는 개발소스상에 저장되어 관리됩니다.


10. 웹챗 으로  연결 테스트 하기
정상적으로 게시가 되었는지 애저포탈 Web App Bot 서비스 메뉴중 웹채팅에서 테스트 메뉴를 클릭해 개발된 소스가 정상 작동되는지 확인하고 채널 메뉴의 웹챗 iframe 링크주소를 이용해 
독립된 브라우저 환경에서도 작동이 되는지도 확인해봅니다.

11.에뮬레이터를 이용한 애저 챗봇 서비스 테스트하기
-애저 클라우드에 배포된 챗봇 서비스에 대해 개발자 컴퓨터에 설치된 애뮬레이터에서도 연결 테스트가 가능합니다.
-애저 포탈 서비스에서 제공되는 챗봇서비스를 애뮬레이터로 테스트하기 위해서는 보안을 우회할수 있는 S/W가 필요한데 아래 사이트에서 관련 S/W다운받습니다.
ㄴ HTTPS://ngrok.com  
- 회원가입 후 로그인 후 다운로드 메뉴에서 윈도우즈용 ngrok 압축파일을 다운받아 로컬에 다운받습니다.




-다운받은 압축파일을 풀고 exe파일 위치를 확인합니다.




-애물레이터의 상단 우측 설정아이콘을 클릭후 Settings메뉴의 Path to ngrok  파일 위치 패스를 설정후 저장버튼을 클릭합니다.



-애저 포탈에서 제공해주는 WEB APP BOT 서비스의 설정메뉴에가서  애저 서비스 도메인 끝점 주소를 복사해  애뮬레이터 주소란에 입력하고 
MicrosoftAppId 값과 MicrosoftAppPassword 값을 입력 후 CONNECT 버튼을 클릭합니다.



정상적으로 작동이 된다면 개발 및 배포/서비스 환경 모두가 준비완료된것입니다.
이제 본격적으로 헤어살롱 챗봇 서비스 개발에 집중해보겠습니다.

수고 많으셨습니다.

*