使用现有模板向应用添加 Azure 开发人员 CLI 支持

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

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

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

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

为应用选择模板

使用命令的azd init“选择模板”工作流,可以选择用作起点的现有azd模板。 所选模板的内容将添加到项目的根目录。 大多数模板提供所需的文件和文件夹集 azd ,许多模板都包含一个完整的基础结构即代码文件,用于为所选应用程序堆栈预配 Azure 资源。

在此示例中,你将使用 Starter - Bicep 模板,其中包括模板的基本结构 azd 以及一些有用的样板代码入门。 当想要搭建正确的模板结构和启动资源时,初学者模板是一个不错的选择,但仍创作自己的基础结构文件。

  1. 若要遵循使用现有示例应用程序的后续步骤,请将以下初学者项目克隆到计算机上的空目录:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. 在所选命令行工具中,导航到克隆项目的根目录。

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

    azd init
    
  4. 出现提示时,选择用于 选择模板的选项。

    显示选择模板选项的屏幕截图。

  5. 从模板列表中,选择 “Starter - Bicep”。 可以键入模板名称或使用键盘箭头键查找它。

  6. 出现提示时,输入简短的环境名称,例如 testenv

  7. 运行 azd init后,以下资产将添加到当前目录:

    ├── .azdo                                        [ Configures an Azure Pipeline ]
    ├── .devcontainer                                [ For DevContainer ]
    ├── .github                                      [ Configures a GitHub workflow ]
    ├── .vscode                                      [ VS Code workspace configurations ]
    ├── .azure                                       [ Stores Azure configurations and environment variables ]
    ├── infra                                        [ Contains infrastructure as code files ]
    │   ├── main.bicep/main.tf                       [ Main infrastructure file ]
    │   ├── main.parameters.json/main.tfvars.json    [ Parameters file ]
    │   └── core/modules                             [ Contains reusable Bicep/Terraform modules ]
    └── azure.yaml                                   [ Describes the app and type of Azure resources]
    

更新 Bicep 文件

项目现在包含模板的核心结构和资产 azd 。 但是,若要为特定项目预配 Azure 资源,需要更新文件夹中的 infra Bicep 文件。 若要托管示例应用程序,需要使用 Bicep 文件定义以下资源:

  • Azure App 服务计划
  • 在 Linux 上运行的Azure App 服务
  1. 在所选编辑器(如 Visual Studio Code)中打开根项目目录。

  2. main.bicep使用编辑器打开文件夹中的文件infra。 此文件包含用于设置基本变量、参数和命名约定的有用样板代码。 在阅读的第 50 Add resources to be provisioned below行周围的注释块下,添加以下 Bicep:

    // Creates an app service instance to host the app
    module web './core/host/appservice.bicep' = {
      name: 'web'
      scope: rg
      params: {
        name: '${abbrs.webSitesAppService}web-${resourceToken}'
        location: location
        tags: union(tags, { 'azd-service-name': 'web' })
        appServicePlanId: appServicePlan.outputs.id
        runtimeName: 'python'
        runtimeVersion: '3.8'
        scmDoBuildDuringDeployment: true
      }
    }
    
    // Create an App Service Plan to group applications under the same payment plan and SKU
    module appServicePlan './core/host/appserviceplan.bicep' = {
      name: 'appserviceplan'
      scope: rg
      params: {
        name: '${abbrs.webServerFarms}${resourceToken}'
        location: location
        tags: tags
        sku: {
          name: 'B1'
        }
      }
    }
    

    注意

    • 基于订阅 ID 生成唯一字符串,并用作 ${resourceToken} 变量。 此令牌追加到创建 azd的所有 Azure 资源的名称。
    • azd 使用标记来标识资源,以便可以根据组织的命名约定修改名称。
    • 'azd-service-name': 'web'应用服务上的标记是用于标识部署主机的值azd。 该值必须与为 azure.yaml 文件中的服务定义的值相同。

更新 azure.yaml 文件

若要部署应用, azd 需要详细了解你的应用。 该文件 azure.yaml 用于定义应用中每个服务的源代码位置、语言和 Azure 托管服务。 有关完整详细信息,请参阅 azure.yaml 架构

  1. 打开 azure.yaml 项目的根目录。

  2. 将以下行添加到文件底部:

    name: msdocs-python-flask-webapp-quickstart
    services:
      web:
        project: .
        language: py
        host: appservice
    

预览和部署模板

  1. 保存所有更改并运行以下命令,在 Azure 上预配和部署应用资源:

    azd up
    
  2. 命令完成后,单击命令输出中的链接以导航到已部署的站点。

项目现在与 Azure 开发人员 CLI 兼容,可用作模板。

注意

azd 还支持默认使用 Buildpack 来容器化应用。 azd如果模板面向 Azure 容器应用或Azure Kubernetes 服务但不包含 Docker 文件,azd则使用 Buildpack 自动生成映像。