1

私は Azure チャージバック ソリューションを構築しており、そのために複数のサブスクリプションと異なる日付について Azure Billing REST API から Azure 使用状況データを取得しています。顧客の要件に従って、これをカスタム MS SQL データベースに保存する必要があります。Azure からさまざまな使用記録を取得します。

  • 問題:これらの使用状況レコードから、特定のサブスクリプションおよび特定の日付の使用状況レコードを識別するための一意のキーを提供する、受け取ったデータ内の列の組み合わせを見つけることができません。私が異なると思う唯一の列は数量ですが、それでも複製することができます。たとえば、タイプ A1 の 2 つの VM があり、それらにデータやアプリケーションがなく、同じクラウド サービス内にある場合、それらの使用量は正確になります。使用 API を介して VM やその他のリソースの正確な名前を取得できません。
  • 1 つのカスタム ソリューション (無効):カウンターまたは一意の ID を使用記録に追加できますが、次回データを取得すると、注文がシャッフルしたり、新しいデータが導入されたりして、一意性のロジックに影響を与える可能性があります。DB に欠落しているデータがないかどうかをチェックするために構築したロジックは、(特定の日付の特定のサブスクリプションに対して) 使用状況レコードが返される順序に変更があると、バグが発生します。

Microsoft がこのデータを何らかのデータベースに保存していると確信しています。Billing API から返された多くのレコードから使用レコードを識別するための一意の ID が見つかりません。多分私はここで何かを逃しています。

これに関する助けや指針をいただければ幸いです。

4

1 に答える 1

0

Usage API を呼び出すときは、ShowDetails パラメータを true に設定します。 &showDetails=true

MSDN ドキュメント

これにより、返された JSON のインスタンス データに、次のような名前を含むリソースの一意の URI が入力されます。

Webサイト:

"instanceData": "{\"Microsoft.Resources\":{\"resourceUri\":\"/subscriptions/xxx-xxxx/resourceGroups/mygoup/providers/Microsoft.Web/sites/WebsiteName\",\"...

仮想マシン:

"instanceData": "{\"Microsoft.Resources\":{\"resourceUri\":\"/subscriptions/xxx-xxxx/resourceGroups/TESTINGBillGroup/providers/Microsoft.Compute/virtualMachines/TestingBillVM\",\...

ShowDetails が false の場合、リソース タイプに基づいてサーバー側ですべてのリソースが集約され、すべての Web サイトが 1 つのエントリとして表示されます。

私が知る限り、リソース URI、日付範囲、およびメーター ID は一意のキーを形成します。

注: レガシー API を使用している場合、VM はそれらをホストするクラウド サービスの下に集約されます。

于 2016-02-26T00:36:16.270 に答える