Подключение к Service Fabric с использованием Python SDK и сертификата - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь использовать Python SDK для Service Fabric, чтобы получить список типов приложений из кластера.

В кластере не включена поддержка Azure AD, поэтому в powershell я подключаюсь к нему с помощью сертификата.

Я не уверен, как это сделать с python.

У меня есть разрешения владельца на подписку, и я использую правильную учетную запись SPN для получения информации, других операций python в группе ресурсов илиобъект кластера возвращает мне выходные данные.

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.servicefabric import ServiceFabricManagementClient

tenant_id = os.environ['AZURE_TENANT']
spn_client_id = os.environ['AZURE_CLIENT']
spn_secret = os.environ['AZURE_SECRET']
sub_id = 'some-subscription-id'

credentials = ServicePrincipalCredentials(
    client_id = spn_client_id,
    secret = spn_secret,
    tenant = tenant_id
)

sf_client = ServiceFabricManagementClient(credentials, sub_id)
sf_api_client = ServiceFabricClientAPIs(credentials, sub_id)

Этот код работает:

sf_client.clusters.get('some-rg-name', 'some-cluster-name')

Поскольку у меня есть разрешения на подписку, поэтому Azure Api возвращает значения.

Проверкаприложения в кластере - это другое дело, я не могу перечислить типы приложений, например, такой код:

sf_client.application_type.list('some-rg-name', 'some-cluster-name')

1 Ответ

0 голосов
/ 21 октября 2019

Это не относится к разрешению, роли Owner достаточно.

Произошла ошибка с вашим кодом, это должно быть sf_client.application_types.list, а не sf_client.application_type.list, это работает на моей стороне.

apptype = sf_client.application_types.list('some-rg-name', 'some-cluster-name')
print(apptype)

enter image description here


Помимо , если в результате вы получите 'value': [], это также означаетуспех только потому, что в вашем кластере нет ресурса application type. Вы можете проверить результат с помощью этого API REST Application Types - List первым.

Обновление :

Используйте этот API Application Types - Create Or Update, чтобы создать новый тип приложения, укажите параметры и тело запроса должно выглядеть следующим образом:

{
  "location": "eastus",
  "tags": {}
}

Снимок экрана:

enter image description here

Ответ:

enter image description here

Затем используйте этот API Application Types - List или sf_client.application_types.list('some-rg-name', 'some-cluster-name') для отображения типов приложений.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...