【问题标题】:Credentials for Services changed while app was running应用程序运行时更改了服务的凭据
【发布时间】:2016-01-19 01:51:24
【问题描述】:

VCAP_SERVICES 的凭据(api 密钥/用户名/密码)是否可以在应用程序运行时更改?
我看到绑定到我的 node.js 应用程序的 2 个服务(消息中心和 sendgrid)在部署后不久(大约 2 小时)更改了凭据,结果我与这些服务的所有连接都失败了,因为我有在应用程序启动时将凭据存储到变量中。 以前有没有其他人发生过?这正常吗?处理这种情况的最佳方法是什么?

【问题讨论】:

    标签: ibm-cloud message-hub


    【解决方案1】:

    如果您解除应用程序与消息中心的绑定、删除并重新创建消息中心实例,或者删除并重新创建应用程序实例,则 VCAP_SERVICES 中的凭据可能会发生变化。

    由于 VCAP_SERVICES 是一个环境变量,因此它在特定应用程序的生命周期内无法更改。即使您重新暂存应用程序,VCAP_SERVICES 也不应更改。这是因为该值是在应用程序与服务关联的时间点设置的(例如,当您在 Bluemix API 中说“使用此服务”时)。

    【讨论】:

    • 感谢@Rajini 的回复。你说的是真的,当消息集线器停止导致凭据更改时,我重新部署了应用程序。但我仍然看到消息集线器在 2-4 小时后停止,我必须重新部署应用程序来修复它。可能我会在这个问题上启动一个不同的线程,但是除了 Bluemix 文档之外,还有其他消息集线器示例吗?
    • ...尤其是生产者和消费者在不同的应用程序上?
    【解决方案2】:

    我以前不知道发生这种情况。是否有可能有人手动更改某些内容或重新创建服务?

    【讨论】:

    • 使用 message-hub,每次重新部署节点应用程序时,凭据都会有所不同。是不是因为在部署过程中服务未绑定并重新绑定到应用程序? CloudantDB 不会发生这种情况,它也绑定到同一个应用程序,类似地。
    • 您的重新部署是否使用无路由选项?如果不是,这可能是导致问题的原因 - 每次重新部署都会生成不同的路由?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2015-09-06
    • 2012-09-16
    相关资源
    最近更新 更多