我正在尝试通过从 Azure DevOps 管道中调用他们的 REST API 来自动在 Elastic 云中部署 Elasticsearch 资源。
使用 InvokeRestAPI 任务调用 API 可以正常工作,但现在我想使用在响应此 API 调用时发送的信息。此处的文档说此任务可用于调用 HTTP API 并解析响应,但它没有提供有关如何执行此操作的信息。
到目前为止,我已经尝试根据依赖项为我的下一份工作添加一个变量,但这不起作用:
- job: DeployES
dependsOn: GenerateTipTenantId
pool: server
variables:
tenantid: $[ dependencies.GenerateTipTenantId.outputs['GenerateGuid.faketenantid'] ]
steps:
- task: InvokeRESTAPI@1
name: EsRest
inputs:
<InvokeRESTAPI task inputs generated by the assistant>
- job: processDeployment
dependsOn: DeployES
pool:
vmImage: 'ubuntu-latest'
variables:
depid: $[ dependencies.DeployES.outputs['EsRest.Response.id'] ]
steps:
- script: echo $(depid)
name: echoid
我可能可以用“常规”Powershell 脚本替换 InvokeRestAPI,但 InvokeRestAPI 任务似乎更容易设置。
所以问题是:如何访问 API 响应中的 JSON 对象,并将其中的一部分传递给管道中的下一个作业?