Azure Batch市场购买资格分配失败问题求助
排查要点与解决步骤
确认镜像ID的准确性
条款接受失败常因镜像ID输入错误,市场镜像完整格式为publisher/offer/sku/version,比如microsoftwindowsserver/windows-server-2022-datacenter/2022-datacenter/latest。务必从Batch池配置中复制完整镜像ID,再执行对应命令:- PowerShell:
Set-AzMarketplaceTerms -Publisher 'microsoftwindowsserver' -Product 'windows-server-2022-datacenter' -Name '2022-datacenter' -Accept - CLI:
az vm image terms accept --publisher microsoftwindowsserver --offer windows-server-2022-datacenter --sku 2022-datacenter
- PowerShell:
检查账户权限
确保使用的Azure账户拥有Marketplace Admin或Owner权限,普通Contributor权限可能无法持久化条款接受状态。可在订阅IAM设置中确认权限,或换用高权限账户重试。强制刷新Batch池的镜像关联
接受条款后,若允许则删除现有池后重新创建;或修改池的镜像版本为其他版本,再改回原版本,触发Batch服务重新拉取市场条款状态。检查订阅的市场购买权限
登录Azure门户,进入订阅的设置 -> 配置,确认“允许市场购买”设为“是”,若为“否”或“仅允许免费产品”,会导致付费镜像无法分配。更新PowerShell模块版本
旧版Az.MarketplaceOrdering模块可能存在bug,执行Update-Module -Name Az.MarketplaceOrdering -Force更新至最新版本,再重新执行条款查询与接受命令。通过门户直接接受条款
在Azure门户搜索“虚拟机”,尝试创建一台使用相同镜像的虚拟机,创建过程中会弹出市场条款接受提示,完成接受后再回到Batch池重新尝试分配,这种方式能确保条款被正确记录到订阅中。
内容的提问来源于stack exchange,提问作者Robin

