與 Bicep 輸入參數相關的 Azure 開發人員 CLI 元資料合作

Azure 開發人員 CLI (azd) 支援具有 @metadata 裝飾器的 Bicep 範本。 將中繼資料新增至 Bicep 輸入參數,以便透過智能預設值、自動值產生和更好的參數提示來改善部署。

新增元資料

Bicep 中的輸入參數支援 @metadata 為無架構物件。 在參數中繼資料中包含azd欄位,以新增azd中繼資料:

@metadata({
  azd: {}
})
param someInput <param-type>

Azure 開發人員 CLI 中繼資料不相依於參數的類型,而且您可以將它新增至任何參數。

支援的中繼資料

中繼資料支援的 azd 組態欄位包括:

領域 Description
type 定義如何提示此參數 azd 。 例如: location 。
config 描述某些中繼資料類型的設定,例如 generate。
default 定義 azd 的值,以便在選擇提示時優先醒目顯示。
usageName 控制 AI 模型位置選擇的配額檢查。

下列各節會更詳細地說明每個欄位。

類型

此設定定義了輸入參數的提示方式 azd 。 支援的型別包括:

  • 位置

    使用 location 類型來告知 azd 輸入參數負責處理 Azure 位置。 當azd在中繼資料中找到location類型時,會使用位置選取清單提示輸入值。 例如:

    @metadata({
      azd: {
        type: 'location'
      }
    })
    param someInput string
    

    提示流程:

    螢幕擷取畫面顯示位置提示和中繼資料。

    將location類型與default欄位結合,以控制在提示流程期間首先突出顯示的位置。 例如:

    @metadata({
      azd: {
        type: 'location'
        default: 'westus'
      }
    })
    param someInput string
    

    提示流程:

    螢幕擷取畫面顯示位置提示,其中包含預設值的中繼資料。

    被反白的預設選項符合來自中繼資料的 default 欄位。 這種方法可讓範本作者推薦位置,而使用者可以確認或變更它。 在 Bicep 中設定輸入參數的預設值會略過提示流程,並在不需要使用者確認的情況下使用預設值。

  • 產生

    使用 generate 類型來告訴 azd 自動建立輸入參數的值。 此類型通常用於產生密碼或唯一識別碼:

    @metadata({
      azd: {
        type: 'generate'
        config: {
          length: 10
        }
      }
    })
    param someInput string
    

    備註

    該 config 欄位是 type: 'generate'的必要項目。

    執行時 azd ,它會為輸入參數產生 10 個字元的值,而不會提示輸入。 請參閱 設定 區段,以取得設定自動產生值的選項。

  • resourceGroup

    使用 resourceGroup 類型來告知 azd 提示此輸入的資源群組:

    @metadata({
      azd: {
        type: 'resourceGroup'
      }
    })
    param someInput string
    

    提示流程:

    螢幕擷取畫面顯示具有資源群組類型的提示。

設定

需要使用 config 類型的 generate 物件。 該系統控制自動生成選項。 下表說明產生組態選項:

欄位名稱 類型 Description 預設
length int 產生值的總長度 0
未降低 布爾 (bool) 如果為true,則排除小寫字母。 假的
無上層 布爾 (bool) 如果為真,則排除大寫字母。 假的
noNumeric (無數字) 布爾 (bool) 如果為true,則排除數字。 假的
不特別 布爾 (bool) 如果為true,則排除特殊字元。 假的
最低降低值 int 所需小寫字母的最小數量。 0
最小上限 int 所需的最小大寫字母數量。 0
最小數值 int 所需的最小數字數。 0
分鐘特別 int 所需的特殊字元數目下限。 0

這很重要

所有最低需求 (MinLower + MinUpper + MinNumeric + MinSpecial) 的總和不能超過總長度。 如果任何 “No-” 標誌為 true,請將對應的 “Min-” 值設置為 0。

例如,產生長度為 10、沒有特殊字元且沒有數字的值:

@metadata({
  azd: {
    type: 'generate'
    config: {
      length: 10
      noNumeric: true
      noSpecial: true
    }
  }
})
param someInput string

預設

定義要醒目提示的清單中的初始值。 將它與 location 類型結合,或直接套用至具有已定義選項清單的輸入:

@allowed(['foo', 'bar', 'baz'])
@metadata({
  azd: {
    default: 'baz'
  }
})
param someInput string

此範例會使用 @allowed() Bicep 的批註來定義輸入參數的支援值清單。 當提示輸入此輸入時 azd ,它會使用允許的值清單。 default中繼資料中的欄位控制將哪個選項設定為初始選取項目:

螢幕擷取畫面,顯示允許值提示期間的預設選項。

使用方式名稱

此欄位會篩選位置清單,以僅顯示有指定 AI SKU 和容量可用的位置。

@metadata({
  azd: {
    type: 'location'
    usageName: [
      'OpenAI.GlobalStandard.gpt-5-mini,10'
    ]
  }
})
param someInput string

此範例只會 azd 顯示 AI 模型 gpt-5-mini 具有足夠配額的 Azure 位置 (容量至少為 10 個)。

提示流程:

螢幕擷取畫面顯示設定 usageName 以提示 AI 位置。

備註

azd 如果沒有具有足夠配額的位置,則會傳回錯誤。