javascriptでAWSのAPIを叩くために「AWS SDK for JavaScript」を使用します。
まずはnodejsとaws-sdkをインストールします。
$ sudo yum install nodejs npm --enablerepo=epel $ sudo npm install -g aws-sdk
続いてAPIを叩くスクリプトを作成します。
今回は起動中のEC2インスタンスを表示するスクリプトを作成します。
$ vi getInstances.js
var AWS = require("aws-sdk"); AWS.config.loadFromPath("./credentials.json"); AWS.config.update({region: 'ap-northeast-1'}); var ec2 = new AWS.EC2(); var params = { Filters: [ { Name: 'instance-state-name', Values: ['running'] },] }; ec2.describeInstances(params, function (err, data) { if (err) { console.log(err, err.stack); } else { for (var i in data.Reservations) { for (var j in data.Reservations[i].Instances[0].Tags) { if (data.Reservations[i].Instances[0].Tags[j].Key == 'Name') { console.log(data.Reservations[i].Instances[0].Tags[j].Value); } } } } });
上記のスクリプトではクレデンシャル情報を別ファイルとして読み込んでいます。
このクレデンシャルファイルを作成します。
$ vi credentials.json
{"accessKeyId": "AKIXXXXXXXXXXXXXXXXX", "secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}
ここまでで準備が整いました。
nodeコマンドでjavascriptを実行します。
$ node getInstance.js
アクセスキーで指定したアカウントの起動中インスタンス名が表示されます。
今回はチャットボットを作成する下準備としてサーバ上にjavascript実行環境を作成しました。
チャットボットについてはサイト内のwikiに情報をまとめていきますがその周辺の情報は記事として投稿します。