Azure Developer CLI 模板概述

Azure Developer CLI (azd) 模板是标准代码存储库,其中包括示例应用程序代码以及 azd 配置和基础结构文件。 通过 azd 模板可以预配 Azure 资源、部署应用程序、配置 CI/CD 管道等。 可以创建自己的模板,也可以从模板存储库(例如 Awesome AZD)开始使用现有模板。 在本文中,你将了解以下概念:

  • azd 模板如何让你预配和部署应用资源
  • azd 模板的结构方式
  • 如何确定是使用现有模板还是创建模板
  • 浏览现有 azd 初学者模板

为何使用 Azure Developer CLI 模板?

开发人员在为云构建适当架构和配置的环境应用时,经常面临许多耗时且具有挑战性的任务。 在这些环境中,团队必须考虑许多不同的问题,例如创建资源、应用配置、设置监视和日志记录、生成 CI/CD 管道以及其他任务。 azd 模板减少并简化了这些责任,以帮助开发人员从本地开发到在 Azure 上成功部署应用。

例如,假设你在一家运营票务管理和客户沟通平台的公司工作,该平台需要以下 Azure 资源:

  • 两个应用程序服务实例和一个应用服务计划用于托管前端 Web 应用和后端 API
  • 用于存储安全应用机密的密钥保管库实例
  • 用于永久存储应用数据的 Cosmos DB 数据库
  • Azure Monitor 资源,例如 Application Insights 仪表板
  • 用于管理可缩放消息传送的服务总线
  • 用于确保通过自动化、可重复过程可以可靠地部署更改的 CI/CD 管道。

借助 azd,你可以利用现有的体系结构模板来预配和部署大部分资源,而不是从头开始。 然后,开发团队可以专注于生成应用,对模板体系结构进行较小的调整。

Azure Developer CLI 模板的工作原理

Azure Developer CLI 模板设计为使用 azd 命令,如 azd initazd up。 这些模板包括配置和基础结构即代码 (IaC) 文件,命令使用这些文件来执行诸如预配 Azure 资源和将应用代码部署到这些资源等任务。

例如,使用现有模板的典型 azd 工作流包括以下步骤:

  1. 使用 --template 参数运行 azd init 命令,从 GitHub 克隆现有模板。

    azd init --template todo-nodejs-mongo
    
  2. 运行 azd auth login 命令对 Azure 订阅进行身份验证。

    azd auth login
    
  3. 运行 azd up 命令以预配模板资源并将其部署到 Azure。 azd up 命令利用模板中的配置和基础结构即代码 (IaC) 文件来预配 Azure 资源并将应用程序部署到这些资源。

    azd up
    
  4. 在 Azure 中设置环境后,可以在本地修改应用程序功能或 Azure 资源模板,然后再次运行 azd up 来预配更改。

了解 Azure Developer CLI 模板结构

所有 azd 模板都共享基于 azd 约定的类似文件结构。 所需的最低资产通常包括以下内容:

  • infra 文件夹 - 包含 azd 模板的所有 Bicep 或 Terraform 基础结构即代码文件。 azd 执行这些文件,以创建托管应用所需的 Azure 资源。

  • azure.yaml 文件 - 一个配置文件,用于定义项目中的一个或多个服务,并将其映射到 infra 文件夹中定义的 Azure 资源以进行部署。 例如,可以定义 API 服务和 Web 前端服务,并将每个服务都映射到不同的 Azure 资源以进行部署。

  • .azure 文件夹 - 包含基本的 Azure 配置和环境变量,例如部署资源的位置或其他订阅信息。

  • src 文件夹 - 包含所有可部署的应用源代码。 某些 azd 模板不包括 src 文件夹,仅提供基础结构资产,以便你可以添加自己的应用程序代码。

    注意

    不包括 src 文件夹的模板通常设计为基础结构初学者模板。

azd 模板还可以选择包含以下一个或多个文件夹:

  • .github 文件夹 - 保留 GitHub Actions 的 CI/CD 工作流文件,这是 azd 的默认 CI/CD 提供程序。
  • .azdo 文件夹 - 如果决定使用 Azure Pipelines 进行 CI/CD,可以在此文件夹中定义工作流配置文件。
  • .devcontainer 文件夹 - 允许为应用程序设置开发容器 环境。

例如,通用 azd 模板可能与以下文件夹结构匹配:

显示 Azure Developer CLI 模板结构的屏幕截图。

从现有模板开始,或创建自己的模板

使用 azd 模板有两种主要方法:

  • 从现有 azd 模板开始。
    • 如果你刚开始使用 azd,或者正在寻找一个模板来构建具有类似体系结构和框架的新应用,则这是一个不错的选择。
  • 将现有项目转换为 azd 模板。
    • 当你已有一个现有应用,但你想要使其与 azd 功能兼容时,这是一个不错的选择。

以下部分提供有关这两个选项的详细信息。

从现有模板开始

awesome-azd 模板库中提供了广泛的 azd 模板选择。 这些模板为各种开发方案、语言框架和 Azure 服务提供基础结构和应用程序代码。 如果找到了一个与本地应用程序堆栈或所需体系结构一致的模板,则可以扩展模板代码并用自己的代码替换

例如,以下 azd 模板为常见的应用体系结构和框架提供了起点:

模板 应用主机 技术堆栈
在 Azure 上将 React Web 应用与 C# API 和 MongoDB 配合使用 Azure 应用服务 Azure Cosmos DB for NoSQL,Bicep
在 Azure 上将 React Web 应用与 C# API 和 SQL 数据库配合使用 Azure 应用服务 Azure SQL 数据库,Bicep
在 Azure 上将 Static React Web App + Functions 与 C# API 和 SQL 数据库配合使用 Azure Static Web AppsAzure Functions Azure SQL 数据库,Bicep

为应用创建新 azd 模板

还可以将现有应用转换为 azd 模板,以使用预配和部署功能增强存储库。 这种方法允许最大程度的控制,并为应用的未来开发工作提供可重用的解决方案。 创建自己的模板的高级步骤如下:

  • 使用 azd init 初始化项目模板。
  • infra 文件夹中创建 Bicep 或 Terraform 基础结构即代码文件。
  • 更新 azure.yaml 文件以将应用服务与 Azure 资源绑定在一起。
  • 使用 azd up 进行预配和部署。

以下资源提供有关创建你自己的模板的详细信息:

使用 azd 模板的指南

请注意,与 Azure Developer CLI 一起使用的每个模板都由其各自的所有者(可能是也可能不是Microsoft)根据模板随附的协议获得许可。 决定何种许可证适用于你选择使用的任何模板是你的责任。

Microsoft 不对任何非 Microsoft 模板负责,也不会出于安全、隐私性、兼容性或性能问题对这些模板进行筛选。 你在 Azure Developer CLI 中使用的模板(包括 Microsoft 提供的模板)不受任何 Microsoft 支持计划或服务的支持。 Microsoft 提供的任何模板均按原样提供,不提供任何形式的保证。

后续步骤