建立環境並將其設為目標
Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020
環境是您可以從管線部署的目標資源集合。 環境名稱的一般範例包括開發、測試、QA、預備和生產環境。 Azure DevOps 環境代表管線部署軟體的邏輯目標。
傳統管線中無法使用 Azure DevOps 環境。 針對傳統管線, 部署群組 提供類似的功能。
環境提供下列優點。
優點 | 描述 |
---|---|
部署歷程記錄 | 管線名稱和執行詳細數據會記錄到環境及其資源部署。 在以相同環境或資源為目標的多個管線內容中, 環境部署歷程記錄 有助於識別變更的來源。 |
認可和工作專案的可追蹤性 | 檢視管線執行中以環境為目標的工作。 您也可以檢視 新部署至環境的認可和工作專案 。 可追蹤性也允許追蹤程式碼變更(認可)或功能/錯誤修正(工作專案)是否已到達環境。 |
診斷資源健康情況 | 驗證應用程式是否在想要的狀態運作。 |
安全性 | 藉由指定允許哪些使用者和管線以環境為目標來保護環境。 |
雖然環境是資源的群組,但資源本身代表實際的部署目標。 目前支援 Kubernetes 資源和虛擬機資源類型。
當您撰寫 YAML 管線並參考不存在的環境時,Azure Pipelines 會在執行作業的使用者已知且可指派許可權時自動建立環境。 當 Azure Pipelines 沒有建立環境的使用者相關信息時(例如:來自外部程式代碼編輯器的 YAML 更新),如果環境不存在,您的管線就會失敗。
必要條件
- 您必須擁有環境的建立者角色,才能新增環境。
建立環境
登入您的組織:
https://dev.azure.com/{yourorganization}
並選取您的專案。選取 [管線>環境>建立環境]。
輸入環境的信息,然後選取 [ 建立]。 資源稍後可以新增至現有的環境。
使用管線來建立及部署至環境。 如需詳細資訊,請參閱 操作說明指南。
提示
您可以建立空的環境,並從部署作業參考它。 這可讓您記錄環境部署歷程記錄。
從部署作業以環境為目標
部署作業是要循序執行的步驟集合。 部署作業可用來以整個環境(資源群組)為目標,如下列 YAML 代碼段所示。 管線將會在 myVM 計算機上執行,因為已指定資源名稱。
- stage: deploy
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-latest'
# creates an environment if it doesn't exist
environment:
name: 'smarthotel-dev'
resourceName: myVM
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo Hello world
從部署作業以環境內的特定資源為目標
您可以將部署的目標範圍設定為環境中的特定資源。 然後,您可以記錄環境中特定資源的部署歷程記錄。 部署作業 的步驟會自動從部署作業的目標資源繼承 服務連線詳細數據。
environment:
name: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: $(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: $(imagePullSecret)
containers: $(containerRegistry)/$(imageRepository):$(tag)
# value for kubernetesServiceConnection input automatically passed down to task by environment.resource input
執行詳細數據中的環境
您可以在管線執行詳細數據的 [環境] 索引標籤下,找到依特定管線執行之部署作業為目標的所有環境。
如果您使用 AKS 私人叢集,則無法使用 [ 環境 ] 索引標籤。
核准
使用核准檢查手動控制階段何時應該執行。 使用核准檢查來控制部署到生產環境的部署。 資源擁有者可以使用檢查,以控制管線中的階段何時耗用資源。 身為資源擁有者,例如環境,您可以 定義核准並檢查在取用該資源的階段之前必須滿足的核准 。
我們支援對環境進行手動核准檢查。 如需詳細資訊,請參閱 核准。
Creator、管理員 istrator 和使用者角色可以管理核准和檢查。 讀者角色無法管理核准和檢查。
部署歷程記錄
環境中的部署歷程記錄檢視提供下列優點。
從以特定環境為目標的所有管線檢視作業。 例如,兩個微服務,每個都有自己的管線,都會部署到相同的環境。 部署歷程記錄清單有助於識別影響此環境的所有管線,也有助於將每個管線的部署順序可視化。
向下切入至作業詳細數據,以查看已部署至環境的認可和工作項目清單。 認可和工作專案清單是部署之間的新專案。 您的第一個清單包含所有認可,而下列清單只會包含變更。 如果多個認可系結至相同的提取要求,您會在工作項目和變更索引標籤上看到多個結果。
如果多個工作項目系結至相同的提取要求,您會在 [工作專案] 索引標籤上看到多個結果。
安全性
使用者權限
控制誰可以使用用戶權力來建立、檢視、使用及管理環境。 有四個角色 - Creator (範圍:所有環境)、讀者、使用者和 管理員 istrator。 在特定環境 的使用者許可權 面板中,您可以設定繼承的許可權,而且您可以覆寫每個環境的角色。
- 移至您想要授權的特定 環境 。
- 選取 >[安全性] 以檢視設定。
- 選取 [用戶許可權>][+新增>使用者或群組],然後選取適當的角色。
角色 | 描述 |
---|---|
建立者 | 全域角色,可從環境中樞安全性選項取得。 此角色的成員可以在專案中建立環境。 參與者預設會新增為成員。 環境不存在時觸發 YAML 管線的必要專案。 |
讀取者 | 此角色的成員可以檢視環境。 |
使用者 | 建立或編輯 YAML 管線時,此角色的成員可以使用環境。 |
系統管理員 | 此角色的成員可以管理許可權、建立、管理、檢視和使用環境。 針對特定環境,其建立者預設會新增為 管理員 inistrator。 管理員 istrators 也可以開啟所有管線的環境存取權。 |
重要
當您建立環境時,只有建立者具有系統管理員角色。
角色 | 描述 |
---|---|
建立者 | 全域角色,可從環境中樞安全性選項取得。 此角色的成員可以在專案中建立環境。 參與者預設會新增為成員。 環境不存在時觸發 YAML 管線的必要專案。 |
讀取者 | 此角色的成員可以檢視環境。 |
使用者 | 建立或編輯 YAML 管線時,此角色的成員可以使用環境。 |
系統管理員 | 除了使用環境之外,此角色的成員還可以管理環境所有其他角色的成員資格。 建立者預設會新增為成員。 |
管線權限
使用管線許可權來授權所有或選取的管線以部署至環境。
- 若要移除環境或資源的 [開啟存取],請選取 [限制管線許可權] 中的 [限制許可權]。
- 若要允許特定管線部署到環境或特定資源,請從管線清單中選取 + 並選擇。
下一步
常見問題集
問:當我嘗試建立環境時,為什麼會收到錯誤訊息?
答:如果您看到「拒絕存取:{User} 需要建立許可權才能執行動作」的訊息,請檢查您的組織層級許可權。 移至 [組織設定]>[使用者],並檢查您是否具有專案關係人角色。 專案關係人角色無法建立環境。 請變更您的存取層級,然後確認您能否建立環境。 如需詳細資訊,請參閱使用者和權限管理常見問題。
問:為什麼我收到錯誤「工作XXXX:找不到環境XXXX。 此環境不存在或尚未被授權使用」?
答:以下是失敗的一些可能原因:
當您撰寫 YAML 管線並參考 YAML 檔案中不存在的環境時,Azure Pipelines 在某些情況下會自動建立環境:
- 您可以在 Azure Pipelines Web 體驗中使用 YAML 管線建立精靈,並參考尚未建立的環境。
- 您使用 Azure Pipelines Web 編輯器更新 YAML 檔案,並在對不存在的環境新增參考之後儲存管線。
在下列流程中,Azure Pipelines 沒有建立環境之使用者的相關信息:您可以使用另一個外部程式碼編輯器更新 YAML 檔案、新增不存在環境的參考,然後觸發手動或持續整合管線。 在此情況下,Azure Pipelines 並不知道使用者。 先前,我們藉由將所有專案參與者新增至環境的系統管理員角色,來處理此案例。 接著,專案的任何成員都可以變更這些權限,並防止其他人存取環境。
您可以使用 變數 來建立環境,或使用 templateContext將屬性傳遞至範本。 建立環境時,運行時間參數 將無法運作,因為它們會在運行時間擴充。
具有項目關係人存取層級的用戶無法建立環境,因為專案關係人無法存取存放庫。
相關文章
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應