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

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

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

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

本文介绍如何通过azd方法,为应用添加对 Azure 开发人员 CLI()的支持。 访问使用现有模板文档向应用添加 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. 生成的文件对于所提供的示例应用可直接使用,对于你自己的应用也可能同样适用。 如有必要,可以修改生成的文件以满足你的需求。 例如,如果你的应用依赖于超出 infra 所识别范围的 Azure 资源,你可能需要进一步修改 azd 文件夹中的基础设施即代码文件。

  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 来提供等效的前端服务分类和行为。

Generation

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

生成逻辑如下所示:

  • 支持的主机:
    • Azure 容器应用。
  • 对于数据库,支持的数据库技术与所使用服务之间的映射关系:
    • MongoDB:Azure CosmosDB API for MongoDB
    • 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 Actions 或 Azure DevOps 为模板添加对 CI/CD 的支持:

  1. .githubGitHub操作的文件夹或.adoAzure DevOps的文件夹添加到项目的根目录。

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

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