使用 Azure 开发人员 CLI 撰写功能生成最小模板

Azure 开发者 CLI (azd) 的可组合性(compose)功能可以让你逐步组合应用所需的 Azure 资源,而无需手动编写 Bicep 代码。 本文介绍如何使用撰写功能生成最小模板。 有关此功能的更多概念性信息,请访问azd撰写概述文章。

注释

azd撰写功能目前为 alpha,不应在生产应用中使用。 后续版本中对 alpha 功能的更改可能会导致中断性变更。 有关详细信息,请访问 azd 功能版本控制、发布策略功能阶段 页。 使用右上角的 “反馈 ”按钮共享有关该功能和本文的 compose 反馈。

使用撰写功能

通过azd命令访问azd add撰写功能。 该 azd add 命令适用于使用以下 azd init 工作流创建的模板:

  • 使用当前目录中的代码(适用于面向用于托管的 Azure 容器应用的应用)
  • 创建最小项目

当前不支持通过 “选择模板流” 初始化的模板。 azd 撰写功能可为你管理基础结构,与具有现有的 infra 文件夹资产的模板不兼容。 更多信息请参阅 生成 Bicep 代码 文章和 模板创建工作流 页面。

完成以下步骤,在不编写任何代码的情况下将新资源添加到模板:

  1. 在终端窗口中,导航到模板的 azd 根目录。

  2. azd add运行命令以添加新资源并启动撰写工作流:

    azd add
    
  3. 选择要添加到应用的支持资源之一。 对于此示例,请选择 Database

    ? What would you like to add? [Use arrows to move, type to filter]
    > AI
      Database
      Host service
      Key Vault
      Messaging
      Storage account
      ~Existing resource
    
  4. 对于数据库类型,请选择 PostgreSQL

    ? Which type of database?  [Use arrows to move, type to filter]
      MongoDB
    > PostgreSQL
      Redis
    
  5. 输入新资源的名称,例如 azddb

    ? Input the name of the app database (PostgreSQL)
    
  6. 如果应用包含服务, azd 则提示你选择使用此资源的服务。

    ? Select the service(s) that uses this resource
    > [✓]  webfrontend
    
  7. azd 可生成对 azure.yaml 文件所需的更改的预览。 按 Enter 接受并应用更改。

    Previewing changes to azure.yaml:
    
    +  azddata:
    +      type: db.postgres
    
       webfrontend:
           type: host.containerapp
           uses:
               - azddb
    +          - azddata
           port: 80
    
  8. 运行 azd up 命令以预配通过 azd add 命令所做的任何更改。 在此示例中, azd 在 Azure 中预配 PostgreSQL 数据库。

  9. azd add再次运行该命令以添加其他资源,例如 OpenAI 服务。

浏览 azure.yaml 文件

azure.yaml 是用于管理应用的配置文件 azdazd使用相应的azd add节点和services节点管理通过resources命令组成的服务和资源。 请考虑以下通过 azure.yaml 完全更新的 azd add 文件的示例:

name: azdcomposesample
metadata:
  template: azd-init@1.11.0
services:
  webfrontend:
    project: src
    host: containerapp
    language: dotnet
resources:
  webfrontend:
    type: host.containerapp
    port: 80
    uses:
      - azdsql
      - azdchat
  azdsql:
    type: db.postgres
  azdchat:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"
  • 节点 services 声明:
    • webfrontend 目录中的 .NET Web 应用和 Azure 容器应用之间的部署映射命名为 src
  • 节点 resources 声明:
    • Azure 容器应用和在托管的 .NET 容器应用和它所依赖的数据库和 AI 服务之间名为 webfrontend 的匹配依赖项映射。 节点 uses 将应用映射到它依赖的其他资源。
    • 名为 azdsql 的 Azure Database for PostgreSQL 资源。
    • 一个名为 azdchat 的 Azure OpenAI 资源。

后续步骤