##はじめに
サービスを運用していると、ビルド用サーバの自動起動や、アプリケーションサーバのイメージの自動構築をしたくなります。そこでさくらのクラウドのAPIを使ってそれを実現しようと思います。
とりあえず今回は、APIを使うのが初めてなので、「さくらのクラウドの東京第1ゾーンにあるサーバの名前リストを出す」という簡単なプログラムを書いてみようと思います。さくらのクラウドのAPIの利用には、Node.JS用のSDKを利用します。
sacloud : https://github.com/sakura-internet/node-sacloud
##やり方
まず、さくらのクラウドのコンソールで、APIキーを作っておきます。
sacloudをインストール(Node.JSが必要です)
npm install sacloud
適当な名前のJSファイルを作成して、さっそくプログラミングします。気をつけた点として、sacloud.API_ROOTを1.1のものにしました。東京第1ゾーンなのでzone/tk1aですね。
以下list.js
var sacloud = require('sacloud');
sacloud.API_ROOT = 'https://secure.sakura.ad.jp/cloud/zone/tk1a/api/cloud/1.1/';
var client = sacloud.createClient({
accessToken : 'access token',
accessTokenSecret : 'access token secret',
disableLocalizeKeys: false,
debug : false
});
client.createRequest({
method: 'GET',
path : 'server'
}).send(function(err, result) {
if (err) throw new Error(err);
console.log( result.response.servers.map(function(s) {return s.name;}) );
});
API_ROOTは以下を参考に設定します。
- https://secure.sakura.ad.jp/cloud/zone/tk1a/api/cloud/1.1/ (東京第1ゾーン)
- https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/ (石狩第1ゾーン)
- https://secure.sakura.ad.jp/cloud/zone/is1b/api/cloud/1.1/ (石狩第2ゾーン)
- https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/ (Sandbox)
こんな感じで、とりあえずサーバのリストを出すことができました。
次回以降で、サーバ起動→fabricで環境構築→サーバイメージの作成までできればと思います。