使用应用目录中的代码向应用添加 Azure 开发人员 CLI 支持

Azure 开发人员 CLI (azd) 提供了两个不同的工作流来初始化模板以用于应用,其中包括:

  • 使用当前目录中的代码:此方法分析应用并自动生成支持的基础结构和配置资源。
  • 选择模板:此方法允许将现有模板与应用集成,或使用现有模板作为新应用的起点。

这两种方法都在 “创建 Azure 开发人员 CLI 模板概述 ”文档中进行探讨。

本文介绍如何通过当前目录方法中的“使用代码”向应用添加对 Azure 开发人员 CLI(azd)的支持。 有关替代方法的详细信息,请访问使用现有模板文档向应用添加azd支持。 还可以访问培训 - 生成和部署azd模板,了解有关生成azd模板的详细信息。

在当前目录中使用代码

  1. 可以使用自己的项目执行后续步骤。 但是,如果想要继续使用示例应用程序,请将以下初学者存储库克隆到计算机上的空目录:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. 打开项目的根目录的终端。

  3. azd init运行命令以初始化模板。

    azd init
    
  4. 出现提示时,选择选项以 使用当前目录中的代码。 azd 分析项目并提供检测到的服务和建议的 Azure 托管资源的摘要。

  5. 选择“确认并继续初始化应用”azd 在项目根目录中生成以下资产:

    • azure.yaml具有相应服务定义的文件。
    • infra包含基础结构即代码文件的文件夹,用于预配项目并将其部署到 Azure。
    • 一个.azure.env文件夹,其中包含在文件中设置的环境变量。

    本文后面提供了有关此检测和生成过程的更多详细信息。

  6. 生成的文件适用于提供的示例应用,也可以适用于自己的应用。 如有必要,可以修改生成的文件以满足你的需求。 例如,如果你的应用依赖于 Azure 资源,则可能需要进一步修改文件夹中的基础结构即代码文件 infra ,而该资源超出了标识的 azdAzure 资源。

  7. 运行命令 azd up ,将应用预配并部署到 Azure。

    azd up
    
  8. 出现提示时,选择所需的订阅和位置以开始预配和部署过程。

  9. 该过程完成后,单击输出中的 azd 链接以在浏览器中打开应用。

探索初始化步骤

在当前目录工作流中选择“使用代码”时,azd init该命令会根据项目发现的内容分析项目并自动生成代码。 以下各节介绍了此过程的工作原理以及当前支持哪些技术的详细信息。

检测

azd init 命令检测位于项目目录和子目录中支持的语言的项目文件。 azd 此外,扫描包依赖项以收集有关应用使用的 Web 框架或数据库的信息。 如果需要,可以按照确认摘要提示中所示手动添加或编辑检测到的组件。

当前检测逻辑如下所示:

  • 支持的语言:
    • Python
    • JavaScript/TypeScript
    • .NET
    • Java
  • 支持的数据库:
    • MongoDB
    • PostgreSQL
  • 对于 Python 和 JavaScript/TypeScript,会自动检测 Web 框架和数据库。
  • 当 JavaScript/TypeScript 项目使用前端(或客户端)Web 框架时,它被归类为前端服务。 如果服务使用当前未检测到的前端 Web 框架,则可以选择 JQuery 来提供等效的前端服务分类和行为。

代系

确认检测到的组件后, azd init 生成将应用程序部署到 Azure 所需的基础结构即代码文件。

生成逻辑如下所示:

  • 支持的主机:
    • Azure 容器应用。
  • 对于数据库,支持的数据库技术和服务之间的映射:
    • MongoDB:用于 MongoDB 的 Azure CosmosDB API
    • PostgreSQL:Azure Database for PostgreSQL 灵活服务器
    • Redis:Azure 容器应用 Redis 加载项
  • 使用数据库的服务将具有环境变量,这些环境变量默认提供与预先配置的数据库的连接。
  • 检测到前端和后端服务时,将更新后端服务的 Azure 主机上的 CORS 配置,以允许前端服务的默认托管域。 这可以在基础结构即代码配置文件中根据需要进行修改或删除。

添加对开发容器的支持

还可以使模板与开发容器和 Codespaces 兼容。 开发容器允许将容器用作功能齐全的开发环境。 它可用于运行应用程序、用于分隔使用代码库所需的工具、库或运行时,以及帮助持续集成和测试。 可以在私有云或公有云中本地或远程运行开发容器。 (来源: https://containers.dev/

添加对开发容器的支持:

  1. 在项目的根目录中创建 .devcontainer 文件夹。

  2. devcontainer.json使用所需配置在文件夹内.devcontainer创建文件。 azd初学者模板提供了一个示例devcontainer.json文件,可以复制到项目中并根据需要进行修改。

详细了解如何在 Visual Studio Code 文档中使用开发容器

添加对 CI/CD 管道的支持

还可以使用 GitHub 操作或 Azure DevOps 在模板中添加对 CI/CD 的支持,请执行以下步骤:

  1. .github GitHub 操作的文件夹或 .ado Azure DevOps 的文件夹添加到项目的根目录。

  2. 将工作流文件添加到新文件夹中。 初学者azd模板为每个平台提供了一个示例 GitHub Actions 工作流文件和示例 Azure DevOps Pipelines 文件,你可以将其复制到项目中,并根据需要进行修改。

  3. 你还可能需要使用工作流运行所需的环境变量更新 main.parameters.json 文件夹中 infra 的文件。