Azure Functions Python (preview)에서 pip 사용


Azure Functions의 Python 환경(2019/5/1 현재, 미리 보기)에서 패키지를 설치하는 방법의 비망록입니다.

Azure에서 pip 명령을 사용할 수 없었습니다.



구그하면 Kudu 콘솔에서 pip 명령을 사용하면 좋을 것 같았지만 Kudu가 열리지 않습니다. . Azure 콘솔의 플랫폼 기능을 보면 Kudu를 사용할 수있는 분위기이지만 클릭해도 반응하지 않습니다.



scm URL을 직접 지정해도 ``서버를 찾을 수 없습니다''가되어 파이썬이 호스팅되는 Linux 환경에서는 Kudu 콘솔을 사용할 수없는 것 같습니다. 그래서 Azure에서 pip 명령을 실행할 수 없습니다.

다시 생각하고 튜토리얼을 확인하면 종속 파일 인 requirements.txt에 필요한 패키지 이름과 버전을 쓰면 OK입니다. 그럼 해보겠습니다.

샘플 앱



이번에 사용한 샘플 앱입니다. Http에서 트리거되는 함수 내에서 BeautifulSoup을 사용하여 코드를 움직입니다.

__init__.py
import logging

import azure.functions as func
import urllib.request
from bs4 import BeautifulSoup

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    url = 'https://azure.microsoft.com/ja-jp/'
    with urllib.request.urlopen(url) as res:
        html = res.read()
        soup = BeautifulSoup(html, 'html.parser')
        title = soup.head.title
        return func.HttpResponse(f"title: {title.text}")

패키지 설치 절차



1. 로컬 환경에 패키지 설치



먼저 로컬 환경에서 평소처럼 pip 명령을 사용하여 패키지를 설치합니다.
python -m pip install BeautifulSoup4

설치된 패키지의 버전을 확인합니다.
python -m pip list

2. requirements.txt 편집



pip로 패키지를 설치할 수 있으면 requirements.txt에 패키지 이름과 버전을 설명합니다. requirements.txt는 Azure Functions Core Tools(CLI 또는 VS Code 확장)에서 프로젝트 디렉터리 바로 아래에 생성됩니다.

requirements.txt
beautifulsoup4==4.7.1

3. Azure에 배포



평소처럼 발행하는 것만으로 OK입니다. 특히 추가 단계는 필요하지 않습니다.

VS 코드의 경우:


CLI의 경우:

bash
func azure functionapp publish <app_name>

4. 실행



브라우저에서 함수를 실행해 봅니다.
https://<app_name>.azurewebsites.net/api/HttpTrigger

타겟 웹 사이트의 Title 태그를 얻을 수 있으면 성공입니다.


미안해~

참고


  • Azure Functions용 ​​Python 개발자 가이드 - Microsoft
  • Azure에서 처음 Python 함수 만들기(미리 보기) - Microsoft
  • Visual Studio Code를 사용하여 처음 함수 만들기 - Microsoft
  • 좋은 웹페이지 즐겨찾기