はじめに
3月は本業の方が忙しくブログに割ける時間があまり取れないため、軽めな内容にします。そして、今回はかなりニッチな領域なので多くの方は興味がないかと思いますが、自身の備忘も兼ねてPartner Center APIについて書き残します。
Partner Center API とは
このAPIはCSP(Azureの契約形態の一つ)でAzureを提供するCSPベンダー(Azure提供者)側が扱うAPIです。
※この記事に興味を持たれる方はおそらく同業他社ですね(笑)
何ができる?
CSPはCSPベンダーがMicrosftクラウドソリューション(Azure、M365、Dynamics365等)をユーザへリセールするしくみです。CSPベンダーは、Microsoft社に代わり顧客アカウント管理や注文、課金請求を行うことができます。通常こうした操作は『パートナーセンター』という専用ポータル上で行うことができますが、それらの操作をAPIで提供してくれるのが Partner Center API です。
Partner Center API には、C#(.NET)版、Java版、PowerShell版といった3種類のSDKが提供されています。注意点として、Java版とPowerShell版はオープンソースなのでMicrosoft社のサポートはありません。しかし、2018年頃から継続的にバージョンアップされていますので一定の信頼があり、突然開発終了ということは無いと思います。(保証はできませんが。。)
また、CSPには『Directプロバイダ』と『InDirect(間接)プロバイダ』の二種類ありますが、このAPIは『Directプロバイダ』向けに作られているものになりますので、『InDirect(間接)プロバイダ』の場合は利用できません。
使い方
ここからは、PowerShell版の導入について説明します。インストール方法は一般的なPowerShellモジュールのインストールと同じく、Install-Moduleコマンドを実行するだけです。
Install-Module -Name PartnerCenter
インストールが終ったら、パートナーセンターにログオンしてみましょう。
Connect-PatnerCenter
ブラウザが起動しますので、CSP管理用アカウント/パスワード入力、そしてMFA(設定していれば)の承認が完了すれば、サインインが完了します。
(注意!)開発時は統合サンドボックスアカウントを使う
このAPIは、誤って実行するとユーザが意図しない注文や請求を発生させてしまうという少々危険なAPIです。そのため、開発時には『統合サンドボックスアカウント』というテストアカウントを使い統合サンドボックスの中でテストを行うことができます。このアカウントを使って発生させた注文や請求は記録に残るものの実際に注文や請求が発生することはありません。
利用シナリオ
このAPIを使えば、CSPに関連する様々な操作が行えますので、独自のCRMシステムを開発し、顧客管理・請求管理といった操作をより使いやすくカスタマイズすることもできますし、顧客の利用状況を可視化・分析するツールに適用することも可能です。こういった様々なシナリオに対してどのようなAPIを使えばよいかをまとめたサイトがありますのでご参考ください。
私流の使い方
私はこのAPIをがっつり使って顧客管理や注文・請求を行うようなことはしていません。ただ、利用状況の可視化には便利だと思います。Get系の関数であればユーザに迷惑をかけるような事故を起こすことはありませんので、そういったAPIはよく使います。
例えば、ある月の顧客全体のAzureリソース利用状況(利用料)を見たい場合は、まず下記のコマンドで過去分の請求情報が取得できますので、対象の請求番号を取得します。
Get-PartnerInvoice
そして、以下のコマンドに対象の請求番号をセットして実行するだけです。(以下の例ではCSVに出力するようにしています。)
Get-PartnerInvoiceLineItem -BillingProvider <BillingProvider> -CurrencyCode USD -InvoiceId <請求番号> -LineItemType BillingLineItems | Export-Csv -Path <保存パス> -Encoding Default
BillingProviderについても「Get-PartnerInvoice」から請求番号と共に取得できますので、それをセットしましょう。詳しくは下記リファレンスを参照してください。
出力したCSVをデータソースとして、ExcelやPowerBIに食わせることで簡単にレポートに作成ができます。以下の例ではPowerBIを使って簡単な利用状況を可視化しています。(顧客情報を含むので大部分マスクさせてください。)一度レポートを作ってしまえば、以降は別の月の請求番号を食わせてやれば、その月のレポートが同じように作成できますので便利ですね。
おわりに
今回はPartner Center APIの簡単な使い方について紹介しました。普段あまり目にしないユーザの利用状況を改めて可視化し、そこから何かの気付きを得て、それが新たなビジネスチャンスになればいいと思っています!それではまた!