Azure DevOps 服務
GitHub 託管代理提供 Azure Pipelines 的高性能虛擬機,採用隨用付費(PAYG)計費。 與使用並發池的Microsoft託管代理不同,GitHub託管代理按分鐘使用計費,並提供更強大的機器配置。 收費取決於所使用代理程式的作業系統和大小。
Prerequisites
要啟用 GitHub 託管代理,您必須具備以下先決條件:
| 類別 | 要求 |
|---|---|
| 權限 | 您必須擁有在 Azure DevOps 組織中設定帳單設定的權限。 完整所需權限清單,請參閱 「管理帳單:前置條件」。 |
| Subscription | Azure 訂閱,使用與你的 Azure DevOps 組織相同的 Microsoft Entra ID。 |
啟用 GitHub 託管的代理帳單
GitHub 託管的代理程式採用隨用隨付計費方式。 系統會根據機器規格,依管線執行時間的分鐘數向你收費。 有關價格資訊,請參見 Azure DevOps pricing。
Note
GitHub 託管的代理程式不會提供免費方案或免費通話分鐘數。 所有用電量均按分鐘計費。 這種按用量付費的計費模式,與 Microsoft 代管代理程式所使用的 平行作業 並行計費方式是分開的。
如果您的Azure DevOps組織尚未啟用帳單功能,請先依照設定您的組織計費指示啟用。
在 帳務設定中啟用隨用隨付計費。 將 Enable GitHub-hosted agents 設為 On,並在頁面底部選擇 Save。
使用 GitHub 託管的代理程式
當您啟用隨用隨付計費時,Azure DevOps 會在您的組織中建立新的 GitHub 託管代理程式集區。 這個池子提供額外的圖片標籤,按分鐘計費。
若要在 YAML 管線中使用 GitHub 託管代理,請設定以下屬性的 pool 區段:
-
name:'GitHub-hosted Agents' -
vmImage: 你想使用的 VM 映像標籤。 有關可用的影像標籤,請參見 GitHub-hosted agent images。
pool:
name: 'GitHub-hosted Agents'
vmImage: 'macos-26-arm64'
steps:
- bash: |
echo Hello from macOS Tahoe arm64
uname -a
sw_vers
其他例子:
pool:
name: 'GitHub-hosted Agents'
vmImage: 'macos-26-arm64-xl'
steps:
- bash: |
echo Hello from XL macOS Tahoe arm64
uname -a
hostinfo | grep memory
pool:
name: 'GitHub-hosted Agents'
vmImage: 'ubuntu-24.04-8-core'
steps:
- bash: |
echo Hello from Ubuntu 24.04 8 core
lsb_release -d
echo "# cores: $(nproc)"
free -h
- pwsh: |
Write-Host "`$PSVersionTable.OS"
$PSVersionTable.OS
Write-Host "Number of logical processors: $([Environment]::ProcessorCount)"
Get-Content /proc/meminfo | Select-String '^Mem(Total|Available):'
pool:
name: 'GitHub-hosted Agents'
vmImage: 'windows-2025-vs2026-16-core'
steps:
- pwsh: |
Write-Host "(Get-ComputerInfo).WindowsProductName"
Get-ComputerInfo | Select-Object WindowsProductName
Write-Host "`$PSVersionTable.OS"
$PSVersionTable.OS
Write-Host "Number of logical processors: $([Environment]::ProcessorCount)"
Write-Host "Installed memory (MB): $([Math]::Round((Get-ComputerInfo).CsTotalPhysicalMemory / 1MB))"
由 GitHub 託管的代理程式映像
GitHub 託管代理程式提供比標準 Microsoft 託管代理程式 組態 更高效能的組態。 GitHub 託管代理程式 池提供以下硬體規格與虛擬機映像。
Important
在公開預覽期間,組織每個 SKU 最多只能使用八個 GitHub 託管代理。 若每種硬體規格有超過八個管線工作排入佇列,前八個工作會先執行,其餘工作則會繼續排在佇列中,直到前八個工作完成為止。 如果您在公開預覽期間需要為每種硬體規格配置八個以上的代理程式,請建立支援案例。
GitHub 託管代理提供以下 macOS 版本的映像檔:
| macOS 版本 | 包含的軟體 |
|---|---|
| macOS 26 ARM 64 | 連結 |
| macOS 搭配 Xcode 27(公開預覽版) | 連結 |
Note
GitHub 託管的 macOS 代理程式無論你的 Azure DevOps 組織所在地,都會在美國執行。
此 macOS 映像可使用以下硬體規格執行管線:
| 硬體規格 | vCPU | RAM | 儲存(SSD) | Architecture |
|---|---|---|---|---|
| 標準 | 3 | 7 GB | 14 GB | arm64(M1) |
| 特大 | 5 (+ 8 GPU 硬體加速) | 14 GB | 14 GB | arm64(M2) |
若要使用GitHub託管代理執行管線,請從以下列表中指定符合您期望作業系統與硬體規格的影像標籤:
| 作業系統 (OS) | 硬體規格 | 影像 | YAML VM 映像標籤 |
|---|---|---|---|
| macOS 26 | 標準 | macOS ARM64 | macos-26-arm64 |
| macOS 26 | 特大 | macOS ARM64 XL | macos-26-arm64-xl |
| macOS 搭配 Xcode 27 | 標準 | macOS ARM64 | xcode-27 |
| macOS 搭配 Xcode 27 | 特大 | macOS ARM64 XL | xcode-27-xlarge |
基於 Xcode 的 macOS 映像命名規則
隨著 macOS 附 Xcode 27(公開預覽版)映像的發佈,Microsoft 為 macOS 映像引入了新的命名規則。 每個新的映像檔名稱都是基於主要的 Xcode 版本,而非底層作業系統。 每個映像版本支援一個主要的 Xcode 版本。
此命名模式使開發者能針對所需的蘋果工具鏈進行鎖定。 它反映了 macOS CI 工作通常的定義方式,即依其所需的 Xcode 工具鏈定義,而非底層作業系統。 作業系統可能會在映像的生命週期中改變。 若要查看隨 Xcode 27 映像檔所附的軟體,包括 macOS 作業系統版本,請點擊前一表格中附帶的軟體連結。
監控使用情況
你可以透過兩種方式監視管線使用量:使用集區上的 [分析] 索引標籤,或使用 Azure 成本管理。
分析檢視表
在GitHub託管的代理人員池中,選擇Analytics標籤。選擇你想顯示的代理 SKU 和使用期間。 此選擇會呈現圖表,列出使用所選經紀人 SKU 的頂尖專案。 你可以逐層深入至專案層級,再到管線層級,以查看使用該代理程式 SKU 的作業。
Azure 成本管理
要篩選預付費管線使用量,請選擇:
- 計量類別:Azure DevOps
- 計量子類別: Azure Pipelines
- 計量單位:每分鐘1
此外,您還可以篩選:
- 標籤:
_organizationname_ - 標籤:
_projectname_
以下截圖展示了 Azure 成本管理 中典型的成本分析視圖:
網路
GitHub託管代理具備與Microsoft託管代理類似的網路能力。
GitHub 託管代理程式使用與 GitHub Actions 大型執行器 相同的基礎架構。 GitHub 託管代理與伺服器之間的網路流量會經過公共網路。
Important
你不能使用像
安全性
GitHub託管代理擁有與Microsoft託管代理相同的安全特性。
GitHub 代管的代理程式會在隔離的虛擬機器上執行,並在每次作業後重新建立映像。 每個代理程式都專用於單一組織,而每個 VM 只會裝載單一代理程式。
- 代理沒有公開 IP 位址,因此外部實體無法直接鎖定他們。
- 每個工作都跑在剛配置好的虛擬機上,所以工作間的資料不會持續存在。
- 託管映像不符合 CIS 硬化基準。 要使用 CIS 強化映像,可以考慮 自架代理 或 受控 DevOps 集區。
功能和限制
GitHub 託管代理具有與 Microsoft 託管代理類似的
GitHub 託管的代理程式:
- 提供比標準 Microsoft 代理程式更大的機器尺寸,並擁有更多的 vCPU、RAM 和磁碟空間。
- 按使用分鐘計費,沒有免費方案。
比較經紀人池選項
| Feature | Microsoft 託管的代理程式 | GitHub 託管的代理程式(PAYG) | 自行架設的代理程式 |
|---|---|---|---|
| 帳單 | 平行作業(基於並行處理) | 按分鐘計費(即用即付) | 你自己的基礎建設 |
| 免費層 | 有 (有限制) | No | 不適用 |
| 機器尺寸 | 標準 | 各種(比 Microsoft 託管的更大) | 習俗 |
| 維護 | 自動 | 自動 | Manual |
| 客製化軟體 | 在管線運行時安裝 | 在管線運行時安裝 | Preinstalled |
| 企業網絡 | 無法直接進入 | 無法直接進入 | 直接存取 |