Python Web Azure 开发人员 CLI (azd
) 模板是生成、配置 Python Web 应用程序并将其部署到 Azure 的最简单方法。 本文提供上下文背景信息,可帮助你了解所涉及的组件以及模板如何简化部署。
开始的最佳方法是 按照快速入门 作,创建第一个 Python Web 应用,并在几分钟内使用 azd
模板将其部署到 Azure。 如果您不想设置本地开发环境,可以使用 GitHub Codespaces,通过快速入门来获得一个完全基于云的体验,所有工具都已预配置。
什么是 Python Web azd 模板?
这些 azd
模板专为经验丰富的 Python Web 开发人员设计,他们希望在 Azure 上部署可缩放的云就绪应用程序,且设置时间最短。
通过以下方法,这些模板提供了构建和部署 Python Web 应用程序的最简单起点:
- 快速设置完整的本地开发和托管环境。
- 自动创建匹配的 Azure 部署环境。
- 使用简单而难忘的 CLI 工作流。
设置环境后,模板提供了开始生成 Python Web 应用的最快方法。 您可以:
- 修改提供的代码文件以符合应用的要求。
- 使用 azd 命令以最少的努力部署更新。
- 扩展模板以适应体系结构。
这些模板反映了经过验证的设计模式和最佳做法,使你能够:
- 在坚实的架构基础上满怀信心地构建。
- 遵循由在 Python 和 Azure 拥有丰富经验的行业专家制定的指导。
- 从一开始就确保可维护性、可伸缩性和安全性。
可以使用模板执行哪些任务?
运行 Python Web azd
模板时,可以快速完成多个任务:
创建初学者应用程序。 你为名为 Relecloud 的虚构公司构建了一个网站。 此入门项目包括:
- 组织有序、生产就绪的代码
- Python Web 框架(如 Flask、Django)的最佳做法。
- 正确使用依赖项、配置和结构。
该模板设计为起点-可以自由自定义逻辑,并扩展或删除 Azure 资源以适应项目。
预配 Azure 资源。 模板使用 Bicep(新式基础结构即代码(IaC)语言,为以下各项预配所有必要的 Azure 资源:
- 托管 Web 应用(如应用服务、容器应用)
- 连接到数据库(如 PostgreSQL、Cosmos DB)
Bicep 文件是完全可编辑的,可以在应用发展时添加或自定义 Azure 服务。 与上一任务类似,可以 根据需要修改 Bicep 模板 以添加更多 Azure 服务。
将初学者应用部署到预配的 Azure 资源。 预配资源后,应用程序会自动部署到 Azure 环境。 您现在可以:
- 在几分钟内查看在云中运行的应用。
- 测试其行为。
- 确定接下来要更新的功能或配置。
(可选) 设置 GitHub 存储库和 CI/CD 管道。 可以选择性地使用 GitHub Actions 持续集成/持续交付(CI/CD)管道 初始化 GitHub 存储库,以执行以下操作:
- 在代码更改时自动部署。
- 与团队成员协作。
- 通过合并到主分支将更新推送到 Azure。
此集成可帮助你从一开始就采用 DevOps 最佳做法。
可在何处访问模板?
许多azd
模板可在Awesome Azure Developer CLI 模板库中找到。 这些模板提供了现成的 Python Web 应用开发项目,并在 Azure 服务和 Python Web 框架的常用组合之间提供功能上的一致性。
各模板包括:
- 具有干净且可维护的代码的示例应用程序。
- 使用 Bicep 进行基础结构即代码的预配置。
- 使用 Azure 开发人员 CLI 无缝部署工作流。
- 通过 GitHub Actions 实现可选 CI/CD 集成
下表列出了可用于azd init
命令的 Python Web azd
模板名字对象。 这些表标识在每个模板中实现的技术,并提供指向相应的 GitHub 存储库的链接,你可以在其中提供更改。
以下 azd
模板适用于 Django Web 框架。
模板 | 数据库 | 托管平台 | GitHub 存储库 |
---|---|---|---|
azure-django-postgres-flexible-aca | Azure Database for PostgreSQL 灵活服务器 | Azure 容器应用 | https://github.com/Azure-Samples/azure-django-postgres-flexible-aca |
Azure-Django-PostgreSQL-灵活应用服务 | Azure Database for PostgreSQL 灵活服务器 | Azure 应用程序服务 | https://github.com/Azure-Samples/azure-django-postgres-flexible-appservice |
azure-django-cosmos-postgres-aca | Azure Cosmos DB for Azure Database for PostgreSQL | Azure 容器应用 (Azure Container Apps) | https://github.com/Azure-Samples/azure-django-cosmos-postgres-aca |
azure-django-cosmos-postgres-appservice | Azure Cosmos DB for Azure Database for PostgreSQL | Azure 应用服务 | https://github.com/Azure-Samples/azure-django-cosmos-postgres-appservice |
azure-django-postgres-addon-aca (Azure Django PostgreSQL 插件 ACA) | 使用 Azure Database for PostgreSQL 的 Azure 容器应用 | Azure 容器应用 (Azure Container Apps) | https://github.com/Azure-Samples/azure-django-postgres-addon-aca |
应如何使用模板?
每个 azd
模板都包含一个 GitHub 存储库,其中包含应用程序代码(使用常用 Web 框架的 Python 代码)和基础结构即代码(即 Bicep)文件来创建 Azure 资源。 该模板还包含使用 CI/CD 管道设置 GitHub 存储库所需的配置。
每个模板的关键组件包括:
应用程序代码:使用 Python 编写,并使用常用的 Web 框架(如 Flask、Django、FastAPI)生成。 示例应用演示了路由、数据访问和配置的最佳做法。
基础结构即代码(IaC):通过 Bicep 文件提供,用于定义和预配所需的 Azure 资源,例如:
- 应用服务或容器应用
- Azure 数据库(如 PostgreSQL、Cosmos DB)
- Azure AI 服务、存储等
CI/CD 配置(可选):包括用于使用 GitHub Actions CI/CD 管道设置 GitHub 存储库的文件,从而启用:
- 每次向主分支发出推送或拉取请求时,都会自动部署到 Azure。
- 无缝集成到 DevOps 工作流
这些模板是完全可自定义的,让你有一个强大的基础来构建和适应项目的特定需求。
若要执行 Web 模板定义的 azd
任务,请使用各种 Python azd
命令。 有关这些命令的详细说明,请参阅 快速入门:部署 Azure 开发人员 CLI 模板。 本快速入门将指导你完成使用特定 azd
模板的步骤。 只需对生产托管环境和本地开发环境运行五个基本的命令行说明。
下表总结了五个基本命令:
命令 | 任务说明 |
---|---|
azd init --template <template name> |
从模板创建新项目,并在本地计算机上创建应用程序代码的副本。 该命令会提示你提供环境名称(如“myapp”),该名称用作已部署资源的命名中的前缀。 |
azd auth login |
登录到 Azure。 此命令将打开一个浏览器窗口,可在其中登录到 Azure。 登录后,浏览器窗口将关闭,命令完成。 azd auth login 命令仅在每次会话首次使用 Azure 开发人员 CLI (azd ) 时才需要。 |
azd up |
预配云资源并将应用部署到这些资源。 |
azd deploy |
将更改后的应用程序源代码部署到由 azd up 命令预配的资源。 |
azd down |
如果已使用 Azure 资源和 CI/CD 管道,请将其删除。 |
小窍门
使用 azd
命令时,请留意提示输入更多信息。 执行 azd up
该命令后,如果有多个订阅,系统可能会提示你选择订阅。 还可能会提示你指定区域。 可以通过编辑存储在模板 /.azure/ 文件夹中的环境变量来更改提示的答案。
完成 azd
模板提供的基本任务后,你将拥有一个原始模板的个人副本,可以根据需要修改任何文件。
- 应用程序代码:自定义 Python 项目代码以实现自己的设计、路由和业务逻辑。
- 基础结构即代码(Bicep):更新 Bicep 文件以预配其他 Azure 服务、更改配置或删除不需要的资源。
通过此灵活的起点,可以在结构良好的基础之上构建,同时根据实际用例定制应用。
如果需要更改 Azure 资源 ,还可以修改基础结构即代码配置 。 有关详细信息,请参阅本文后面的“ 我可编辑或删除的内容 ”部分。
可选模板任务
除了五个基本命令,还可以使用 azd
模板完成可选任务。
重新预配和修改 Azure 资源
使用 azd
模板预配 Azure 资源后,可以修改和重新预配资源。
- 若要修改预配的资源,可以在模板中 编辑相应的 Bicep 文件 。
- 若要启动重新预配任务,请使用
azd provision
命令。
设置 CI/CD 管道
Azure 开发人员 CLI (azd
) 提供了一种为新的 Python Web 应用设置 CI/CD 管道的简单方法。 将提交或拉取请求合并到主分支时,管道会自动生成更改并将其发布到 Azure 资源。
- 若要设置 CI/CD 管道,请指定 GitHub 存储库和所需的设置来启用管道。
- 若要创建管道,请使用
azd pipeline config
命令。
配置管道后,每次将代码更改合并到存储库 的主 分支时,管道都会将更改部署到预配的 Azure 服务。
模板的替代项
如果不想使用 Python Web azd
模板,可以使用替代方法将 Python Web 应用部署到 Azure 并预配 Azure 资源。
可以使用多种工具创建多个资源并完成部署步骤:
- Azure 门户
- Azure CLI
- 带有 Azure Tools 扩展的 Visual Studio Code
可以跟随一个从头到尾介绍 Python Web 开发框架的教程:
常见问题
以下部分总结了有关使用 Python Web azd
模板的常见问题的解答。
我是否需要使用开发容器?
否。 默认情况下,Python Web azd
模板使用 Visual Studio Code 开发容器 。 开发容器提供了许多优势,但它们需要一些先决条件知识和软件。 如果不想使用开发容器,而是使用本地开发环境,请参阅示例应用根目录中的 README.md 文件,了解环境设置说明。
可以编辑或删除哪些内容?
每个 Python Web azd
模板的内容可能因项目类型和所采用的基础技术堆栈而异。 本文中标识的模板遵循常见的文件夹和文件约定,如下表所述。
文件夹/文件 | 目的 | DESCRIPTION |
---|---|---|
/ | 根目录 | 每个模板的根文件夹包含许多不同的文件和文件夹,用于不同的目的。 |
/.azure | azd 配置文件 |
运行 azd init 命令后,将创建 .azure 文件夹。 该文件夹存储命令使用的环境变量的 azd 配置文件。 可以更改环境变量的值以自定义应用和 Azure 资源。 有关详细信息,请参阅 特定于环境的 .env 文件。 |
/.devcontainer | 开发容器配置文件 | 使用开发容器,可以创建基于容器的开发环境,其中包含 Visual Studio Code 中软件开发所需的所有资源。 在 Visual Studio Code 生成开发容器配置文件以响应模板命令后创建 .devcontainer 文件夹。 |
/.github | GitHub Actions 配置文件 | 此文件夹包含可选 GitHub Actions CI/CD 管道、Lint 分析和测试的配置设置。 如果不想使用 azd pipeline config 命令设置 GitHub Actions 管道,可以修改或删除 azure-dev.yaml 文件。 |
/infra | Bicep 文件 | infra 文件夹保存 Bicep 配置文件。 Bicep 允许声明要部署到环境的 Azure 资源。 应仅修改 main.bicep 和 web.bicep 文件。 有关详细信息,请参阅快速入门:使用 Bicep 通过 azd Python Web 模板部署的缩放服务。 |
/src | 初学者项目代码文件 | src 文件夹包含准备初学者项目所需的各种代码文件。 文件示例包括 Web 框架、静态文件、用于代码逻辑和数据模型的 Python(.py)文件、 requirements.txt 文件等所需的模板。 特定文件取决于 Web 框架、数据访问框架等。 可以修改这些文件以满足项目要求。 |
/.cruft.json | 模板生成文件 | .cruft JSON 文件在内部用于生成 Python Web azd 模板。 可以根据需要安全地删除此文件。 |
/.gitattributes | 包含 git 属性设置的文件 | 此文件为 git 提供了用于处理文件和文件夹的重要配置设置。 可以根据需要修改此文件。 |
/.gitignore | 包含 git 忽略项的文件 | .gitignore 文件在写入模板的 GitHub 存储库时通知 git 要排除的文件和文件夹(忽略)。 可以根据需要修改此文件。 |
/azure.yaml | azd up 配置文件 |
此配置文件包含azd up 命令的配置设置。 它指定要部署的服务和项目文件夹。 重要说明:不得删除此文件。 |
/*.md | Markdown 格式文件 | 模板可以包含各种 Markdown (.md) 格式化文件,以实现不同的目的。 可以安全地删除 Markdown 文件。 |
/docker-compose.yml | Docker Compose 设置 | 此 YML 文件在应用部署到 Azure 之前为 Python Web 应用程序创建容器包。 |
/pyproject.toml | Python 生成设置文件 | TOML 文件包含 Python 项目的生成系统要求。 可以修改此文件来标识工具首选项,例如特定的 linter 或单元测试框架。 |
/requirements-dev.in | pip 要求文件 | 此文件用于使用 pip install -r 命令创建要求的开发环境版本。 可以根据需要修改此文件以包含其他包。 |
小窍门
修改程序的模板文件时,请务必练习良好的版本控制。 如果新更改导致程序问题,此方法可帮助你将存储库还原到以前的工作版本。
如何处理模板错误?
如果使用模板时 azd
收到错误,请查看 Azure 开发人员 CLI 故障排除 文章中所述的选项。 还可以在与 azd
模板关联的 GitHub 存储库上报告问题。