在我的Azure DevOps发布管道中,我想启动一个VM。因此,我的任务是“启动虚拟机”,执行“ Azure资源组部署”任务。但是,当我运行此任务时,出现错误:
“无法从资源组获取虚拟机列表:... 错误:“无法获取托管服务主体的访问令牌。 请为虚拟机配置托管服务身份(MSI) 'https://aka.ms/azure-msi-docs'。状态码:400,状态消息:错误 请求”
在我的VM中,我已经启用了系统分配的托管身份,所以我不知道为什么会出现此错误。有什么想法吗?
答案 0 :(得分:0)
您还需要Azure DevOps中的服务连接才能使用MSI连接到Azure订阅。
您可以在Azure Active Directory(Azure AD)中为具有Azure托管服务身份的基于Azure虚拟机(VM)的代理配置。这样,您可以使用系统分配的身份(服务主体)向基于Azure VM的代理授予对支持Azure AD的任何Azure资源(例如Key Vault)的访问权限,而不是将凭据持久保存在Azure DevOps中以进行连接。
在Azure DevOps中,从项目设置页面打开“服务连接”页面。在TFS中,从顶部菜单栏中的“设置”图标打开“服务”页面。
选择“托管身份验证”选项。
打开托管服务身份设置
输入在引用此服务连接时要使用的用户友好连接名称。
选择环境名称(例如Azure云,Azure Stack或Azure政府云)。
在连接对话框的以下字段中输入预订的值:
创建新服务连接后: