Bluemix API для получения учетных данных службы

В предыдущем вопросе я мог получить apiKey для взаимодействия с API управления MessageHub.

Я не привязываю этот сервис к приложению Bluemix, поэтому у меня нет доступа к переменной окружения VCAP_SERVICES в моем приложении.

Я хотел бы получить учетные данные службы программно. Я думаю, что это может быть общий вопрос Bluemix cf api, а не вопрос MessageHub.

Как я могу получить учетные данные службы с помощью вызова API?

2 ответа

Решение

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()))

К сожалению, поскольку BlueMix работает с версией Cloud Foundry, которая устарела на 6 месяцев, вы не можете использовать конечную точку List Service Keys.

Ваша единственная альтернатива - привязать его к какому-либо приложению (может быть, даже к реальному приложению), чтобы извлечь учетные данные.

Существует аргумент, что люди, нуждающиеся в учетных данных для службы, являются анти-паттерном, но существует множество вариантов использования, где это необходимо.

Другие вопросы по тегам