Cloud Foundry - 如何跨组织检索每个应用 运行 的工件版本?

Cloud foundry - How to retrieve version of artifact of every app running across Orgs?

在PCF平台中,我们有多个组织,每个组织中都有多个空间。

每个 space 都部署了多个应用程序,其中包含提到工件版本的清单文件。例如:如果您 push 一个应用程序 (some-api) 将使用以下具有工件版本 (0.0.1).

的清单文件进行部署
---
applications:
- name: some-api
  instances: 1
  memory: 1G
  buildpack: java_buildpack_offline
  path: target/artifact.jar
  routes:
  - route: some.router.com
  services:
  - abc
  - def
  env:
    ARTIFACT_VERSION: 0.0.1

目标是在 Org 中拥有一个包含 app 到 artifact version 的仪表板。处于 Running 状态

的应用

1) 由于工件版本存储为应用程序的环境变量,在应用程序的推送 中,跨 Orgs/spaces,是否可以检索工件版本每个应用?

2) 如果不是,那么在 PCF 中存储每个应用 运行 的工件版本的更好方法是什么?为了在 Orgs/spaces

期间检索处于 Running 状态的任何应用程序的工件版本

3) 在浏览器仪表板中显示应用程序的工件版本列表。 PCF 平台是否提供任何工具(如 firehouse)来提供 PCF 中可用指标的仪表板?

您可以构建具有请求功能的自定义应用程序(包含所有 运行 应用程序和 ARTIFACT_VERSION 值的仪表板),这将使用 Cloud Foundry API.

还有 CLI 版本 cf env (doc) 用于在 CLI 中快速检查。

更新:

显然,您想使用事件流而不是定期拉取应用环境状态。在这种情况下,使用 Firehouse 并监视 Staging Complete 事件,这将触发具有该 Staging Complete 事件的应用程序的 getEnvValue(ARTIFACT_VERSION) 操作。