こんにちは!FJCT で nifcloud-sdk や terraform provider を開発している id:aokumasan です。
今日はニフクラ API を簡単に実行できる nifcloud-cli を Windows で使う方法について説明していこうと思います。
さて、最新の nifcloud-cli には Windows 環境向けの MSI インストーラーが GitHub の Release ページにて配布されるようになりました。
執筆時点での最新版 v1.6.0 の Release github.com
今までも Windows 環境にPython をインストールし、 pip install nifcloud-cli
というコマンドを実行することで CLI をインストールできました。
しかし、環境によって動作しなかったり、そもそも Python のインストールが必須など、使うには少しハードルが高かったと思います。
しかしこのインストーラーを使って CLI をインストールすると、PC に Python をインストールしなくても nifcloud-cli が利用できます。もちろん従来どおり pip 経由でのインストールも可能です。
そこで今回は実際に Windows 環境へインストーラーを使って nifcloud-cli をインストールし、API を実行する例を紹介できればと思います。
今回の環境
今回の記事で使用している環境は下記になります。
- Windows 10
- nifcloud-cli v1.6.0
認証情報の取得
ニフクラ API を実行するには、認証情報が必要です。 認証情報はコントロールパネルから取得できます。
まず、コントロールパネル上部の「アカウント名」→「アカウント管理」をクリックします。
ログインアカウントの認証情報を使っても良いですが、ここではあえて新規でマルチアカウントを作成し、マルチアカウントを使って CLI を試してみることにします。 マルチアカウントを利用すれば実行できる操作を絞ったアカウントを発行できるので、万が一パスワードやシークレットアクセスキーが漏洩して悪用された場合でも、攻撃者が行える操作を限定できます。 また、アカウントが不要であればコントロールパネルから簡単に削除できます。
「アカウント作成」をクリックし、必要事項を入力して新規マルチアカウントを作成します。
- アカウント名:
nifcloudcli
(何でもよいですが一例として) - パスワード: 任意のパスワードを入力
- 権限: 閲覧者権限 (CLIで操作したいことに合わせて適宜設定してください。本記事では閲覧操作しかしないため、閲覧権限にしています)
アカウントが作成できたら、作成したアカウントの認証情報を取得します。
アカウント一覧から nifcloudcli
の詳細を開くと、アクセスキーとシークレットアクセスキーを取得できます。
それぞれの値を確認しておきます。
※これらのキーは機密情報になります。取り扱いには注意してください。
nifcloud-cli のインストール
では、早速インストーラを使って nifcloud-cli をインストールしてみましょう。
まずGitHub の Release ページから、最新版の MSI インストーラーをダウンロードします。
ダウンロードできたら、インストーラーを実行して nifcloud-cli をインストールします。 ウィザードに従ってインストールを進め、下記の画面になればインストールは完了です。
インストールできたら、実際にコマンドプロンプトから nifcloud-cli コマンドが使えるか確認してみましょう。
C:\>nifcloud --version nifcloud-cli/1.6.0 Python/3.9.13 Windows/10 botocore/1.21.43
--version
オプションを指定して、上記のようにバージョン情報が返却されれば正しくインストールできています。
認証情報の設定
次に API を実行する際に使う、認証情報の設定をします。 nifcloud-cli に認証情報を設定する方法は 2 種類あります。
- 環境変数に設定する
nifcloud configure
コマンドを使う
環境変数に設定する方法
下記 3 つの環境変数を設定します。 この方法は主に一時的に CLI を使いたい場合などに有効です。
NIFCLOUD_DEFAULT_REGION
jp-east-1
などのリージョンを指定します
NIFCLOUD_ACCESS_KEY_ID
- 先程取得したアクセスキーを設定します
NIFCLOUD_SECRET_ACCESS_KEY
- 先程取得したシークレットアクセスキーを指定します
具体的には次のように設定します。
- コマンドプロンプトの場合
C:\> set NIFCLOUD_DEFAULT_REGION=jp-east-1 C:\> set NIFCLOUD_ACCESS_KEY_ID=<先程取得したアクセスキー> C:\> set NIFCLOUD_SECRET_ACCESS_KEY=<先程取得したシークレットアクセスキー>
- PowerShell の場合
PS C:\> $env:NIFCLOUD_DEFAULT_REGION="jp-east-1" PS C:\> $env:NIFCLOUD_ACCESS_KEY_ID="<先程取得したアクセスキー>" PS C:\> $env:NIFCLOUD_SECRET_ACCESS_KEY="<先程取得したシークレットアクセスキー>"
nifcloud configure
コマンドを使う方法
nifcloud configure
コマンドを使うことによって、認証情報をファイルへ永続化できます。
これにより、頻繁に CLI を利用する場合には都度、認証情報を設定せずに済むため便利です。
nifcloud configure
コマンドは次のように使います。
C:\> nifcloud configure NIFCLOUD Access Key ID [None]: <先程取得したアクセスキー> NIFCLOUD Secret Access Key [None]: <先程取得したシークレットアクセスキー> Default region name [None]: jp-east-1 Default output format [None]:
これらの設定は %UserProfile%
配下の .nifcloud
ディレクトリ内に保存されます。
余談ですが、 Default output format
には現在 json
, table
, text
が指定可能です。これらの設定をすると CLI の出力表示が変化します。
CLI 使用時に --output
オプションで指定も可能です。
- json: JSON 形式 (デフォルト)
- table: 表形式
- text: タブ区切りの文字列
CLI から API を実行してみよう
ここまで来れば、 nifcloud-cli を使う準備は整っています。 試しにコンピューティング機能の API DescribeRegions を実行してみましょう。 この API はユーザーが利用可能なリージョン一覧を取得できます。
C:\> nifcloud computing describe-regions { "RegionInfo": [ { "IsDefault": true, "MessageSet": [ {} ], "RegionEndpoint": "jp-east-1.computing.api.nifcloud.com", "RegionName": "east-1" }, { "IsDefault": false, "MessageSet": [ {} ], "RegionEndpoint": "jp-east-2.computing.api.nifcloud.com", "RegionName": "east-2" }, { "IsDefault": false, "MessageSet": [ {} ], "RegionEndpoint": "jp-east-3.computing.api.nifcloud.com", "RegionName": "east-3" }, { "IsDefault": false, "MessageSet": [ {} ], "RegionEndpoint": "jp-east-4.computing.api.nifcloud.com", "RegionName": "jp-east-4" }, { "IsDefault": false, "MessageSet": [ {} ], "RegionEndpoint": "jp-west-1.computing.api.nifcloud.com", "RegionName": "west-1" }, { "IsDefault": false, "MessageSet": [ {} ], "RegionEndpoint": "jp-west-2.computing.api.nifcloud.com", "RegionName": "jp-west-2" } ], "RequestId": "ac381df5-93dc-411c-b09d-40d48b7944d7" }
このように API を実行した結果が表示されました 🎉
他にも様々な API を実行できます。
利用可能な help
コマンドで確認するか、ドキュメントをご確認ください。
- help コマンド
C:\> nifcloud help # nifcloud-cli で利用可能なサービスのヘルプ C:\> nifcloud computing help # コンピューティング機能で利用可能な API の一覧 C:\> nifcloud computing describe-instances help # コンピューティングの DescribeInstances API の実行に関するヘルプ
- ドキュメント: nifcloud-cli.readthedocs.io
コラム: プロファイル機能
nifcloud
コマンド実行時に --profile
オプションを使うことで、複数の認証情報をプロファイルとして使い分けることも可能です。
user-a
というプロファイルで認証情報を登録
C:\> nifcloud --profile user-a configure
user-a
プロファイルで API を実行
C:\> nifcloud --profile user-a computing describe-instances
まとめ
今回は、 nifcloud-cli を Windows 環境で動かす方法について説明しました。
nifcloud-cli を活用することにより、繰り返し処理や定期的な処理の実行など、さまざまな自動化が実現しやすくなります。
ぜひ、みなさんも手元の PC で試して、自動化のアイデアをどんどん膨らませていきましょう!