ngrok를 사용하여 모든 채널의 봇 디버그Debug a bot from any channel using ngrok

적용 대상: SDK v4APPLIES TO: SDK v4

봇이 개발 중인 경우 Visual Studio 또는 Visual Studio Code와 같은 IDE를 사용 하 여 로컬에서 봇을 디버그할 수 있습니다.When your bot is in development, you can debug your bot locally using an IDE such as Visual Studio or Visual Studio Code. Bot을 로컬로 채팅 하 고 bot에서 보내고 받는 메시지를 검사 하 여 bot Framework 에뮬레이터를 사용 하 여 봇을 디버그할 수도 있습니다.You can also debug a bot using the Bot Framework Emulator by chatting with your bot locally and inspect the messages your bot sends and receives. Bot의 코드를 약간 업데이트 하 고 기능을 사용 하도록 설정 하 여 검사 미들웨어로 봇을 디버그할수도 있습니다.You can even make slight updates of your bot's code and enable the feature to debug a bot with inspection middleware.

봇이 이미 프로덕션 환경에 있는 경우 ngrok 를 사용 하 여 모든 채널 에서 봇을 디버그할 수 있습니다.When your bot is already in production, you can debug your bot from any channel using ngrok. 여러 채널에 대 한 봇의 원활한 연결은 Bot Framework에서 사용할 수 있는 핵심 기능입니다.The seamless connection of your bot to multiple channels is a key feature available in Bot Framework. 이 문서에서는 ngrok 를 사용 하 여 프로덕션 봇이 구성 된 모든 채널에서 봇을 로컬로 디버그 하는 방법을 보여 줍니다.In this article, we will show you how to locally debug your bot from any channel your production bot is configured for, using ngrok. 지침에 대 한 문서 전체에서 Microsoft 팀 채널 에 연결 된 EchoBot 샘플을 사용 했습니다.We used an EchoBot sample connected to Microsoft Teams Channel throughout the article for instruction.

사전 요구 사항Prerequisites

ngrok 실행Run ngrok

ngrok 는 "로컬 컴퓨터에서 실행 되는 웹 서버를 인터넷에 노출할 수 있도록 하는 플랫폼 간 응용 프로그램"입니다.ngrok is a cross-platform application that "allows you to expose a web server running on your local machine to the internet." 기본적으로 ngrok 를 사용 하 여 웹의 외부 채널에서 로컬 컴퓨터로 직접 메시지를 전달 하 여 Azure Portal에 구성 된 표준 메시징 끝점이 아니라 디버깅을 허용 하는 것입니다.Essentially, what we'll be doing is using ngrok to forward messages from external channels on the web directly to our local machine to allow debugging, as opposed to the standard messaging endpoint configured in the Azure portal.

  1. 터미널을 열고 ngrok 실행 파일이 있는 폴더로 이동 합니다.Open a terminal and navigate to the folder where your ngrok executable is.

  2. 다음 명령을 사용 하 여 ngrok 를 실행 하 여 새 터널을 만듭니다.Run ngrok with the following command to create a new tunnel.

    ngrok http 3978 -host-header="localhost:3978"
    

    참고

    지정 된 포트는 봇이 실행 되는 포트입니다.Please note that the port specified is the port your bot is running on. 원하는 모든 localhost 포트를 사용할 수 있습니다.You may use any localhost port you'd like.

  3. Ngrok 가 시작 되 면 나중에에 대 한 공용 전달 URL을 복사 하 여 저장 합니다.When ngrok starts, copy and save the public forwarding URL for later.

    ngrok 전달 urlngrok forwarding url

Azure Portal에서 구성Configure in Azure portal

Ngrok 가 실행 되는 동안 Azure Portal에 로그인 하 고 bot 설정을 확인 하 여 일부 구성을 수행 합니다.While ngrok is running, login to your Azure portal and view your bot settings to do some configuration.

  1. 로컬 봇에 연결 된 봇 채널 등록 을 선택 합니다.Select your Bot Channels Registration connected to your local bot.

  2. 구성 까지 아래로 스크롤합니다.Scroll down to Configuration. Ngrok 전달 URL을 복사 하 여 메시징 끝점 필드에 붙여넣습니다.Copy and paste the ngrok forwarding URL in the Messaging endpoint field. URL의 끝에 "/api/messages"를 유지 해야 합니다.Ensure that you maintain "/api/messages" at the end of the URL.

    메시징 끝점messaging endpoint

  3. 위로 스크롤하여 저장 을 선택 합니다.Scroll up and select Save.

테스트Test

이 시점에서 외부 채널의 봇으로 들어오는 메시지는 이제 로컬 봇으로 전송 됩니다.At this point, incoming messages from to your bot from external channels will now be sent to your local bot. 이를 시연 하는 데 사용할 샘플 봇은 이미 Microsoft 팀 에 대해 실시간으로 구성 되어 있습니다.The sample bot we'll use to demonstrate this is already configured live for Microsoft Teams. Microsoft 채널과 로컬 봇 연결에 대 한 microsoft 팀에 봇 연결 을 읽어 보세요.Read Connect a bot to Microsoft Teams about connecting a local bot with Microsoft Teams channel.

팀 채널teams channel

로컬에서 Visual Studio에 중단점을 설정할 수 있습니다.Locally, you can set breakpoints in Visual Studio. 들어오는 활동 개체에서 텍스트 속성을 확장 하면 팀에서 봇을 전송한 메시지를 디버깅할 수 있도록 로컬에서 가로채는 것을 볼 수 있습니다.Expanding the text property from the incoming activity object, you will see that the message you sent the bot from teams is being intercepted locally for you to debug.

중단점 설정set breakpoints

여기서는 정상적으로 디버깅 하 고 코드를 단계별로 실행할 수 있습니다.From here you can debug normally, and run your code step by step. 이를 사용 하 여 모든 채널에서 봇을 디버그할 수 있습니다.You can use this to debug your bot from any channel.

디버그 계속debug continue

추가 정보Additional information