hubotと戯れてみる #7 slackとhubotでAWSを操作する。EC2の状態を取得する

hubotと戯れてみる #7 slackとhubotでAWSを操作する。EC2の状態を取得する

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

slackからhubot経由でAWSを操作するシリーズ2回目。
前回は、AWS cliの準備までを説明しました。

今回は、slackからhubot経由でEC2の状態を取得するまでを実装します。

シリーズ目次

#6  slackとhubotでAWSを操作するための準備 
#7  slackとhubotでAWSを操作する。EC2の状態を取得する ← 今ここ
#8  slackとhubotでAWSを操作する。EC2の起動・停止を行う
#9  slackとhubotでAWSを操作する。ELBの起動・停止を行う
#10 slackとhubotでAWSを操作する。停止していたEC2を起動しELBに登録する。

#6~#10「slackとhubotでAWSを操作する」は、動画のようになります。

EC2の状態を取得する

こんな結果になります。

1.外部ファイルを実行するためにchild_processモジュールを読み込みます。

簡単です。

2.”ec2 check”で、hubotが反応するようにします。

今までと変わりありません。簡単です。

3.hubotからコマンドを実行する前にコマンドの説明

実行するコマンドの説明です。長いですが行っていることは簡単です。

aws ec2 describe-instancesコマンドは、EC2の状態を取得できるコマンドです。

以下オプション

AWSにあるEC2でタグキーがxxxxでタグ値がxxxxと指定しているEC2に絞り込んでいます。うまくタグを利用する事によりhubot側でEC2のリストを持たなくて良くなります。

AWSコマンドの結果は、JSON形式で取得できますが、必要の無い情報がたくさんあるので–queryオプションにより結果を絞り込んでいます。
今回は、インスタンスIDとステータスをEC2の台数分取得するように指定しています。

※一度オプション–filter –queryを付けずに直接実行してみると良いかと思います。

4.hubotからコマンドを実行します。

child_process.execでコマンドを実行することにします。

child_process.execは非同期通信で、結果が返ってくると3つの値とともにコールバックされます。

まずエラーを確認して、次にstdoutにAWSコマンドの結果が入っているためそちらをJSONパースして、後はお好きなようにという感じです。

hubotからAWSコマンドを実行し、結果をslackに渡す感覚がつかめたかと思います。他のコマンドも同じようにできますのでアイディア次第で色々できるはずです。簡単です。

最後に

slackからEC2の起動と停止のデモを披露しました。そこそこ受けたのではと思います。

こちらの動画と同様なことをしたのですが営業の方たちは、こういった技術のかけらみたいなもののデモに普段接していないようで、新鮮に映ったらしいです。

もっとこういう機会があったらと思いました。

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

【週刊bitWave】(メルマガ)始めました!

登録はこちらからメールアドレスを入力してお申込みください。

ご登録いただいたメールアドレスは 【週刊bitWave】の更新情報の配信にのみ使用します。

個人情報の取扱いに関しては、「プライバシーポリシー」をご確認ください。解除はいつでもこちらから行うことが可能です。

あなたにおすすめ

仮想環境で『Ansible』を使ってサーバ構築... 最近、サーバ構築を実施する必要がありました。 まずは仮想環境を作り、サーバ構築を……と思ったのですが、私はインフラ周りの経験が浅く、色々困ったことが頻出してしまいました。 今回の記事では、私と同じような “サーバ構築ビギナー” ...
「Puppeteer」+「LINE Notify」でサイトの更新時のみ通知を受け取ってみる... 前回の記事では閲覧数向上が期待できそうなキーワードの「Puppeteer」と「LINE Notify」のそれぞれの解説、およびサイトのサムネイルを通知してみるといった試みを実施してみました。 <bitWave関連記事『「Puppeteer...
Vue.jsで社用登録データフォームを作ってみた... 今回は社内用データ登録フォームを作ろうと思い、初めて「Vue.js」を試してみることにしました。 「Vue.js」は使い方、書き方も簡単で、初心者もすぐ活用できるjsだと思いましたので、この場を借りて共有させていただきます。 なお、...
「Puppeteer」+「LINE Notify」でサイトのサムネイルを通知してみる... 今回は記事閲覧数が期待できそうなキーワードを用いて、ブログを書いてみようかと思います。 そのキーワードとは…… 「Puppeteer」と「LINE Notify」。 「Puppeteer」って何? 「LINE Notify」って...