postman 如何使用REST API在Azure管道中传递参数?

p5cysglq  于 2023-05-17  发布在  Postman
关注(0)|答案(2)|浏览(125)

我正在使用postman向azure API发出rest请求,以运行synapse中的管道,就权限和令牌而言,我已经得到了它们,它可以工作,问题是管道接收到3个参数,但我不知道如何传递它们,所以我有这个请求,例如:

https://hvdhgsad.dev.azuresynapse.net/pipelines/pipeName/createRun?api-version=2020-12-01

以及我在正文中添加的参数:

{
    "parameters": {
        "p_dir": {
            "type": "string",
            "defaultValue": "val1"
        },
        "container": {
            "type": "string",
            "defaultValue": "val"
        },
        "p_folder": {
            "type": "string",
            "defaultValue": "val3"
        }
    }
}

但是当我验证用请求启动的运行时,我得到了这个。

{
    "id": "xxxxxxxxxxxxxxx",
    "runId": "xxxxxxxxxxxxxxxxxxxxx",
    "debugRunId": null,
    "runGroupId": "xxxxxxxxxxxxxxxxxxxx",
    "pipelineName": "xxxxxxxxxxxxxxxxx",
    "parameters": {
        "p_dir": "",
        "p_folder": "",
        "container": ""
    },
    "invokedBy": {
        "id": "xxxxxxxxxxxxxxxxx",
        "name": "Manual",
        "invokedByType": "Manual"
    },
    "runStart": "2021-07-20T05:56:04.2468861Z",
    "runEnd": "2021-07-20T05:59:10.1734654Z",
    "durationInMs": 185926,
    "status": "Failed",
    "message": "Operation on target Data flow1 failed: {\"StatusCode\":\"DF-Executor-SourceInvalidPayload\",\"Message\":\"Job failed due to reason: Data preview, debug, and pipeline data flow execution failed because container does not exist\",\"Details\":\"\"}",
    "lastUpdated": "2021-07-20T05:59:10.1734654Z",
    "annotations": [],
    "runDimension": {},
    "isLatest": true
}

参数是空的,所以我不知道什么是错的或丢失的。正确的传球方法是什么???
参考:https://learn.microsoft.com/en-us/rest/api/synapse/data-plane/pipeline/create-pipeline-run#examples

njthzxwz

njthzxwz1#

刚刚创建了一个帐户来回答这个问题,因为我有同样的问题。
我解决了这个问题,只在主体JSON中包含变量的名称及其后续值。
例如

{"variable": "value", "variable": "value"}

通过遵循您发布的文档发现了这一点,在请求主体下,它将变量的名称和值直接传递到JSON主体中。

{
  "OutputBlobNameList": [
    "exampleoutput.csv"
  ]
}

这个特殊的例子是一个列表/数组,所以如果你传递的是字符串参数,那么它添加了方括号[],这是不必要的,这让我很困惑。

0s0u357o

0s0u357o2#

我不能让上面的工作。我有一个带有一个基本参数“note”的管道,它运行一个notebook,该notebook打印出参数“note”。只要我从Synapse GUI触发管道,就可以正常工作。当我使用Postman与{“note”:“API”}在Json原始体中,不应用该参数。它仍然接受我在GUI中分配的“base参数”“note”的值。

相关问题