關於 Azure Pipelines 的資源
Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019
資源是管線在管線外部使用的任何專案。
資源提供下列優點:
- 跨 管線共用 安全檔案或密碼等專案的方式。
- 使用資源進行共用的範例包括變數群組、安全檔案和服務連線。 在所有情況下,您都是使用資源作為管線存取和使用某個專案的方式。
- 透過存取檢查和其他限制來增強 安全性 的工具。
- 例如,您可以將服務連線限制為只在一個管線上執行。 您也可以確定存放庫只能在手動核准檢查之後從管線存取。
- 改善管線可追蹤性的方法,並讓您更輕鬆地針對環境進行疑難解答。
- 例如,您可以看到最後一 次部署到環境的回合數目。
跨管線共享資源
在管線 UI 內設定資源,以跨管線共用資源。 然後,參考工作中的資源。 您也可以使用 resources
YAML 管線語法來存取一些共享資源。
使用管線 UI 共用資源的範例包括 安全檔案、 變數群組和服務 連線。 resources
使用語法時,範例包括存取管線本身、存放庫和套件。
資源在管線中的使用方式取決於管線類型和資源類型。
針對 YAML 管線:
- 服務連線和安全檔案會直接作為工作的輸入,而且不需要預先宣告。
- 變數群組會
group
使用語法。 - 管線和存放庫會使用
resources
語法。
例如,若要在管線中使用變數群組,請在 Pipelines>Library 中新增變數。 然後,您可以使用 語法參考 YAML 管線 variables
中的變數群組。
variables:
- group: my-variable-group
若要使用 resources
語法從管線呼叫第二個管線,請參考 pipelines
。
resources:
pipelines:
- pipeline: SmartHotel-resource # identifier for the resource (used in pipeline resource variables)
source: SmartHotel-CI # name of the pipeline that produces an artifact
使用資源來增強安全性
您可以使用資源來增強管線的安全性,方法是識別資源的取用方式,以及如何防止未經授權的存取。
若為僅限 YAML 管線,請將資源設定為 受保護或開啟。 當資源受到保護時,您可以套用核准和檢查,以限制特定使用者和 YAML 管線的存取權。 受保護的資源包括服務連線、代理程式集區、環境、存放庫、變數群組和安全檔案。
資源 | 其使用方式? | 如何防止非預期的管線使用此管線? |
---|---|---|
服務連線 | 由 YAML 檔案中使用服務連線做為輸入的工作所取用。 | 使用檢查和管線許可權受到保護。 檢查和管線許可權是由服務連線使用者所控制。 資源擁有者可以控制哪些管線可以存取服務連線。 您也可以使用管線許可權來限制特定 YAML 管線和所有傳統管線的存取。 |
變數群組中的秘密變數 | 在管線或作業中使用變數群組的特殊語法存在。 變數群組會像服務連線一樣新增。 | 使用檢查和管線許可權受到保護。 檢查和管線許可權是由變數群組使用者所控制。 資源擁有者可以控制哪些管線可以存取變數群組。 您也可以使用管線許可權來限制特定 YAML 管線和所有傳統管線的存取。 |
安全檔案 | 工作會取用安全檔案(例如: 下載安全檔案工作)。 | 使用檢查和管線許可權受到保護。 檢查和管線許可權是由安全檔案使用者所控制。 資源擁有者可以控制哪些管線可以存取安全檔案。 您也可以使用管線許可權來限制特定 YAML 管線和所有傳統管線的存取。 |
代理程式集區 | 使用代理程式集區執行作業的特殊語法。 | 使用檢查和管線許可權受到保護。 檢查和管線許可權是由代理程式集區使用者所控制。 資源擁有者可以控制哪些管線可以存取代理程式集區。 您也可以使用管線許可權來限制特定 YAML 管線和所有傳統管線的存取。 |
環境 | YAML 中使用環境的特殊語法。 | 受到環境使用者控制之檢查和管線許可權的保護。 您也可以使用管線許可權來限制特定環境的存取。 |
存儲庫 | 如果作業存取令牌具有存放庫的存取權,腳本可以複製存放庫。 | 使用存放庫參與者所控制的檢查和管線許可權受到保護。 存放庫擁有者可以限制擁有權。 |
成品、工作專案、管線 | 管線成品 是資源,但 Azure Artifacts 不是。 如果作業存取令牌具有摘要的存取權,腳本就可以下載成品。 管線成品可以在 resources 區段中宣告為資源,主要是用於在有新成品可用時觸發管線的意圖,或在管線中取用該成品。 | 成品和工作專案有自己的許可權控件。 不支援摘要的檢查和管線許可權。 |
容器、 套件、 Webhook | 這些即時存在於 Azure DevOps 生態系統之外,並使用服務連線來控制存取權。 在YAML管線中使用這三種類型時,有一種特殊的語法。 | 使用服務連線使用者所控制的檢查和管線許可權受到保護。 |
使用資源進行追蹤
環境支援下列資源類型: