用于检索服务凭据的Bluemix API

时间:2016-10-29 18:08:15

标签: ibm-cloud cloudfoundry message-hub

在之前的question中,我可以使用apiKey与MessageHub管理API进行交互。

我没有将此服务绑定到Bluemix应用程序,因此我无法访问应用程序中的VCAP_SERVICES环境变量。

我想以编程方式检索服务凭据。我认为这可能是一个通用的Bluemix cf api问题而不是MessageHub问题。

如何使用API​​调用检索服务凭据?

2 个答案:

答案 0 :(得分:0)

可悲的是因为BlueMix runs a version of Cloud Foundry that is 6 months out of date,您无法使用List Service Keys端点。

您唯一的选择是将其绑定到某个应用程序(可能甚至不是真正的应用程序)来提取凭据。

有一种观点认为,需要服务凭证的人是一种反模式,但有很多用例需要它。

答案 1 :(得分:0)

https://apidocs.cloudfoundry.org/245/service_instances/list_all_service_keys_for_the_service_instance.html API对我有用。

使用cf-python-client库:

from cloudfoundry_client.client import CloudFoundryClient
target_endpoint = 'https://api.ng.bluemix.net'

client = CloudFoundryClient(target_endpoint, skip_verification=False)
client.init_with_user_credentials(
    ibm_id,
    ibm_id_password
    )

mh_service_instance = client.service_instances.get_first(name='my_service')
if mh_service_instance:
    mh_service_instance_id = mh_service_instance['metadata']['guid']
    print(mh_service_instance_id)
    print(list(mh_service_instance.service_keys()))