Azure Stack 허브의 VM에 Python 웹 앱 배포Deploy a Python web app to a VM in Azure Stack Hub

Azure Stack 허브에서 Python 웹 앱을 호스트 하는 VM을 만들 수 있습니다.You can create a VM to host your Python web app in Azure Stack Hub. 이 문서에서는 서버를 설정 하 고 Python 웹 앱을 호스팅하도록 서버를 구성한 후 Azure Stack 허브에 앱을 배포 합니다.In this article, you set up a server, configure the server to host your Python web app, and then deploy the app to Azure Stack Hub.

이 문서에서는 Nginx 서버의 가상 환경에서 Flask를 실행 하는 Python 3.x를 사용 합니다.This article uses Python 3.x running Flask in a virtual environment on an Nginx server.

VM 만들기Create a VM

  1. Azure Stack 허브에서 웹 앱을 호스트 하는 LINUX VM 배포의 지침에 따라 Azure Stack 허브에서 VM을 설정 합니다.Set up your VM in Azure Stack Hub by following the instructions in Deploy a Linux VM to host a web app in Azure Stack Hub.

  2. VM 네트워크 창에서 다음 포트에 액세스할 수 있는지 확인 합니다.In the VM network pane, make sure that the following ports are accessible:

    포트Port 프로토콜Protocol DescriptionDescription
    8080 HTTPHTTP HTTP (하이퍼텍스트 전송 프로토콜)는 서버에서 웹 페이지를 전달 하는 데 사용 되는 프로토콜입니다.Hypertext Transfer Protocol (HTTP) is the protocol that's used to deliver webpages from servers. 클라이언트는 DNS 이름 또는 IP 주소를 사용 하 여 HTTP를 통해 연결 합니다.Clients connect via HTTP with a DNS name or IP address.
    443443 HTTPSHTTPS HTTPS (하이퍼텍스트 전송 프로토콜 보안)는 보안 인증서가 필요 하 고 암호화 된 정보 전송을 허용 하는 HTTP의 보안 버전입니다.Hypertext Transfer Protocol Secure (HTTPS) is a secure version of HTTP that requires a security certificate and allows for the encrypted transmission of information.
    2222 SSHSSH SSH (Secure Shell)는 안전한 통신을 위한 암호화 된 네트워크 프로토콜입니다.Secure Shell (SSH) is an encrypted network protocol for secure communications. 이 연결을 SSH 클라이언트와 함께 사용 하 여 VM을 구성 하 고 앱을 배포 합니다.You use this connection with an SSH client to configure the VM and deploy the app.
    33893389 RDPRDP 선택 사항입니다.Optional. RDP (원격 데스크톱 프로토콜)를 사용 하면 원격 데스크톱 연결에서 컴퓨터의 그래픽 사용자 인터페이스를 사용할 수 있습니다.The Remote Desktop Protocol (RDP) allows a remote desktop connection to use a graphic user interface on your machine.
    5000, 80005000, 8000 사용자 지정Custom 개발 중인 Flask 웹 프레임 워크에서 사용 하는 포트입니다.The ports that are used by the Flask web framework in development. 프로덕션 서버의 경우 80 및 443를 통해 트래픽을 라우팅합니다.For a production server, you route your traffic through 80 and 443.

Python 설치Install Python

  1. SSH 클라이언트를 사용 하 여 VM에 연결 합니다.Connect to your VM by using your SSH client. 지침은 PuTTy를 사용 하 여 SSH를 통해 연결을 참조 하세요.For instructions, see Connect via SSH with PuTTy.

  2. VM의 bash 프롬프트에서 다음 명령을 입력 합니다.At your bash prompt on your VM, enter the following command:

    sudo apt-get -y install python3 python3-venv python3-dev
    
  3. 설치의 유효성을 검사 합니다.Validate your installation. SSH 세션에서 VM에 연결 되어 있는 동안에는 다음 명령을 입력 합니다.While you're still connected to your VM in your SSH session, enter the following command:

        python -version
    
  4. 경량 웹 서버인 Nginx를 설치합니다.Install Nginx, a lightweight web server. SSH 세션에서 VM에 연결 되어 있는 동안에는 다음 명령을 입력 합니다.While you're still connected to your VM in your SSH session, enter the following command:

       sudo apt-get -y install nginx git
    
  5. 광범위 하 게 분산 된 버전 제어 및 SCM (소스 코드 관리) 시스템용 Git를 설치합니다.Install Git, a widely distributed version control and source code management (SCM) system. SSH 세션에서 VM에 연결 되어 있는 동안에는 다음 명령을 입력 합니다.While you're still connected to your VM in your SSH session, enter the following command:

       sudo apt-get -y install git
    

앱 배포 및 실행Deploy and run the app

  1. VM에서 Git 리포지토리를 설정 합니다.Set up your Git repository on the VM. SSH 세션에서 VM에 연결 되어 있는 동안에는 다음 명령을 입력 합니다.While you're still connected to your VM in your SSH session, enter the following commands:

       git clone https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world.git
    
       cd azure-stack-hub-flask-hello-world
    
  2. 가상 환경을 만들고 모든 패키지 종속성으로 채웁니다.Create a virtual environment, and populate it with all the package dependencies. SSH 세션에서 VM에 연결 되어 있는 동안에는 다음 명령을 입력 합니다.While you're still connected to your VM in your SSH session, enter the following commands:

    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
    export FLASK_APP=application.py
    # export FLASK_DEBUG=1 
    flask run -h 0.0.0.0
    
  3. 새 서버로 이동 합니다.Go to your new server. 실행 중인 웹 응용 프로그램이 표시 됩니다.You should see your running web application.

       http://yourhostname.cloudapp.net:5000
    

서버 업데이트Update your server

  1. SSH 세션에서 VM에 연결 합니다.Connect to your VM in your SSH session. Ctrl + C를 입력 하 여 서버를 중지 합니다.Stop the server by typing Ctrl+C.

  2. 다음 명령을 입력합니다.Enter the following commands:

    deactivate
    open the git repo
    git pull
    
  3. 가상 환경을 활성화 하 고 앱을 시작 합니다.Activate the virtual environment and start the app:

    source venv/bin/activate
    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    

다음 단계Next steps