Фильтр API Azure Ratecard по примеру валюты - PullRequest
0 голосов
/ 25 марта 2019

Я хочу получить цену ресурса в соответствии с его использованием, для этого я пытаюсь azure ratecard API.Я использую Python SDK, предоставляемые Azure, и вот ссылка на API Azure Ratecard https://docs.microsoft.com/en-us/python/api/azure-mgmt-commerce/azure.mgmt.commerce.operations.ratecardoperations?view=azure-python

Проблема в том, что нам нужно передать фильтр в качестве аргумента, но я не знаю, как передать значения в фильтре.Я знаю, что мы можем использовать идентификатор фильтра, валюту, языковой стандарт, регион для фильтра, но как использовать их в API карты показателей?

Вот что я пытаюсь

from azure.mgmt.commerce import UsageManagementClient

ratecardclient = UsageManagementClient(credentials, subscription_id)
ratecard = ratecardclient.rate_card.get(filter=???)

Что я пробовал в фильтре

ratecard = ratecardclient.rate_card.get("OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")

ratecard = ratecardclient.rate_card.get(filter="OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")

Ошибка, которую я получаю от фильтров выше

Traceback (most recent call last):
  File "C:/Users/gsc/PycharmProjects/GsGit_Azure_cot/Azure/ADALAuth.py", line 375, in <module>
    ratecard = ratecardclient.rate_card.get("OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")
  File "C:\Users\gsc-30310\PycharmProjects\env_python3.6.8_v1\lib\site-packages\azure\mgmt\commerce\operations\rate_card_operations.py", line 94, in get
    raise models.ErrorResponseException(self._deserialize, response)
azure.mgmt.commerce.models.error_response.ErrorResponseException: Operation returned an invalid status code 'Bad Request'

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Из объединений:

    # OfferDurableID: https://azure.microsoft.com/en-us/support/legal/offer-details/
    rate = self.commerce_client.rate_card.get(
        "OfferDurableId eq 'MS-AZR-0062P' and Currency eq 'USD' and Locale eq 'en-US' and RegionInfo eq 'US'"
    )

https://github.com/Azure/azure-sdk-for-python/blob/master/azure-mgmt-commerce/tests/test_mgmt_commerce.py

1 голос
/ 25 марта 2019

Я не пробовал, но, глядя на документацию и source code, я считаю, что вам нужно будет указать строку фильтра OData. Пожалуйста, попробуйте что-то вроде строки фильтра:

OfferDurableId eq '{OfferDurableId}' and Currency eq '{Currency}' and Locale eq '{Locale}' and RegionInfo eq '{RegionInfo}'

Итак, ваш код будет:

from azure.mgmt.commerce import UsageManagementClient

ratecardclient = UsageManagementClient(credentials, subscription_id)
ratecard = ratecardclient.rate_card.get(filter="OfferDurableId eq 'MS-AZR-0003p' and Currency eq 'INR' and Locale eq 'en-US' and RegionInfo eq 'US'")  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...