ngrok을 사용하여 로컬에서 실행되는 Azure Functions에 외부(인터넷 쪽)에서 액세스
3643 단어 알렉사AzureFunctions텔로ngrokC#
소개
이것은 C#의 이야기라고 생각하게 하면서, 실은 Alexa 스킬을 C#로 구현해, Tello를 Alexa 경유로 조작하는 목표를 달성하기 위한 도중이므로, 이것은 Alexa 스킬의 이야기입니다.
지금까지 다음과 같이 왔습니다.
그렇다면 다음은 당연히 이것입니다.
Node.js를 사용하는 경우는 PC상에서 스킬의 처리 부분을 움직여, ngrok로 인터넷측으로부터 액세스 할 수 있도록 하고, Alexa로부터의 리퀘스트를 받고, 리스폰스를 돌려준다고 하는 흐름이었습니다.
이런 식으로.
> node index.js
>
> ngrok http 3000
이제 PC에서 실행되는 프로그램을 스킬의 엔드포인트로 만들었습니다.
그렇다면 C#에서 같은 일을 하려면 어떻게 해야 할까요?
C#에서 서버리스 구조는
Azure Functions
입니다.Azure Functions 프로젝트에서 스킬의 엔드포인트를 만들고 이를 ngrok에서 외부와 연결하는 흐름입니다.
이번에는 우선 Azure Functions를 ngrok을 사용하여 인터넷 측에서 액세스할 수 있도록 합니다.
Azure Functions 프로젝트 만들기
파일→새로 만들기→프로젝트
를 선택하고 AzureFunctions를 선택합니다.
프로젝트 이름은 TelloControlCSharpSkill
로 해 둡시다. 가는 것은 Tello를 조작하게 되기 때문에.
OK 버튼을 누르면 작성 완료입니다.
실행 버튼을 눌러 실행합니다.
그러면 다음과 같은 콘솔이 시작되고 Azure Functions가 PC에서 작동을 시작합니다.
콘솔에 표시된 정보 중 이 기능에 액세스하기 위한 URL이 있습니다.
이 URL을 브라우저의 주소 입력란에 입력해 봅시다.
아래와 같이 표시되면 동작하고 있습니다.
그러나 이것은 로컬 주소이므로 인터넷을 통해이 기능에 액세스 할 수 없습니다.
그래서 ngrok의 차례입니다.
이 Azure Functions는 움직이지 않고 유지합니다.
ngrok 실행
ngrok을 실행하려면 다음을 준비해야 합니다.
ngrok을 실행하려면 다음을 준비해야 합니다.
Node.js를 설치하고 ngrok을 설치 한 후 ngrok을 사용하여 인터넷에서 움직이지 않는 Function에 액세스 할 수 있습니다.
> ngrok http 7071 -host-header="localhost:7071"
그러면 글로벌 URL과 로컬 주소(포트 번호 7071)가 연결되어 인터넷 측에서 액세스할 수 있습니다.
이 URL은 ngrok을 시작할 때마다 임의의 문자열이 할당됩니다.
이제 URL
https://4743e56d.ngrok.io/api/Function1
을 브라우저의 주소 필드에 입력해 보겠습니다.역시 이전과 같은 페이지가 표시되면 제대로 동작하고 있는 것입니다.
이제 인터넷에서 이 기능에 액세스할 수 있습니다.
그렇다고 하는 것은 PC상에서 Alexa 스킬의 엔드 포인트를 동작시켜, Alexa로부터의 리퀘스트를 받고 스킬의 처리를 실시할 수 있게 되었다고 하는 것입니다.
다음은 이 기능에서 Alexa로부터 요청을 받고 응답을 반환하는 방법을 설명합니다.
Reference
이 문제에 관하여(ngrok을 사용하여 로컬에서 실행되는 Azure Functions에 외부(인터넷 쪽)에서 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shuhey/items/91cbd0c24d951f8a8bc2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)