首页 > 解决方案 > 在 YAML 中访问请求内容 ${{ parameters.WebHookName}} 资源中的值,语法是什么?

问题描述

我正在从 Azure DevOps 2020 中的服务挂钩触发我的管道,现在需要处理一些额外的数据。webhook 请求如下所示(简化示例):

Method: POST
URI: <myURL>/_apis/public/distributedtask/webhooks/TestHookDeletion?api-version=6.0-preview
HTTP Version: 1.1
Headers:
{
  Content-Type: application/json; charset=utf-8
}
Content:
{
  "subscriptionId": "myID",
  "notificationId": 42,
  "id": "myID",
  "eventType": "workitem.deleted",
  "publisherId": "tfs",
  "message": null,
  "detailedMessage": null,
  "resource": {
    "id": 4242,
    "rev": 3,
    "fields": {
...
      "System.ChangedDate": "2021-04-15T09:30:38.91Z",
      "System.ChangedBy": "TestUser, User <TESTDOMAIN\\testuser>",
...
    }
...

我可以像这样访问顶层的内容:

    - script: |
        echo ${{ parameters.TestHookDeletion.publisherId}}
        echo ${{ parameters.TestHookDeletion.subscriptionId}}
      displayName: 'Command Line Script: get Parameters Example'

我真正想要访问的是:

${{ parameters.TestHookDeletion.resource.fields.System.ChangedBy}}

经过一些测试后,我得出结论,在示例“System.ChangedBy”中,这似乎是用点来处理 JSON 密钥的问题。

如果您知道如何从请求中访问我想访问的值,请您帮帮我。

谢谢,彼得。

标签: azure-devops-pipelinesazure-devops-yaml

解决方案


推荐阅读