Azure Pipelines - Sprint 246 更新

功能

Azure Pipelines 托管代理上的 Ubuntu 24.04

Ubuntu 24.04 映像现在可用于 Azure Pipelines 托管代理。 若要使用此映像,请更新 YAML 文件以包括 vmImage:'ubuntu-24.04'

- job: ubuntu2404
  pool:
    vmImage: 'ubuntu-24.04'
  steps:
  - bash: |
      echo Hello from Ubuntu 24.04
      lsb_release -d

注意

图像 ubuntu-latest 标签将继续指向 ubuntu-22.04,直到今年晚些时候。

有关已安装的软件,请参阅 Ubuntu 24.04 映像自述文件

在 Azure 集成测试中使用工作负荷标识联合身份验证

今年6月,Azure 标识库 for.NET、C++、Go、Java、JavaScript 和 Python 添加了对工作负荷标识联合的支持。 这增加了从AzureCLI@2和AzurePowerShell@5任务执行的代码使用类进行身份验证的功能,Microsoft Entra(例如,访问 Azure)。AzurePipelinesCredential

许多客户都在从其他任务调用的集成测试中使用 Azure 标识库。 现在,我们添加了对AzurePipelinesCredentialDotNetCoreCLI@2Maven@4VSTest@3任务的支持。

可以将该 connectedService 属性设置为配置了工作负荷标识联合身份验证的 Azure 服务连接。 SYSTEM_ACCESSTOKEN需要AzurePipelinesCredential设置。

- task: DotNetCoreCLI@2
  inputs:
    command: 'run'
    connectedService: <Azure service connection configured with workload identity federation>
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)

有关详细信息 AzurePipelinesCredential,请参阅此 博客文章

通过改进的托管标识支持创建新的 Azure 服务连接体验

新的 Azure 服务连接创建体验提高了灵活性和安全默认值。 所用术语与 Microsoft Entra ID 一致,以便创建 Microsoft Entra ID 对象的用户在不同门户之间切换时时更容易理解。

创建新的 Azure 资源管理器服务连接时,现在可在单个统一对话框中使用各种配置标识的选项,用于替换之前使用的不同顶级项:

Azure 服务连接顶级选项的屏幕截图。

标识类型 列出了 Azure 服务连接支持的所有身份验证方案:

标识类型的屏幕截图。

对于应用注册,可以独立选择 凭据 作为 工作负荷标识联合 或机密。

Azure 服务连接托管标识支持

现在可以选择预先存在的托管标识,并使用它来配置使用工作负荷标识联合的服务连接。 首先, 创建用户分配的托管标识

然后,创建 Azure 服务连接并选择 托管标识 类型。 这会在托管标识上配置联合标识凭据。

托管标识支持的屏幕截图。

使用分配给代理(池)的托管标识的选项已重命名为托管标识(代理分配)。 为了防止共享超特权托管标识,建议使用具有工作负荷标识联合的托管标识,而不是分配给代理池的托管标识。

如果 Microsoft Entra ID 中禁用,则托管标识也是无法创建应用注册的用户的建议选项。

若要将托管标识与工作负荷标识联合一起使用,请先选择包含托管标识的订阅和资源组。 这不同于管道作业中服务连接访问的订阅。 选择为工作负荷标识联合配置的托管标识。 用户需要 托管标识参与者 角色或托管标识的等效权限才能在托管标识上创建联合标识凭据。

继续选择将用作服务连接的部署范围的订阅。

托管标识选择的屏幕截图。

“服务管理参考”字段

某些组织要求 使用 ITSM 数据库中的相关上下文信息填充应用注册的服务管理参考 。 如有必要,用户可以在创建服务连接时指定此引用。

详细信息

新的 Azure 服务连接创建体验在下个月推出。 有关详细信息,请参阅:

父阶段失败时运行子阶段

使用 Azure Pipelines 可以更轻松地继续部署。 例如,使用 Pipelines 跨多个 Azure 区域部署应用程序的新版本时,这非常有用。

假设需要部署到连续五个 Azure 区域。 假设管道具有每个区域的阶段,每个阶段都有一个运行 AzureResourceManagerTemplateDeployment 任务的作业,然后记录一些遥测数据。 后者是好的,但不是关键。 假设记录遥测数据时出现问题。 现在,阶段会失败,部署停止。

从此冲刺开始,当阶段失败时,可以恢复运行其子阶段。

如果父阶段失败,则运行子阶段的屏幕截图。

后续步骤

注意

这些功能将在未来两到三周内推出。

前往 Azure DevOps 并了解一下。

如何提供反馈

我们很想听听你对这些功能的看法。 使用帮助菜单报告问题或提供建议。

提出建议

你还可以在 Stack Overflow 上获取社区的建议和问题解答。