部署到 Microsoft Foundry 或 Azure Machine Learning 工作室 線上端點

Azure Developer CLI()允許您部署到 Azure Machine Learning 工作室 或 Microsoft Foundry線上端點。 azd 支援以下功能,將於後文章節說明:

先決條件

要使用 Microsoft Foundry 或 Azure Machine Learning 工作室 線上端點,你需要:

Foundry Starter 模板 能協助建立所有必要的基礎設施,讓大家能開始使用 Foundry 端點。

設定線上端點

在檔案的services區塊中設定線上端點azure.yaml的支援:

  • 將值 host 設為 ai.endpoint。
  • 該config區塊ai.endpoint支援以下配置:
    • workspace:Microsoft Foundry 工作區的名稱。 支援 azd 環境變數替換與語法。
      • 若未指定,則 azd 尋找名為 AZUREAI_PROJECT_NAME的環境變數。
    • 環境:為機器學習環境提供可選的自訂設定。 azd 由參考的 YAML 檔案定義建立新的環境版本。
    • flow:可選擇性自訂流程配置。 azd 從指定的檔案路徑建立新的提示流程。
    • 模型:為機器學習模型提供可選的自訂配置。 azd 從參考的 YAML 檔案定義建立新的模型版本。
    • 部署:線上端點部署 所需的 設定。 azd 根據參考的 YAML 檔案定義,建立一個新的線上部署至相關的線上端點。

請參考以下設定這些功能的範例 azure.yaml 檔案:

name: contoso-chat
metadata:
  template: contoso-chat@0.0.1-beta
services:
  chat:
    # Referenced new ai.endpoint host type
    host: ai.endpoint
    # New config flow for AI project configuration
    config:
      # The name of the Foundry workspace
      workspace: ${AZUREAI_PROJECT_NAME}
      # Optional: Path to custom ML environment manifest
      environment:
        path: deployment/docker/environment.yml
      # Optional: Path to your prompt flow folder that contains the flow manifest
      flow:
        path: ./contoso-chat
      # Optional: Path to custom model manifest
      model:
        path: deployment/chat-model.yaml
        overrides:
          "properties.azureml.promptflow.source_flow_id": ${AZUREAI_FLOW_NAME}
      # Required: Path to deployment manifest
      deployment:
        path: deployment/chat-deployment.yaml
        environment:
          PRT_CONFIG_OVERRIDE: deployment.subscription_id=${AZURE_SUBSCRIPTION_ID},deployment.resource_group=${AZURE_RESOURCE_GROUP},deployment.workspace_name=${AZUREAI_PROJECT_NAME},deployment.endpoint_name=${AZUREAI_ENDPOINT_NAME},deployment.deployment_name=${AZUREAI_DEPLOYMENT_NAME}

此 config.deployment 區段為必修,並根據參考的 YAML 檔案定義建立新的線上部署至相關線上端點。 此功能處理以下事項:

  • 相關環境與模型在可用時會被參考。
  • azd 等待部署進入終端配置狀態。
  • 在成功部署時,所有流量都會轉移到新的部署版本。
  • 所有先前的部署都會被刪除,以便釋放運算資源以供未來部署使用。

探索設定選項

每個支援的 AI/ML 線上端點功能,都支援根據您的特定情境進行自訂,使用以下章節所述的選項。

Flow

flow設定區塊為可選,支援以下數值:

  • 名稱:流程的名稱。 如果未指定,則預設為。<service-name>-flow-<timestamp>

  • path:指向包含流程清單資料夾的相對路徑。

  • 覆寫:任何可套用到流程中的自訂覆寫。

    備註

    每次呼叫 azd deploy 都會產生一個具有時間戳記的新流程。

環境

environment設定區塊為可選,支援以下數值:

  • 名稱:自訂環境的名稱。 如果未指定,則預設為。<service-name>-environment

  • path:指向自訂環境 yaml 清單的相對路徑。

  • 覆寫:任何套用到環境的自訂覆寫。

    備註

    每次調用 azd deploy 都會創建一個新的環境版本。

型號

model設定區塊為可選,支援以下數值:

  • 名稱:客製化模型的名稱。 如果未指定,則預設為。<service-name>-model

  • path:指向自訂 模型 YAML manifest 的相對路徑。

  • 覆寫:任何套用到模型上的自訂覆寫。

    備註

    每次呼叫 azd deploy 都會產生一個新的模型版本。

部署

deployment 設定區塊是必填且支援以下數值的:

  • 名稱:自訂部署的名稱。 如果未指定,則預設為。<service-name>-deployment

  • path:自訂 部署 YAML 清單檔案 的相對路徑。

  • environment:一個關鍵值對的映射,用以設定部署的環境變數。 支援使用 ${VAR_NAME} 語法從 OS/AZD 環境變數中替換環境變數。

  • 覆寫:任何套用到部署上的自訂覆寫。

    備註

    只支援管理式線上部署。

AgentSchema 與 agent.yaml

AgentSchema 是一個開放規範,用於以程式碼優先的 YAML 格式定義 AI 代理。 檔案 agent.yaml 描述代理的設定,包括其模型、指令、工具與連接。 AgentSchema 作為 Microsoft Copilot Studio、Microsoft Foundry 及其他平台之間的統一交換格式。

AgentSchema 支援兩種主要格式:

  • AgentDefinition — 一個完整且具體的代理規範,可直接執行。 此格式用於單一用途代理,所有設定值皆已知且固定。
  • AgentManifest — 一個用於動態建立代理的參數化範本。 此格式可用於可重用的代理模式,例如模型名稱、連線或指令等值,在執行時以 {{parameter}} 語法配置。

範例 agent.yaml

以下範例展示了一個可部署至 Microsoft Foundry 的託管agent.yaml定義azd。 頂部的結構註解告訴懂 YAML 的編輯器要對已發佈的 AgentSchema 進行驗證:

# yaml-language-server: $schema=https://raw.githubusercontent.com/microsoft/AgentSchema/refs/heads/main/schemas/v1.0/ContainerAgent.yaml

kind: hosted
name: customer-support
description: Handles customer inquiries and support requests
protocols:
  - protocol: responses
    version: v1
code_configuration:
  runtime: python_3_14
  entry_point: main.py

這個範例使用 kind: hosted 搭配 code_configuration 區塊,告知 azd 將您的原始碼封裝為 ZIP,並讓 Foundry 管理執行階段環境。 若要改為部署預先建置的容器映像,請將 code_configuration 替換為指向 Azure Container Registry 中映像的 image 欄位。

使用agent.yamlazd

azure.yaml 架構支援 azure.ai.agent 主機類型,用於部署代理程式至 Microsoft Foundry。 當您將 host 設為 azure.ai.agent 時,azd 會讀取您服務目錄中的 agent.yaml 檔案,並使用其 kind 欄位來判斷如何部署代理程式。 欲了解更多資訊,請參閱 azure.yaml 架構參考。

支援的 kind 值

kind頂部agent.yaml的欄位選擇展開形狀。 azd 會根據下表的值驗證此欄位,並在部署時拒絕其他值。

kind azd 會部署什麼 何時使用
hosted 由 Foundry 託管的代理程式。 部署子模式取決於檔案中包含哪些欄位:若要進行程式碼部署(ZIP 上傳、由 Foundry 管理的執行階段),請新增 code_configuration;若要進行容器部署(來自 Azure Container Registry 的預先建置映像),請新增 image。 大多數由 azd ai agent init 建立的代理程式。 想用 Foundry 管理執行時就用 code deploy;需要完全控制映像時就用容器部署。

備註

AgentSchema 是比 azd 目前部署的內容更廣泛的規範。 如果你在 AgentSchema 參考資料中看到其他的 kind 值(例如僅含提示的代理程式定義),表示 azd 不支援這些格式,azd deploy 也不接受這些格式。

欲了解更多 AgentSchema 資訊,請參閱以下資源:

請求幫助

如需了解如何提出錯誤、請求協助或建議Azure開發者 CLI 新功能,請造訪 troubleshooting and support 頁面。