我有什么?
我已经将我的 ASP.NET Core 应用程序部署到我的 IIS。IIS 应用程序本身在 Internet 上不可见,因为它位于防火墙后面。
问题
如何从运行应用程序的服务器对应用程序执行 ping 操作(以便它对 localhost 执行 HTTP GET)并向 Azure DevOps 报告?理想情况下使用现有任务
我可能会写一些 PowerShell,但我真的很想使用现有的解决方案
我已经将我的 ASP.NET Core 应用程序部署到我的 IIS。IIS 应用程序本身在 Internet 上不可见,因为它位于防火墙后面。
如何从运行应用程序的服务器对应用程序执行 ping 操作(以便它对 localhost 执行 HTTP GET)并向 Azure DevOps 报告?理想情况下使用现有任务
我可能会写一些 PowerShell,但我真的很想使用现有的解决方案
但是,到目前为止,恐怕还没有内置任务可以完美地解决您的问题。
有一个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请求的响应体,你可以在后续的任务中使用它。