是否可以通过POST API将某些文件传递给Cloud Foundary应用程序?

问题描述

我有2个Cloud Foundry应用程序。 在第一个应用程序上,我已推送了具有0个实例的Windows exe 此应用程序的Manifest.yml如下所示:-

    applications:

- name: sampleApp
  stack: windows2012R2
  instances: 0
  memory: 512M
  no-route: true
  health-check-type: none
  buildpacks: 
  - binary_buildpack

我已经在其他Cloud Foundry应用程序上创建了POST Flask API,该API将从用户那里收集文件

现在我要使用此文件运行sampleApp,有人可以帮助我如何链接这两个应用程序吗?

解决方法

乍一看,这似乎很容易,但是当部署到Cloud Foundry时,您的两个应用程序是完全分开的。它们在不同的容器中和不同的OS堆栈上运行(Python是Linux,您的exe是Windows)。这不像简单地炮轰并运行一个外部进程那样简单。

要进行类似的工作,您需要在两个应用程序之间添加一个通信通道。通常有一个或多个Web进程将消息发送到一个或多个工作人员(独立扩展)的池中,这些池执行潜在的CPU / RAM密集型任务。

如何在两者之间进行通信取决于您。您可以创建REST端点,使用gRPC或消息代理(STOMP,RMQ等)。您只需同意,您的Web UI便会知道如何将消息传递给工作人员。

如果您不能像第三方提供的那样修改exe,则需要将其与可以执行通信的应用程序包装在一起,然后安装并运行您的exe。