将 Python Web 应用部署到 Azure Stack Hub 中的 VM

可以创建一个 VM 来托管 Azure Stack Hub 中的 Python Web 应用。 在本文中,你将设置一个服务器,将该服务器配置为托管 Python Web 应用,然后将该应用部署到 Azure Stack Hub。

本文使用 Python 3.x 在 Nginx 服务器上的虚拟环境中运行 Flask。 使用 Azure Stack Hub 市场中提供的 Ubuntu Server 18.04 LTS。

创建 VM

  1. 按照部署 Linux VM 以在 Azure Stack Hub 中托管 Web 应用中的说明,在 Azure Stack Hub 中设置 VM。 使用 Azure Stack Hub 市场中提供的 Ubuntu Server 18.04 LTS。

  2. 在“VM 网络”窗格中,确保可以访问以下端口:

    端口 协议 说明
    80 HTTP 超文本传输协议 (HTTP) 是用于从服务器传递网页的协议。 客户端使用 DNS 名称或 IP 地址通过 HTTP 进行连接。
    443 HTTPS 安全超文本传输协议 (HTTPS) 是 HTTP 的安全版本,它需要一个安全证书,并允许对信息进行加密传输。
    22 SSH 安全外壳 (SSH) 是一种用于安全通信的加密网络协议。 你在 SSH 客户端上使用此连接来配置 VM 并部署应用。
    3389 RDP 可选。 远程桌面协议 (RDP) 允许远程桌面连接使用计算机的图形用户界面。
    5000、8000 自定义 开发中的 Flask Web 框架使用的端口。 对于生产服务器,通过 80 和 443 路由流量。
  3. 在“概述”窗格中,选择 DNS 名称下的“配置” 。

  4. 选择“静态”,然后为计算机命名,以便获得一个 DNS 名称,例如:

安装 Python

  1. 使用 SSH 客户端连接到 VM。 有关说明,请参阅使用 PuTTy 通过 SSH 进行连接

  2. 在 VM 上的 bash 提示符下,输入以下命令:

    sudo apt-get update
    sudo apt-get -y install python3 python3-dev
    sudo apt install python3-pip
    
  3. 验证安装。 仍在 SSH 会话中连接到 VM 时,输入以下命令以打开 Python 并记下版本号。 然后键入 quit() 以退出 Python REPL。

    python3
    quit()
    
  4. 安装 Nginx(一个轻量级 Web 服务器)。 仍在 SSH 会话中连接到 VM 时,输入以下命令:

    sudo apt-get -y install nginx
    
  5. 安装 Git,一种广泛分布的版本控制和源代码管理 (SCM) 系统。 仍在 SSH 会话中连接到 VM 时,输入以下命令:

    sudo apt-get -y install git
    

部署和运行应用

  1. 在 VM 上设置 Git 存储库。 仍在 SSH 会话中连接到 VM 时,输入以下命令:

       git clone https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world.git
    
       cd azure-stack-hub-flask-hello-world
    
  2. 仍在 SSH 会话中连接到 VM 时,输入以下命令以安装依赖项。 使用 apt 安装 Flask,然后使用 pip 从 requirements.txt 加载模块。

    sudo apt install python3-flask
    pip3 install -r requirements.txt
    
    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    
  3. 转到新服务器。 应会看到你的 Web 应用程序正在运行。

    <yourmachine>.<local>.cloudapp.azurestack.contoso.com:5000
    

更新服务器

  1. 在 SSH 会话中连接到 VM。 通过键入 Ctrl+C 来停止服务器。

  2. 输入以下命令:

    cd azure-stack-hub-flask-hello-world
    git pull
    
  3. 激活虚拟环境并启动应用:

    export FLASK_APP=application.py
    flask run -h 0.0.0.0
    

后续步骤