TECH

CloudGarage Public APIを使ったNode.js SDK(非公式)を開発しています

TECH
中津川 篤司

CloudGarageもPublic APIが公開されたことで、処理の自動化や外部ツールと組み合わせた操作が可能になります。しかしAPIをHTTPクライアントで利用するのは大変です。そこでSDKが必要になります。

様々な言語で用意されているのが望ましいですが、まずは非公式ながらNode.jsで作り始めてみました。徐々に機能を追加していきたいと思います。

インストール

インストールは npm で行います。cloudgarage – npmにてパッケージを公開しています。

$ npm i cloudgarage -g

使い方

まず必ずトークンを取得しないといけません。そのため、あらかじめコントロールパネル | CloudGarageにてAPIのクライアントIDとクライアントシークレットを取得しておきます。

クライアントIDとクライアントシークレットを取得したら、以下のコマンドを入力します。

$ cloudgarage token

そうすると対話型でクライアントIDとクライアントシークレットを指定します。デフォルトで .cloudgarage.json というファイルをホームディレクトリ直下に作成します。

$ node_modules/.bin/cloudgarage token
✔ What is your client ID? … ylk...t1P
✔ What is your client secret? … iIG...oUo
Write configuration to ~/.cloudgarage.json
Done

ヘルプは以下のようになっており、クライアントIDとクライアントシークレットをオプションとして指定もできます。

$ cloudgarage help token
Usage: cloudgarage-token [options]

Options:
  -i, --id [clientId]            This is Client Id that you can get it on Dashboard at CloudGarage
  -s, --secret [clientSecret]    This is Client Secret that you can get it on Dashboard at CloudGarage
  -o, --output [configFilePath]  Output config file path. Default is ~/.cloudgarage.json (default: "~/.cloudgarage.json")
  -h, --help                     output usage information

ディスクイメージの取得

執筆時点ではディスクイメージの取得しかありません。これは images コマンドで行います。

$ cloudgarage images

このコマンドで作成されているバックアップイメージを含め、ディスクイメージが一覧で返ってきます。

$ cloudgarage images
┌─────────┬────────────────────────────────────────┬───────────────┬──────────────────────────────────┐
│ (index) │                   Id                   │     Type      │               Name               │
├─────────┼────────────────────────────────────────┼───────────────┼──────────────────────────────────┤
│    0    │ '38b60dd1-e374-44ef-b58e-9beaeabf0eaa' │     'OS'      │       'CentOS-6.10-32bit'        │
│    1    │ 'b1e41e1c-1410-4880-aa33-9c83154d3571' │     'OS'      │       'CentOS-6.10-64bit'        │
│   26    │ '38625780-5355-4da5-918f-2bd12abef9b7' │ 'APPLICATION' │   'Redmine/Ubuntu-16.04-64bit'   │
│   27    │ '7761c7de-47a6-47a9-83de-3e6bf57f71b1' │ 'APPLICATION' │  'WordPress/Ubuntu-16.04-64bit'  │
└─────────┴────────────────────────────────────────┴───────────────┴──────────────────────────────────┘

-t または --type でディスク種別をフィルタリングできます。指定できるのは OS / APPLICATION / PRIVATEの3つです。他のオプションは以下の通りです。

$ cloudgarage help images
Usage: cloudgarage-images [options]

Options:
  -c, --config [configFilePath]  Config file path. Default is ~/.cloudgarage.json (default: "~/.cloudgarage.json")
  -t, --type [type]              Filtering image type. [OS, APPLICATION, PRIVATE]
  -h, --help                     output usage information

まとめ

機能的にはまだ多くありませんが、徐々にバージョンアップしていきます。リポジトリはCloudGarageMania/node-js: CloudGarage SDK for Node.jsにありますので、不具合や優先して欲しい機能などがありましたらぜひIssueにてお願いします。なお、当SDKのライセンスはMITとなっています。

この記事を書いた人

中津川 篤司

株式会社MOONGIFT 代表取締役。CloudGarage、ニフクラ mobile backend、hifive エバンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。 Twitter:@goofmint | GitHub:@goofmint | Facebook: goofmint

この記事のタグ

オススメの記事

ページトップへ