合并Azure MLops管线:获取当前项目/管线ID遇阻
获取Azure DevOps当前运行管线的项目ID与管线ID
方法1:直接使用系统预设变量
Azure DevOps内置了可直接调用的系统变量,无需自定义输出即可获取目标值:
- 项目ID:
System.TeamProjectId - 管线定义ID:
System.DefinitionId - 当前运行的管线实例ID:
System.ExecutionId
在YAML管线的脚本步骤中可以直接引用,示例如下:
echo "当前项目ID: $(System.TeamProjectId)" echo "当前管线ID: $(System.DefinitionId)"
方法2:通过Azure DevOps REST API获取(如需更多元数据)
如果需要额外的管线细节信息,可在管线中调用REST API,利用系统自动注入的访问令牌完成认证:
PROJECT_ID=$(System.TeamProjectId) PIPELINE_ID=$(System.DefinitionId) # 调用API获取管线详情 curl -X GET \ "https://dev.azure.com/你的组织名/$PROJECT_ID/_apis/pipelines/$PIPELINE_ID?api-version=7.1-preview.1" \ -H "Authorization: Bearer $(System.AccessToken)"
注意替换你的组织名为实际Azure DevOps组织名称,同时确保管线服务账号拥有管线读取权限。
关于AMLPIPELINEID为空的说明
AMLPIPELINEID是Azure Machine Learning专属管线变量,仅在AML管线运行时才会被注入。你合并后的管线属于Azure DevOps YAML管线,因此该变量不会生效,应使用Azure DevOps系统变量替代。
内容的提问来源于stack exchange,提问作者Mohammed Chaaraoui
相关产品推荐
相关产品推荐

