0

我有什么?

我已经将我的 ASP.NET Core 应用程序部署到我的 IIS。IIS 应用程序本身在 Internet 上不可见,因为它位于防火墙后面。

问题

如何从运行应用程序的服务器对应用程序执行 ping 操作(以便它对 localhost 执行 HTTP GET)并向 Azure DevOps 报告?理想情况下使用现有任务

我可能会写一些 PowerShell,但我真的很想使用现有的解决方案

4

1 回答 1

0

但是,到目前为止,恐怕还没有内置任务可以完美地解决您的问题。

有一个Invoke REST API 任务可以调用 HTTP API 并解析响应。但此任务只能用于代理作业,换句话说,除非您将防火墙设置为允许从 Azure DevOps 访问,否则您不能使用此任务。

更新:使用 PowerShell 任务

先决条件:您需要使用自托管代理,以便您可以在防火墙内访问您的应用程序。

下面使用 YAML 管道进行演示。经典 UI 流水线的步骤大致相同。

如果您只想获取响应正文:

只需使用 Powershell 任务并发送您的网络请求:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      ...
      Invoke-RestMethod ...

如果要将响应正文保存为变量:

步骤 1.设置变量:

variables:
  result: null

步骤 2.使用 PowerShell 任务发送 HTTP 请求并更新变量:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      ...
      $response = Invoke-RestMethod ...
      Write-Host "##vso[task.setvariable variable=result;]$response"

Step 3.那么 的值$($env:RESULT)就是你的web请求的响应体,你可以在后续的任务中使用它。

于 2021-01-06T09:42:37.673 回答