尝试部署需要静态IP的PCF Spring Boot App

时间:2018-12-24 15:45:55

标签: spring-boot pivotal-cloud-foundry pivotal-web-services

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

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

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

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

我已经将该相同的应用程序部署到了Amazon AWS,并且之所以奏效,是因为我有一个静态IP地址,可以用来注册密钥。我更喜欢使用PCF,但是在设置时遇到了麻烦。

2 个答案:

答案 0 :(得分:1)

我认为您将无法在PCF平台上使用该API。每次您cf restage或任何导致容器被重建/重新部署的事物时,IP都会更改。

总之,是不可能的,https://docs.run.pivotal.io/marketplace/external-ips.html

答案 1 :(得分:1)

您的应用将在任意数量的具有相同IP地址的Diego Cells上运行。流量可以通过几种方式离开您的应用程序和单元。

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

如果您正在谈论Cloud Foundry的一些常规安装,则将取决于该环境的运营商如何设置流量以进行流量传输,因此您需要与运营商确认。

如果您正在谈论Pivotal Web服务,则出站流量将来自运行您的应用程序的Cell的IP。请参阅Francisco帖子中的链接。


说了这么多,您可以使用一种hack来解决上述行为。通过代理路由您的流量。可以使来自代理的流量具有固定的IP地址。

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

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

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