尝试使用 REST 创建 Devops Agent 池 api
Trying to create a Devops Agent pool using REST api
我正在尝试使用 powershell 和 invoke-restmethod 创建代理池 (Azure devops Server)。为此,我使用下面的参考来尝试构建正确的 json 请求正文。
https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/add?view=azure-devops-rest-5.1
所有基础知识都已准备就绪(凭证等 - 我已使用其他 uris 成功完成 运行 其他任务)
多次尝试寻找正确的主体,结果几乎相同,最新示例如下;
$requestBodyAgentPool = '{
"Id": "3"
"name": "Testpool",
"isHosted": $false,
"autoSize": $false,
"poolType": "automation",
"isLegacy": $false
}'
使用以下内容(通过 运行GET 验证 uri 和凭据)
$uriPool = "http://localhost/DefaultCollection/_apis/distributedtask/pools?api-version=5.1"
Invoke-RestMethod -Uri $uriPool -Method POST -ContentType 'application/json' -Body $requestBodyAgentPool -Credential $cred
下面的失败对我来说意味着参数 id 为空。
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Value cannot be null.\r\nParameter name: pool.Name","typeName":"System.ArgumentNullException,
mscorlib","typeKey":"ArgumentNullException","errorCode":0,"eventId":0}
我觉得这只是我对编码术语和阅读参考文档缺乏经验,但我不清楚格式是否错误或者我 missing/wrong 格式化强制参数(id 或名字?)
建议您可以使用一些 UI 工具(例如 Postman)来验证您是否能够 运行 相同的 Rest API。这将帮助您缩小问题范围。
{
"name": "{poolname}",
"autoProvision": $true
}
请求正文应为json格式。尝试为您的 post 正文显式添加 ConvertTo-Json。
更多细节看大牛在这个link的回复:
我正在尝试使用 powershell 和 invoke-restmethod 创建代理池 (Azure devops Server)。为此,我使用下面的参考来尝试构建正确的 json 请求正文。 https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/add?view=azure-devops-rest-5.1 所有基础知识都已准备就绪(凭证等 - 我已使用其他 uris 成功完成 运行 其他任务) 多次尝试寻找正确的主体,结果几乎相同,最新示例如下;
$requestBodyAgentPool = '{
"Id": "3"
"name": "Testpool",
"isHosted": $false,
"autoSize": $false,
"poolType": "automation",
"isLegacy": $false
}'
使用以下内容(通过 运行GET 验证 uri 和凭据)
$uriPool = "http://localhost/DefaultCollection/_apis/distributedtask/pools?api-version=5.1"
Invoke-RestMethod -Uri $uriPool -Method POST -ContentType 'application/json' -Body $requestBodyAgentPool -Credential $cred
下面的失败对我来说意味着参数 id 为空。
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Value cannot be null.\r\nParameter name: pool.Name","typeName":"System.ArgumentNullException, mscorlib","typeKey":"ArgumentNullException","errorCode":0,"eventId":0}
我觉得这只是我对编码术语和阅读参考文档缺乏经验,但我不清楚格式是否错误或者我 missing/wrong 格式化强制参数(id 或名字?)
建议您可以使用一些 UI 工具(例如 Postman)来验证您是否能够 运行 相同的 Rest API。这将帮助您缩小问题范围。
{
"name": "{poolname}",
"autoProvision": $true
}
请求正文应为json格式。尝试为您的 post 正文显式添加 ConvertTo-Json。
更多细节看大牛在这个link的回复: