从外部源填充运行时天蓝色管道参数

2024-04-19

我们希望创建一个管道来更新我们的多租户 Azure 环境。我们需要在每个租户的更新过程中执行一些操作。为了实现这一目标,我们希望为每个租户创建一个作业,以便我们可以并行处理租户。为了实现此目的,我想使用运行时参数来传递租户以更新到我的管道,如下所示:

parameters:
- name: tenants
  type: object

租户参数的值可能如下所示:

- Name: "customer1"
  Someotherproperty: "some value"
- Name: "customer2"
  Someotherproperty: "some other value"

为了创造就业机会,我们这样做:

stages:
- stage:
  jobs:
  - job: Update_Tenant
    strategy:
      matrix:
        ${{ each tenant in parameters.Tenants }}:
          ${{ tenant.tenantName }}:
            name: ${{ tenant.tenantName }}
            someproperty: ${{ tenant.otherProperty }}
      maxParallel: 2
    steps:
      - checkout: none
      - script: echo $(name).$(someproperty) 

现在我们需要的是一些方法来填补这个tenants范围。现在我尝试了一些解决方案:

  • 理想情况下,我想在之前放置一个构建阶段Update_Tenants阶段调用 REST api 来获取租户,并展开tenants参数时Update_Tenants阶段启动,但据我所知,这是不支持的,因为参数扩展是在管道启动时完成的。

  • 一个不太理想但仍然可行的选项是创建一个包含租户的变量组 yaml 文件,并将此变量组包含在我的管道中,然后使用${{ variables.Tenants }}引用它们的语法。但是,由于某种原因,变量只能是字符串。

我目前能想到的唯一解决方案是创建一个调用 REST api 的管道来让租户更新,然后使用天蓝色 devops api https://learn.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run%20pipeline?view=azure-devops-rest-6.1使用正确的参数值对实际更新过程进行排队。但这感觉像是一个有点笨拙的解决方法来完成这个任务。

现在我的问题是,有没有(更好的?)替代方案来完成我想做的事情?


也许这会有所帮助。我能够使用外部源(.txt 文件)来填充天蓝色管道中的数组变量。

工作示例

          # Create a variable
          - bash: |
              arrVar=()
              for images in `cat my_images.txt`;do
                arrVar+=$images
                arrVar+=","
              done;
              echo "##vso[task.setvariable variable=list_images]$arrVar"

          # Use the variable
          # "$(list_images)" is replaced by the contents of the `list_images` variable by Azure Pipelines
          # before handing the body of the script to the shell.
          - bash: |
              echo my pipeline variable is $(list_images)

来源(还有矩阵的示例)

其他来源

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从外部源填充运行时天蓝色管道参数 的相关文章

随机推荐

  • 单击时更改 TextView 的背景颜色

    我需要更改 TextView 的背景颜色 使用 ColorStateList 我可以更改字体颜色 但背景颜色不接受 ColorStateList lblEtiqueta setTextColor new ColorStateList new
  • 使用 HTTPS 回传 Paypal IPN 验证

    根据新的安全要求 2016 年 2017 年和 2018 年 在 IPN 期间 服务器和 Paypal 之间的交换似乎需要 HTTPS 这个问题与这个主题相关 https civicrm stackexchange com a 6374并且
  • wcf 错误:传入消息使用的令牌进行签名,该令牌与用于加密正文的令牌不同。这是没有预料到的

    我正在尝试使用 verisign 测试 x 509 证书调用第三方服务 当我收到响应消息时 它会生成以下错误 传入消息使用令牌进行签名 该令牌与用于加密正文的令牌不同 这是没有预料到的 我没有预料到会出现此错误 因为我只向服务提供了一个 x
  • 我们需要为每个子例程创建一个错误处理程序吗?

    我从SO中复制了一段代码作为示例 该子例程包含一个错误处理程序 是否应该为所有 Sub 制定一个错误处理程序 Public Sub SubA On Error Goto ProcError Connection Open Open File
  • 更新两个表的 SQL 触发器

    我是 SQL 新手 有人可以帮我修复下面的触发器吗 我有这 2 个表 评论和报价 我想更新评论表插入 更新和删除 从报价表中获取数据 如果更新成功 我想使用 ReviewId 和 ReviewDate 更新报价表 我使用的是Azure提供的
  • JQuery Ajax 火狐错误

    下面的代码在 Chrome 和 IE 中都可以正常工作 get ajax BTBookAppointment aspx dsl telNumberBox value date requiredDate value timeslot ddTi
  • 从连接到计算机并在成像设备中列出的相机捕获图像

    我有一台佳能 EOS 1000D 当我将其连接到计算机时 它列在 控制面板 gt 成像设备 下 我想以编程方式拍照 我猜想成像设备中列出的所有设备都具有相同的接口 可能是 TWAIN 并且具有向它们发送命令的标准方法 TWAIN可以做到吗
  • Rails 6 中是否必须手动将 ApplicationHelper 包含在 ApplicationController 中?

    控制器 class FooController lt ApplicationController def index bar method 应用程序助手 module ApplicationHelper def bar method 查看索
  • 如何禁止在Python中创建新的类属性?

    这可能看起来是一个非常基本的问题 但我在 SO 或其他地方找不到任何有用的东西 如果您参加内置课程 例如int or list 没有办法为它们创建额外的类属性 这显然是一个理想的行为 gt gt gt int x 0 Traceback m
  • 在 Django REST 框架中序列化内部方法字段

    例如 我有两个模型 Model1 and Model2 它们在模型级别上不通过任何关键字段直接相互关联 对于这两种模型 我都有序列化器 我正在寻找拥有的方式Model2查询集在Model1序列化器 例如 GET api model1 01
  • 无法在运行 apache 服务器上访问 http://localhost:80

    在 ubuntu 14 04 中运行 apache 服务器时我得到 This webpage is not available 在浏览器中或 curl 7 Failed to connect to localhost port 80 Con
  • 视图的高效“屏幕截图”?

    TL DR 自从getDrawingCache 似乎触发了一个完整的重绘View当启用硬件加速时 是否有其他方法获得Bitmap 或类似的东西 可以避免这种情况 也许是通过读取填充到 硬件 软件 层的数据View最后被抽到了 一些背景 自
  • 第一个 cURL 请求验证 GCM api 密钥

    目前正在尝试使用 GCM API 密钥构建我的第一个 Android 应用程序 一款营销软件将使用该密钥来发送推送通知 想要获得一些帮助 通过curl请求验证我的谷歌云消息 GCM API密钥 我尝试使用在线卷曲生成器 但结果与我期望的成功
  • Common Lisp 鼠标位置与 ltk

    我正在 Common Lisp 中制作一个简单的小程序 我想使用鼠标移动来控制它 我用 LTK 作为窗口 我找不到任何可以检索鼠标位置的函数 例如 Emacs Lisp 有 鼠标像素位置 我发现这在罗塞塔代码上 https rosettac
  • 为 WebRTC 应用程序实现我们自己的 STUN/TURN 服务器 [重复]

    这个问题在这里已经有答案了 我正在开发一个 webrtc 应用程序 并且必须实现以下 TURN 服务器 https code google com p rfc5766 turn server https code google com p
  • R 中的旋转轴标签

    如何使 条形 图的 y 轴标签平行于 X 轴而不是平行于 Y 轴 不确定这是否是您的意思 但尝试设置las 1 这是一个例子 require grDevices tN lt table Ni lt stats rpois 100 lambd
  • php中比较字符串的方法

    我想比较两个字符串并返回比较级别 字符串 1 是输入 可以采用来自客户端的多种格式 例如 string 1 GCSE English Lang Year 10 or string 1 Year 10 Eng Lang GCSE etc 字符
  • 如何在 VB.NET 中调用异步 Web 请求?

    我目前正在使用以下代码来创建网络请求 Dim myRequest As WebRequest WebRequest Create http foo com bar Dim myResponse As WebResponse myReques
  • 在 iOS 中加载/保存设置

    我在 AppDelegate 中定义了以下两个过程 保存设置和加载设置 单击保存按钮后 我将在 AppDidFinishLaunching 方法中调用 loadSettings 过程 并在设置视图中调用 saveSettings 过程 这两
  • 从外部源填充运行时天蓝色管道参数

    我们希望创建一个管道来更新我们的多租户 Azure 环境 我们需要在每个租户的更新过程中执行一些操作 为了实现这一目标 我们希望为每个租户创建一个作业 以便我们可以并行处理租户 为了实现此目的 我想使用运行时参数来传递租户以更新到我的管道