当我连接到绑定到CloudFoundry应用程序(服务)的数据源时,我使用以下命令打开一个允许我连接到它的SSH隧道。
ssh -L 55432:example-service-uri.amazonaws.com:5432 example-service
只要服务启动并运行,这样就可以正常工作。但是,在某些情况下,数据源实际上可能是服务无法重新启动的问题。当服务重新启动/关闭时,隧道连接也因此被丢弃。最糟糕的情况现在是由于当前数据源不一致而导致服务无法启动的状态,并且无法创建到该数据库的隧道来解决问题。
通过简单地将数据源绑定到另一个正常运行的服务,有一种解决方法。但这看起来有点像hacky。
据我所知,这将是故意设计的,在理想情况下,我根本不需要对我的数据源进行更改。但是,我想知道即使服务本身已关闭,是否有一种很好的连接服务数据源的方法。
答案 0 :(得分:1)
据我所知,除了创建一些代理应用程序之外别无他法。它与您的服务绑定,允许您访问。
作为示例,请参阅Swisscom PaaS(官方Cloud Foundry服务提供商)如何在此article
中提出如何将数据库服务迁移到另一个服务答案 1 :(得分:1)
我认为@ LBA的答案在这里是正确的,因为它为您提供了对您服务的交互式访问,但我想再提一个可能性。
Cloud Foundry Tasks也可能是您与服务进行互动并进行所需调整的一种方式。虽然它不会为您提供shell或交互式UI来与您的服务进行通信,但您可以编写并运行实现相同功能的脚本。
https://docs.cloudfoundry.org/devguide/using-tasks.html
任务是在平台上的应用程序容器中运行短期操作的一种方法。任务的典型示例是运行数据库迁移。任务还可以与cron
或某些调度程序结合使用,以运行定期批处理作业或其他计划任务。
我提到任务的原因是因为虽然任务与应用程序相关联(它们共享相同的droplet),但它们独立于实际应用程序运行,因此如果应用程序启动,停止或崩溃并不重要。只要应用程序已暂存,您就可以运行任务。
希望有所帮助!