コマンドでSAP BTPを管理する~SAP HANA Cloudインスタンス作成、使用料金確認~
2022年8月29日
INDEX
はじめに
SAP Business Technology Platform(以下 SAP BTP)で、サブアカウントの管理やサービスの管理操作をウェブブラウザーからSAP BTPコックピットにログインして操作します。
いわゆるGUI画面から行うことが多いと思いますが、今回はCLIでSAP BTPから使用料金の抽出方法をご紹介します。
今回使用するツールのご紹介
SAP BTP CLIとは
SAP BTP CLIは、SAP BTPのサブアカウントの作成や更新、権限の管理、およびサービスブローカとプラットフォームの操作などアカウント管理タスクにおいてSAP BTP コックピットを代替する方法です。
コマンドラインベースのツールのため、ターミナルによる操作やスクリプト化に向いています。
Cloud Foundry CLIとは
Cloud Foundry CLI(以下 CF CLI)はCloud Foundryのオフィシャルコマンドラインツールです。コマンドラインを使ってCloud Foundry環境のアプリ、サービスインスタンス、オーガニゼーション、スペース、ユーザ等を管理できます。
SAP BTP Usage Data Management Service REST APIとは
SAP Usage Data Management Service for SAP BTPはSAP BTPのアプリケーションやサービスのリソース消費状況、使用料金のレポーティングサービスです。月別の使用量、サブアカウントの日別使用量、サブアカウント月別の使用料金(CPEAライセンスのみ)が確認できます。
REST API(Feature Set Bのみ使用可能)も提供されているため、定期的に情報を収集するように自動化することも可能です。
手順方法について
1.準備作業
クライアント端末のOSに合わせて、SAP BTP CLIとCF CLIをダウンロードし、インストールします。ここではWindows版を使用していますが、インストール手順は割愛します。
2.CF CLIでSAP HANA Cloudインスタンスを作成する
SAP BTPトライアルアカウントを使用し、Cloud Foundry環境を準備して開始します。
ステップ1.Cloud Foundry環境にログインします
cf8 login –u <user名> -p <パスワード> -a <CF API Endpoint>
※本検証ではCF CLI v8を使用しておりcfコマンドはすべてcf8と表示しています。
ステップ2.SAP HANAインスタンスを作るためのサービスオファリングとプランがあるかをチェックします
cf8 m
トライアル環境では下記赤枠が該当します。
ステップ3.jsonファイルを書きます
メモリサイズ、ストレージ、ホワイトIPリスト、レプリカー等インスタンスをどう作成するかのパラメータをjsonファイルに指定します。cfコマンドを実行するとjsonファイルを読み取り、その通りにSAP HANA Cloudインスタンスを作成します。
本検証ではパスワード、メモリサイズ、ストレージサイズのみ指定します。
ステップ4.インスタンスを作成します
cf8 create-service <サービスオファリング名> <プラン名> <インスタンス名> -c <jsonファイル>
コマンド実行が成功したら「OK」が表示され、インスタンス作成まで数分かかります。
ステップ5.インスタンス作成状況をモニタリングします
cf8 services
SAP BTPコックピットからも確認します。
3.SAP BTP CLIでUsage Data Management Serviceのインスタンスを作成する
"2.CF CLIでSAP HANA Cloudインスタンスを作成する"で使ったトライアルアカウントを引き続き使用します。
ステップ1.SAP BTP環境にログインします
詳細説明は下記のブログに記載がありここでは割愛します。
- Get Started with the SAP BTP Command Line Interface (btp CLI) SAP社のSAP Tutorials for Developersのページ内記事にリンクします
btp --infoで確認します。
ステップ2.サブアカウント情報を確認します
サブアカウントIDは後続の手順で使うのでメモしておきます。
btp list accounts/subaccount
ステップ3.Usage Data Managementのインスタンスを作成します
btp create services/instance --subaccount <サブアカウントID> --service <ユーザが指定するサービス名> --offering-name <Usage Data Managementのサービスオファリング名> --plan-name < Usage Data Managementサービスのプラン名>
サービスオファリング名とプラン名の確認方法は下記です。
btp list services/offering --subaccount <サブアカウントID>
btp list services/plan --subaccount <サブアカウントID>
SAP BTPコックピットからも確認します。
4. SAP BTP Usage Data Management Service REST APIでSAP BTPコストをモニタリングする
ステップ1.サービスキーを作成します
作成したキーを確認します。
ステップ2.curlでインスタンスのアクセストークンをリクエストします
curl -L -X POST “
access_tokenの部分にトークンが返してきます。これを使ってUsage Data Management REST APIにリクエストします。
ステップ3.SAP BTP環境の月額使用料金を確認します
curlコマンドで2022年8月分を確認する場合は下記のように指定します。
curl -X GET "<target_url>/reports/v1/monthlySubaccountsCost?fromDate=202208&toDate=202208" -H "accept: application/json" -H "authorization: Bearer <access_token>"
ただ、curlで確認した結果を少し工夫しないと見にくいです。ここではPythonのrequestsを使ってリクエストした結果を、データフレームに入れて見やすいよう整形しています。
REST APIなのでhttp経由でリクエスト結果を出力すると、様々な言語やツールで加工や自動化が可能です。
最後に
これらのツールやサービスを使えば、SAP BTPの開発・管理作業はSAP BTPコックピットでの能動的な目視ではなく、スクリプトにより自動化ができます。最初はリファレンスを確認しながら、トライアンドエラーすると思いますので少し時間がかかるかもしれませんが、作業効率の向上や作業品質の確保等につながります。
参考
- SAP BTP CLIドキュメント SAP社のHelp Portal (Documentation)のページ内記事にリンクします
- Cloud Foundry CLIドキュメント Cloud Foundry Documentationのページ内記事にリンクします
- Monitoring Usage Information Using APIs of the SAP Usage Data Management Service SAP社のHelp Portal (Documentation)のページ内記事にリンクします
- SAP BTP CLIダウンロード SAP社のDevelopment Toolsのページ内記事にリンクします
- CF CLIダウンロード GitHubのページ内記事にリンクします