尝试部署需要静态 IP 的 PCF Spring 启动应用程序

Trying to Deploy a PCF Spring Boot App which requires a static IP

我有一个应用程序使用 spring 启动作为后端,Vue.js 作为前端。我已经将该应用程序打包成一个 jar 文件并轻松部署到 PCF。问题是应用程序使用 API 来自 https://developer.clashroyale.com/#/getting-started 的密钥 ...这些密钥需要您输入将要使用的 IP 地址...

显然,除非我提供正确的 IP 地址,否则我的密钥将无法使用,那么如何为我的 PCF 应用程序检索 IP 地址,以便生成正确的 API 密钥?

此外,文档说 IP 会随着我的应用程序的每次部署而改变...这会提示问题:

是否无法在 PCF 应用程序中使用 API 需要静态 IP 地址的密钥?

我已经将这个相同的应用程序部署到亚马逊 AWS 并且它工作正常,因为我有一个静态 IP 地址,我可以使用它来注册密钥。我更喜欢使用 PCF,但在设置时遇到了问题。

我认为您无法在 PCF 平台上使用 API。每次你 cf restage 或任何导致容器成为 rebuilt/redeployed 的东西时,IP 都会改变。

所以简而言之,是的,这是不可能的:https://docs.run.pivotal.io/marketplace/external-ips.html

您的应用程序将在任意数量的 Diego Cells 上 运行,它们都具有不同的 IP 地址。流量可以通过多种方式离开您的应用程序和 Cell。

在某些情况下,出站流量可能会通过 NAT,在这种情况下,可能的 IP 数量可能很少,并且 IP 可能不会经常更改(或根本不会更改)。在其他情况下,流量可能直接从您的应用程序所在的 Diego Cell 离开 运行ning。在这种情况下,有更多的 IP 并且 IP 会在您的应用重新启动时随时更改。

如果您谈论的是 Cloud Foundry 的一些常规安装,这将取决于该环境的操作员如何设置要流动的流量,因此您需要与您的操作员确认才能确定。

如果您谈论的是 Pivotal Web 服务,则出站流量将源自您的应用所在的 Cell 的 IP 运行ning。请参阅 Francisco 的 post 中的 link。


综上所述,您可以使用一种技巧来解决上述问题。通过代理路由您的流量。可以使来自代理的流量具有固定的 IP 地址。

在 PWS 上,市场上有一项服务可以做到这一点。它叫做 QuotaGuard。

https://docs.run.pivotal.io/marketplace/services/quotaguard.html

虽然您不必使用该服务,您可以使用任何其他服务提供商,或者您甚至可以设置自己的代理。我建议使用服务,除非您确切地知道自己在做什么。设置和保护代理并非易事,保护不当的代理不仅对所有者不利,而且对整个互联网都不利。