可以创建一个 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
- 按照部署 Linux VM 以在 Azure Stack Hub 中托管 Web 应用中的说明,在 Azure Stack Hub 中设置 VM。 使用 Azure Stack Hub 市场中提供的 Ubuntu Server 18.04 LTS。 
- 在“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 路由流量。 
- 在“概述”窗格中,选择 DNS 名称下的“配置” 。 
- 选择“静态”,然后为计算机命名,以便获得一个 DNS 名称,例如: - <yourmachine>.<local>.cloudapp.azurestack.contoso.com。
安装 Python
- 使用 SSH 客户端连接到 VM。 有关说明,请参阅使用 PuTTy 通过 SSH 进行连接。 
- 在 VM 上的 bash 提示符下,输入以下命令: - sudo apt-get update sudo apt-get -y install python3 python3-dev sudo apt install python3-pip
- 验证安装。 仍在 SSH 会话中连接到 VM 时,输入以下命令以打开 Python 并记下版本号。 然后键入 - quit()以退出 Python REPL。- python3 quit()
- 安装 Nginx(一个轻量级 Web 服务器)。 仍在 SSH 会话中连接到 VM 时,输入以下命令: - sudo apt-get -y install nginx
- 安装 Git,一种广泛分布的版本控制和源代码管理 (SCM) 系统。 仍在 SSH 会话中连接到 VM 时,输入以下命令: - sudo apt-get -y install git
部署和运行应用
- 在 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
- 仍在 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
- 转到新服务器。 应会看到你的 Web 应用程序正在运行。 - <yourmachine>.<local>.cloudapp.azurestack.contoso.com:5000
更新服务器
- 在 SSH 会话中连接到 VM。 通过键入 Ctrl+C 来停止服务器。 
- 输入以下命令: - cd azure-stack-hub-flask-hello-world git pull
- 激活虚拟环境并启动应用: - export FLASK_APP=application.py flask run -h 0.0.0.0
后续步骤
- 详细了解如何针对 Azure Stack Hub 进行开发。
- 了解用作 IaaS 的 Azure Stack Hub 的常见部署。
- 若要了解 Python 编程语言并找到适用于 Python 的其他资源,请参阅 Python.org。