对 Azure 部署环境的 Azure 开发人员 CLI 支持

Azure 开发人员 CLI (azd) 支持 Azure 部署环境。 Azure 部署环境(ADE)是预定义订阅中部署的 Azure 资源的预配置集合。 Azure 治理基于环境类型(例如沙盒、测试、过渡或生产)应用于这些订阅。 使用 Azure 部署环境,可以强制实施企业安全策略,并提供一组精选的预定义基础结构即代码(IaC)模板。

先决条件

验证是否已完成以下先决条件,以使用 azd使用 Azure 部署环境:

启用 Azure 部署环境支持

可以使用标准命令(如 azd upazd provision)将 azd 配置为将资源预配和部署到部署环境。 若要启用对 Azure 部署环境的支持,请运行以下命令:

azd config set platform.type devcenter

platform.type 设置为 devcenter时,所有 azd 远程环境状态和预配都将利用新的开发人员中心组件。 此配置还意味着将有效地忽略本地模板中的 infra 文件夹。 相反,azd 将使用开发人员中心目录中定义的基础结构模板之一进行资源预配。

还可以通过以下命令禁用开发人员中心支持:

azd config unset platform

使用 Azure 部署环境

启用开发人员中心功能后,某些常见 azd 命令的默认行为会更改以使用这些远程环境。 开发人员中心功能扩展了标准 azd远程环境支持提供的功能。

azd init

开发人员中心模式下的 azd init 命令体验显示所有 azd 兼容的 ADE 模板,以便从配置的目录中进行选择。 在初始化过程中,在 azd 克隆模板代码后,azure.yaml 文件将自动更新为包含基于所选模板的所选配置的 platform 部分。 配置包括开发人员中心名称、目录和环境定义。

azd init

azd up

azd up 命令将打包、预配应用程序并将其部署到 Azure 部署环境。 但是,azd up 命令的预配阶段将使用远程开发人员中心中特选的基础结构即代码模板,而部署阶段将在 azd 模板中部署源代码。 启用开发人员中心模式时,azd 将忽略本地 azd 模板中的 infra 文件夹,并且仅使用开发人员中心模板预配资源。 该命令还会提示输入任何必要的值,例如 Azure 部署环境项目或环境类型。

azd up

azd template list

azd template list 命令将在开发人员中心目录中显示可用的基础结构模板,而不是显示默认 AZD Awesome 库中的模板。 目录 提供开发团队可用于创建环境的一组特选和批准的基础结构即代码模板。

azd template list

显示更新的模板库的屏幕截图。

azd provision

azd provision 命令将创建新的开发人员中心环境。 该命令将提示你输入任何缺失值,例如环境类型或项目。 命令运行时,它将使用关联的基础结构模板为该环境预配正确的 Azure 资源集。 启用开发人员中心模式时,azd 将忽略本地 azd 模板中的 infra 文件夹,并且仅使用开发人员中心模板预配资源。

azd provision

azd env list

azd env list 命令将显示你在开发人员门户中看到的相同环境列表。

azd env list

为 Azure 部署环境标记资源

azure 部署环境的 azd 预配依赖于开发人员中心目录中的特选模板。 目录中的模板可以为预配的 Azure 资源分配标记,以便将应用服务与 azure.yaml 文件中相关联。 如果模板未分配标记,可通过以下两种方式之一解决此问题:

  • 请与开发人员中心目录管理员协作,确保预配的 Azure 资源包括标记,以将它们与 azure.yaml 文件中定义的服务相关联。

  • azure.yaml 文件中指定 resourceName,而不是使用标记:

    services:
        api:
            project: ./src/api
            host: containerapp
            language: js
            resourceName: sample-api-containerapp
        web:
            project: ./src/web
            host: containerapp
            language: js
            resourceName: sample-web-containerapp
    

配置开发人员中心设置

可以在多个位置为开发人员中心定义 azd 设置。 设置从这些位置合并,以按以下优先级顺序创建最终的配置集:

  1. 环境变量
  2. Azd 环境配置
  3. 项目配置
  4. 用户配置

azd 会自动提示你输入这些源中缺少的任何配置值。 以下各节详细介绍了这些配置选项。

环境变量

azd将发现和使用以下环境变量:

  • AZURE_DEVCENTER_NAME
  • AZURE_DEVCENTER_PROJECT
  • AZURE_DEVCENTER_CATALOG
  • AZURE_DEVCENTER_ENVIRONMENT_DEFINITION
  • AZURE_DEVCENTER_ENVIRONMENT_TYPE
  • AZURE_DEVCENTER_ENVIRONMENT_USER

定义配置

.azure/<env>/config.json 文件中 azd 环境范围内定义开发人员中心的配置:

{
    "platform": {
        "config": {
            "catalog": "SampleCatalog",
            "environmentDefinition": "Todo",
            "environmentType": "Dev",
            "name": "sample-devcenter",
            "Project": "SampleProject"
        }
    }
}

项目范围

azure.yaml 文件的 platform 节点的 azd 项目范围内定义开发人员中心的配置:

name: todo-nodejs-mongo-aca
metadata:
    template: todo-nodejs-mongo-aca@0.0.1-beta
platform:
    type: devcenter
    config:
        catalog: SampleCatalog
        environmentDefinition: Todo
        name: sample-devcenter
        project: SampleProject
services:
    api:
        project: ./src/api
        host: containerapp
        language: js
    web:
        project: ./src/web
        host: containerapp
        language: js

用户范围

~/<user_profile>/.azd/config.json 文件中的用户范围内定义开发人员中心的配置:

{
    "platform": {
        "config": {
            "catalog": "SampleCatalog",
            "environmentDefinition": "Todo",
            "environmentType": "Dev",
            "name": "sample-devcenter",
            "Project": "SampleProject"
        }
    }
}