开始在 Azure 上使用 Python
如果不熟悉如何为云开发应用程序,则最好从包含 8 篇文章的此短篇系列文章开始。
- 第 1 部分:面向开发人员的 Azure 的概述
- 第 2 部分:面向开发人员的主要 Azure 服务
- 第 3 部分:在 Azure 上托管应用程序
- 第 4 部分:将应用连接到 Azure 服务
- 第 5 部分:如何在 Azure 中创建和管理资源?
- 第 6 部分:生成 Azure 应用的关键概念
- 第 7 部分:如何计费?
- 第 8 部分:针对 Azure 服务、SDK 与 CLI 工具的版本控制策略
创建 Azure 帐户
若要使用 Azure 来开发 Python 应用程序,则需有一个 Azure 帐户。 Azure 帐户是用于登录 Azure 和创建 Azure 资源的凭据。
如果你在工作中使用 Azure,则请与公司的云管理员联系,以获取用于登录 Azure 的凭据。
否则,可创建一个 Azure 免费帐户并免费获得 12 个月的热门服务和 200 美元的额度,而这些额度可用于在 30 天内探索 Azure。
创建和管理资源
若要使用 Azure 资源(例如数据库、消息队列、文件存储等),必须先创建资源的实例。 创建资源涉及:
- 选择容量或计算选项
- 将新资源添加到资源组
- 选择运行此服务的全球区域
- 为此服务提供一个唯一名称
可使用多种工具来创建和管理 Azure 资源,具体取决于你的场景:
- Azure 门户 - 如果你不熟悉 Azure,且希望通过基于 Web 的用户界面来创建和管理几个资源。
- Azure CLI - 如果你更熟悉命令行接口。
- Azure PowerShell - 如果你更喜欢其 CLI 中的 PowerShell 式语法。
- Azure 开发人员 CLI - 想要创建涉及众多具有复杂依赖项的 Azure 资源的可重复部署时。 需要学习 Bicep 模板(一种命令性语言)。
- Azure 工具扩展包 - 此扩展包包含用于在一个便捷包中使用某些最常用 Azure 服务的扩展。
此外,还可使用用于 Python 的 Azure 管理库来创建和管理资源。 借助管理库,可使用 Python 来实现自定义部署和管理功能。 可帮助你入门的部分文章如下:
编写 Python 应用
在 Azure 上进行开发需要 Python 3.8 或更高版本。 若要在工作站上验证 Python 版本,请在控制台窗口中键入命令 python3 --version
(适用于 macOS/Linux)或 py --version
(适用于 Windows)。
使用你喜欢的工具编写 Python 应用。 如果使用的是 Visual Studio Code,则应尝试用于 Visual Studio Code 的 Python 扩展。
这组文章中的大多数说明均会使用虚拟环境,因为它是最佳做法。 请随意使用所需的任意虚拟环境,但文章说明对 venv
进行了标准化。
使用客户端库
入门时,这些文章将指导你使用 pip
实用工具来安装和引用哪些 Azure 上的 Python 库。
有时,可能需安装并引用用于 Python 客户端库的 Azure SDK,而无需按文章中的说明进行操作。 Azure SDK 概述是一个很好的起点。
向 Azure 验证应用
使用适用于 Python 的 Azure SDK 时,应用必须自行进行身份验证。 应用身份验证的方式取决于是在开发和测试期间在本地运行应用、在自己的服务器上托管应用还是在 Azure 中托管应用。 有关在 Azure 上进行身份验证的详细信息,请阅读使用适用于 Python 的 Azure SDK 向 Azure 服务验证 Python 应用。
此外,还需设置访问策略,而这些策略可控制哪些标识(服务主体和/或应用程序 ID)能访问这些资源。 访问策略可通过 Azure 基于角色的访问控制 (RBAC) 来管理;某些服务还有更具体的访问控制规则。 作为使用 Azure 的云开发人员,请务必熟悉 Azure RBAC,因为你可将其用于几乎所有存在安全顾虑的资源。
添加横切关注点
- 使用 Azure Key Vault 管理应用程序密钥
- 使用 Azure Monitor 进行日志记录,从而深入了解应用
托管 Python 应用
如果希望应用代码在 Azure 上运行,则可使用多个选项,如在 Azure 上托管应用程序中所述。
如果要生成 Web 应用或 API(Django、Flask、FastAPI 等),则请考虑:
如果要生成 Web 应用程序,请参阅配置本地环境以在 Azure 上部署 Python Web 应用。
此外,如果要生成 Web API,则应考虑使用 Azure API Management。
如果要生成后端进程: