오랜만에 python 으로 텔레그램 봇 만들어서 Azure 에 돌려보기.
1. 텔레그램 봇 등록
오 이거 예전에 했던 것 기억 난다.
텔레그램 앱에서 @BotFather 에게 말 걸어서 봇 만들기
하단 Menu 눌러보면 할 수 있는 일들이 아주 친절하게 주루룩 나온다.
새 bot의 이름은 agent46, 사용자명은 agent46_bot으로 설정했다.
봇 설정을 이런 식으로 하게 해주다니. 예전에도 감탄했던 기억이 나는데, 다시 한번 오오... 감탄하면서 넘어간다.
2. 프로젝트 생성
노트북 바꾼지 한참 된 것 같은데 Python이 안 깔려 있어서 깜짝 놀랐다.
일단 설치
> brew install pyenv
> brew install pyenv-virtualenv
VSCode 에서 Azure Tools extension을 설치하면 왼쪽 툴바에 Azure 메뉴가 생성된다.
그 전에 당연히 Azure 계정이 있어야 한다.
Azure Portal에서 무료 평가판 계정을 하나 만들어두고 로그인 해주면 Resources 하위에 생성할 수 있는 서비스들이 주루룩 나온다.
Resources 에서 리소스를 생성하면 Azure 가상환경에 해당 리소스가 실제로 생성된다.
리모트에서 실행하기 전에 로컬에 프로젝트를 생성해보자.
하단 Workspace 에서 Create Functions 선택하고
1) 새 폴더 생성
2) language는 Python
3) Python interpreter 는 python3 (여기서 선택하면 프로젝트 하위에 해당 버전의 python이 설치된다.)
4) HTTP trigger
5) function name
6) Authorization Level은 Function
여기까지 해주고 Explorer탭을 보면 로컬 프로젝트가 생성되어 있다.
F5 를 눌러서 실행해보니 어라?
아오. azure-functions-core-tools 가 M1 맥에서 안 돌아가는 문제가 있다.
터미널에서 돌릴 때는 터미널에 rosetta 설정해주면 된다는데, VSCode 에서 돌아가게 하려면 이렇게 해본다.
> brew uninstall azure-functions-core-tools@4 // brew로 설치한 azure-functions-core-tools 는 삭제한다.
> nvm --version // nvm이 설치되어 있지 않으면 설치한다.
0.39.1
> nvm install 14.17.6 // node 14.17.6 설치
> npm -g install azure-functions-core-tools@4.0.4483 // npm 으로 azure-functions-core-tools 설치
> pip3 install grpcio // grpcio 패키지 설치
> cp ~/.pyenv/versions/3.9.11/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-darwin.so ~/.nvm/versions/node/v14.17.6/lib/node_modules/azure-functions-core-tools/bin/workers/python/3.9/OSX/X64/grpc/_cython/cygrpc.cpython-39-darwin.so
이렇게 해주면 된다.
여러 가지 과정을 거치는 것 같지만 요약하면
1) brew로 설치한 azure-functions-core-tools 는 삭제한다. (brew list 로 확인)
2) nvm이 설치되어 있지 않으면 설치해준다.
3) node 14.17.6 버전 설치
4) npm 으로 azure-functions-core-tools@4.0.4483 을 설치한다. -g 옵션을 줘서 global로 설치한다.
5) PIP 이용해서 grpcio 설치한다. 어느 PIP를 사용했는지에 따라 grpcio가 설치되는 위치가 다르니 which pip 해보고 설치되는 위치를 확인한다. 예) which pip 결과가 ~/.pyenv/versions/3.9.11/bin/pip 라면 grpcio 패키지는 ~/.pyenv/version/3.9.11/lib/python3.9/site-packages/ 아래에 설치된다.
6) 위에서 확인한 경로에 설치된 cygrpc.cpython-39-darwin.so 를 ~/.nvm/versions/node/v14.17.6/lib/node_modules/azure-functions-core-tools/bin/workers/python/3.9/OSX/X64/grpc/_cython/ 에 설치해준다.
이렇게 해주면 실행 성공!
아오 실행 환경 만드는게 왤케 어려워... 나머지는 다음에