簡體   English   中英

如果在 azure 管道問題中使用變量而不是參數

[英]If with variables not parameters in azure pipeline problem

我將以下代碼放入 azure 管道中:

- ${{ if eq(variables.enableAddonVM, true) }}:     
  - template: ../task-templates/addonVM.yml
    parameters:
      serviceConnectionName: ${{ variables.serviceConnectionName }}
      customerResourceGroup: $(resourceGroupName)
      location: ${{ variables.location }} 

以下是我的觀察:

  1. 模板被跳過。 我通過在它之前的任務中打印它來檢查值。 它是真實的。 它仍然被跳過。

  2. 我還在模板旁邊應用了條件,如下所示

    • 模板:../task-templates/addonVM.yml

      條件:但仍然失敗。 我們無法在模板后使用條件

  3. 刪除條件后,我還檢查了 addonVM.yml。 addonVM.yml 工作正常。

所以,我的最后一個問題是如何在 if 條件下插入變量? 有什么辦法可以解決這個問題嗎?

如果在 azure 管道問題中使用變量而不是參數

這取決於變量enableAddonVM在編譯之前是否已經存在。

正如 jessehouwing 指出模板變量${{ variables.var }}編譯時處理:

查看文檔模板表達式語法以獲取更多詳細信息。

因此,如果變量enableAddonVM是在先前的任務中生成的,則無法在編譯時獲取它。 那是因為這個變量是在運行時生成的。

要解決此問題,您可以使用condition ,例如:

  steps: 
    - template: ../task-templates/addonVM.yml
      parameters:
        serviceConnectionName: ${{ variables.serviceConnectionName }}
        customerResourceGroup: $(resourceGroupName)
        location: ${{ variables.location }} 
  condition: eq(variables.enableAddonVM, true) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM