1

Billing API を使用して Microsoft の Azure の料金表をダウンロードするために、Python で簡単なスクリプト (と思われるもの) を作成しようとしています。

token_response = adal.acquire_token_with_client_credentials(
'https://login.microsoftonline.com/' + TENANT_ID,
CLIENT-ID,
CLIENT-KEY)

access_token = token_response.get('accessToken')

endpoint = "https://management.azure.com/subscriptions/[SUBSCRIPTION-ID]/providers/Microsoft.Commerce/RateCard?api-version=2015-06-01-preview&$filter=OfferDurableId eq 'MS-AZR-0003P' and Currency eq 'GBP' and Locale eq 'en-GB' and RegionInfo eq 'GB'"
headers = {"Authorization": 'Bearer ' + access_token}

out = requests.get(endpoint,headers=headers)

json_output = out.json()
print son_output

クエリは正しく実行されているようです。認証は問題ないようで、200 OK メッセージの応答が返ってきました。しかし、出力は空です: {u'value': []}。さまざまなオファー ID、さまざまな $filter 文字列を試しましたが、今では気が狂いそうです...

適切なアクセス許可を委任していないのではないかと思いますが、Active Directory にアタッチされたアプリケーションを作成し、キーを生成して、Windows Azure Service Management にアクセス許可を委任しましたか? それが問題だった場合、エラーは表示されませんか?

同じことを行う別の方法を聞いてうれしいですが、私が本当に知っているのはPythonだけです...

4

1 に答える 1

2

Billing and Usage API を操作するために使用しているユーザー アカウントが、Azure サブスクリプションにアクセスできることを確認してください。あなたの場合、を使用しているService Principalため、このユーザーにサブスクリプションの役割が割り当てられていることを確認してください。

役割を割り当てるには、 httpsService Principal ://azure.microsoft.com/en-in/documentation/articles/resource-group-create-service-principal-portal/ のリンクが役立つ場合があります。

ロールの割り当てに関しては、このユーザーはデータを読み取るだけでよいためReader、Azure サブスクリプションに不注意による変更が加えられないように、ロールを使用することをお勧めします。

于 2016-05-24T18:30:36.483 に答える