如何使用Azure DevOps发布管道对防火墙后面的本地IIS应用程序执行健康检查



我有什么

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

问题

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

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

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

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

更新:使用PowerShell任务

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

以下内容使用YAML管道进行了演示。经典UI管道的步骤大致相同。

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

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

- 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"

步骤3.然后$($env:RESULT)的值是web请求的响应主体,您可以在后续任务中使用它。

最新更新