ngrok를 사용하여 모든 채널에서 봇 디버그

적용 대상: SDK v4

봇이 개발 중인 동안 IDE 및 Bot Framework Emulator를 사용하여 봇과 로컬로 채팅하고 봇이 보내고 받는 메시지를 검사할 수 있습니다. 봇이 프로덕션 환경에 있는 경우 ngrok를 사용하여 모든 채널에서 봇을 디버그할 수 있습니다. 여러 채널에 대한 봇의 원활한 연결은 Bot Framework에서 사용할 수 있는 주요 기능입니다.

이 문서에서는 봇에 연결된 채널에서 ngrok 및 C# EchoBot 을 사용하여 로컬로 봇을 디버그하는 방법을 설명합니다. 이 문서에서는 Microsoft Teams를 예제 채널로 사용합니다.

참고 항목

Bot Framework Emulator 및 ngrok는 사용자 할당 관리 ID 또는 단일 테넌트 봇을 지원하지 않습니다.

필수 조건

ngrok 실행

ngrok는 인터넷 요청이 로컬 컴퓨터에 도달할 수 있도록 터널링 또는 전달 URL을 만들 수 있는 플랫폼 간 애플리케이션입니다. ngrok를 사용하여 Azure Portal에 구성된 표준 메시징 엔드포인트와 달리 디버깅을 허용하도록 웹의 외부 채널에서 로컬 컴퓨터로 직접 메시지를 전달합니다.

  1. 터미널을 열고 ngrok 실행 파일이 있는 폴더로 이동합니다.

  2. 다음 명령을 사용하여 ngrok를 실행하여 새 터널을 만듭니다.

    ngrok http 3978 --host-header rewrite
    

    참고 항목

    지정된 포트는 봇이 실행 중인 포트입니다. 원하는 모든 localhost 포트를 사용할 수 있습니다.

  3. ngrok가 시작되면 나중에 공용 전달 URL을 복사하고 저장합니다.

    ngrok forwarding URL

Azure Portal에서 구성

ngrok가 실행되는 동안 Azure Portal에 로그인하고 봇 설정을 확인하여 일부 구성을 수행합니다.

  1. 로컬 봇에 연결된 봇 리소스를 선택합니다.

  2. 구성까지 아래로 스크롤합니다. ngrok 전달 URL 을 복사하여 메시징 엔드포인트 필드에 붙여넣습니다. URL의 끝에 "/api/messages"를 기본 있는지 확인합니다.

    Messaging endpoint

  3. 위로 스크롤하여 저장을 선택합니다.

테스트

이제 외부 채널에서 봇으로 들어오는 메시지가 로컬 봇으로 전송됩니다. 이를 설명하는 데 사용할 샘플 봇은 Microsoft Teams에 대해 이미 라이브로 구성되어 있습니다. Microsoft Teams 채널과 로컬 봇을 연결하는 방법에 대해 Microsoft Teams에 봇 커넥트 읽어봅니다.

Teams channel

로컬에서 Visual Studio에서 중단점을 설정할 수 있습니다. 들어오는 활동 개체에서 텍스트 속성을 확장하면 팀에서 봇을 보낸 메시지가 디버그할 수 있도록 로컬로 가로채는 것을 볼 수 있습니다.

Set breakpoints

여기서는 정상적으로 디버그하고 코드를 단계별로 실행할 수 있습니다. 이를 사용하여 모든 채널에서 봇을 디버그합니다.

추가 정보