是否可以使用 Azure 管理 API 检查 azure 应用程序服务是否 运行?

Is it possible to check whether an azure app service is running using the Azure Management API?

我们有一个演示应用程序,它是部署到免费应用服务计划 SKU 上的 Linux 应用服务的 docker 映像。它很少使用,因此它会积极地降速。在下一次激活时,大约需要 3-5 分钟来旋转图像。我想用 azure management api 检查服务是否 运行 知道响应应该在 3s 还是 200s。 GET web 似乎最适合 API 调用,但响应显示它是 运行,可能反映了底层应用程序服务计划的状态。下面是经过修剪的响应,无论应用程序是热的还是冷的,都给出相同的响应。

示例响应

  "id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Web/sites/{name}",
  "name": "{name}",
  "type": "Microsoft.Web/sites",
  "kind": "app,linux,container",
  "location": "East US",
  "properties": {
    "name": "{name}",
    "state": "Running",
    "webSpace": "ML-EastUSwebspace-Linux",
    "usageState": "Normal",

从 API 管理部门检查 Azure 服务是否 运行 不是一个好习惯。

Azure APIIM 仅支持以下 features

最佳做法是针对关键应用程序指标设置警报。

警报基于我们配置为接收警报的操作组。

我忽略了 Web Apps - List Instance Identifiers 但这是我正在寻找的结果。当应用程序停止运行时,标识符列表是空集,相反,当应用程序处于活动状态时,它有一个标识符。

降速

{
  "value": [],
  "nextLink": null,
  "id": null
}

活跃

{
  "value": [
    {
      "id": "/subscriptions/{subid}/resourceGroups/{rgname}/providers/Microsoft.Web/sites/{name}/instances/81c6b43bcb7aea592e620086200b3ab40b78857d08aa07e29c330415afa10cf8",
      "name": "81c6b43bcb7aea592e620086200b3ab40b78857d08aa07e29c330415afa10cf8",
      "type": "Microsoft.Web/sites/instances",
      "location": "East US",
      "properties": {
        "state": "UNKNOWN",
        "name": "81c6b43bcb7aea592e620086200b3ab40b78857d08aa07e29c330415afa10cf8",
        "siteInstanceName": "81c6b43bcb7aea592e620086200b3ab40b78857d08aa07e29c330415afa10cf8",
        "statusUrl": "{url}",
        "detectorUrl": "{url}",
        "consoleUrl": "{url}",
        "healthCheckUrl": null,
        "machineName": "lw0sdlwk0006ZZ",
        "containers": null
      }
    }
  ],
  "nextLink": null,
  "id": null
}