Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
連載:Azureモバイルサービスで作る簡単スマートフォンアプリ

連載:Azureモバイルサービスで作る簡単スマートフォンアプリ

モバイルサービス開発でコマンドラインを活用しよう!(Win/Mac/Linux対応)

2013年12月5日

Azure管理用のコマンドライン・インターフェース(CLI)を活用して、モバイル・サービス開発を効率化しよう。その活用方法を解説。

  • このエントリーをはてなブックマークに追加

 今回はアプリ開発ではなく、Microsoft Azure(旧称:Windows Azure)管理用のコマンドライン・インターフェース(以降、CLI)をご紹介する。CLIを使用することで、Azureポータル画面でマウスを使って操作するよりも効率的にAzureモバイル・サービス(以降、モバイル・サービス)の開発を進めることが可能だ。

CLIのインストール方法

 CLIはクロスプラットフォームであり、Windows、Mac、Linuxなどにインストールが可能だ。Node.js上で動作するので、理論上はNode.jsが動作する環境であれば、どのプラットフォームでも動作するはずだ。

 すでにNode.jsがインストール済みでnpm(Node Packaged Modules)が動作する環境であれば、以下コマンドにてインストールが可能だ。

コマンドライン
npm install azure-cli
Azure管理用のCLIをインストールするコマンド

 Node.jsがインストールされていなければ、WindowsではWindowsインストーラー、MacではAzure SDKインストーラーがそれぞれ用意されているので、そちらを使用してCLIをインストールしてほしい。Linuxについては、インストーラーは用意されていないので、前述のnpmを使用する必要がある。

Azureサブスクリプションを設定する

 インストール完了後、CLIを動作させるためには、Azureサブスクリプションを設定する必要がある。サブスクリプションの設定は、Windowsならばコマンドプロンプト、Macならばターミナルから下記のコマンドを実行する。

コマンドライン
azure account download
Azureサブスクリプション設定用の設定ファイルをダウンロードするコマンド

Windowsでazureコマンドにパスが通っていない場合は、OSを再起動するとよい。

 するとブラウザーが立ち上がり、Azureポータルのログイン画面が表示される。ログインすると「.publishsettings」という拡張子のファイルがダウンロードされるので、そのファイルをフルパスで指定して、下記のコマンドを実行する。

コマンドライン
azure account import "c:¥downloads¥Windows Azure <ファイル名>.publishsettings"
Azureサブスクリプションを設定するコマンド

 「info: account import command OK」というようなメッセージが表示されれば成功だ。なお、インポート後、ダウンロードした.publishsettingsファイルは不要なので、第三者に悪用されることを防ぐため速やかに削除してほしい。

 サブスクリプションが正しく設定されたかを確認するためには、次のコマンドを実行する。

コマンドライン
azure account list
サブスクリプションの設定状態を確認するコマンド

 このコマンドを実行すると、次の画面のような表示が出るはずだ。

azure account listの実行結果

【コラム】コマンドライン補完ツールのご紹介

 AzureのCLIには、入力コマンドの補完機能が用意されていないため、筆者は「azure-completion」という補完ツールを作成した。CLIと同様にnpmとして公開しており、githubにてソースを公開している

 bashに依存しているため、残念ながらWindowsでは使用できず、Macのみ動作確認をしている。インストール方法は次のコマンドを順番に実行するだけだ。問題や要望がある場合は、githubのissuesを使用してお気軽にご連絡いただきたい。

Bash
npm install azure-completion -g
 
comp-azure  --install >> ~/.bash_profile
comp-azure
sed -i -e 's/(azure/(comp-azure/' ~/.node-completion/azure
source ~/.node-completion/azure
azure-completionをインストールするためのコマンド

 なお、コマンドライン補完とは、入力途中に[Tab]キーを押下することで残りの文字が入力されたり、入力候補が提示されたりすることを表す。例えば先のazure account listでは、azuの3文字まで入力後、[Tab]キー押下することでazureと入力され、もう一度[Tab]キーを押すことでaccountが候補であることを提示してくれる。

モバイル・サービスをCLIで管理する

 今までの連載でAzureポータル上で行った操作のほとんどは、CLIを使って操作が可能だ。目的別に、各コマンドの入力例と、その実行結果を、以下に記載する。

モバイル・サービスの一覧を表示する

コマンドライン
azure mobile list
モバイル・サービスの一覧を表示するコマンド
azure mobile listの実行結果
azure mobile listの実行結果

モバイル・サービスで使用しているテーブル一覧を表示する

コマンドライン
azure mobile table list <サービス名>
モバイル・サービスで使用しているテーブル一覧を表示するコマンド
azure mobile table listの実行結果
azure mobile table listの実行結果

モバイル・サービスを自動化する

 CLIを利用することで「処理の自動化」を実現することが可能だ。例えば「毎日決まった時間にデータ一覧を取得したい」という場合は、次のコマンドをcronやタスクスケジューラーを使って実行すればよい。

Bash
azure mobile data read <サービス名> <テーブル名>
データ一覧を取得するコマンド(これをcronやタスクスケジューラーで定期実行することでモバイル・サービスに対して処理を自動化できる)
azure mobile data readの実行結果

モバイル・サービスの一覧をJSONで出力する

 また、CLIのコマンドの実行結果をJSONで出力すると、通常の出力よりも多くの情報が得られる場合がある。例えば、前述したモバイル・サービスの一覧を表示するコマンドをJSONで出力すると、次のようになる。

コマンドライン
azure mobile list --json
モバイル・サービスの一覧をJSONで出力するコマンド
azure mobile list --jsonの実行結果

 上の実行結果を見てほしい。tablesの一覧などを含んだ情報が取得可能となっている。

複数のモバイル・サービスが持つ先頭のテーブルの中身を出力する

 さらにJSONなので、JSON内容を処理できるjqなどのコマンドを使用してフィルタリングを行うことが可能だ。例えば、全てのモバイル・サービスが持つ先頭のテーブルの中身を出力するコマンドは次のとおりだ。

Bash
azure mobile list --json | jq -r '@sh "(.[] | [.name, .tables[0].name])"' | xargs -n 2 -t  azure mobile data read
モバイル・サービスから先頭のテーブルの中身を出力するコマンド
azure mobile list --json | jq ……の実行結果

合計4回、コマンドを実行している。

  • 1azure mobile data read cod2013-nnasaki TodoItemを実行したが、DB(データベース)を消したためエラーとなっている。
  • 21と同様に、azure mobile data read nnasaki devicesを実行したが、DBを消したためエラーとなっている。
  • 3azure mobile data read nnasaki-bi TodoItemを実行し、結果が表示されている。
  • 4azure mobile data read nnasaki-jazug TodoItemを実行し、結果が表示されている。

 このようにCLIを各コマンドと組み合わせることで、複数のモバイル・サービスの管理が容易に行うことができる。

次回予告

 次回は今回ご紹介したCLIを実際に使用しながら、Androidのアプリ開発を効率的に行う方法をご紹介したい。

連載:Azureモバイルサービスで作る簡単スマートフォンアプリ
1. iOSアプリを5分で作ろう! Azureモバイルサービスで簡単開発

Azureモバイル・サービス(BaaS)を使用してiOSやAndroidなどのアプリを作成していくことで、その魅力を紹介する連載がスタート。今回はToDoリストを管理するiOSアプリのサンプルを作成して動かしてみる。

連載:Azureモバイルサービスで作る簡単スマートフォンアプリ
2. 認証機能とプッシュ通知をしよう!

iOSのサンプルでAzureモバイル・サービス(BaaS)の機能を紹介。Twitter、Facebook、Google、Microsoftなどの認証プロバイダーを使用した認証機能とプッシュ通知の実装方法を説明する。

連載:Azureモバイルサービスで作る簡単スマートフォンアプリ
3. 【現在、表示中】≫ モバイルサービス開発でコマンドラインを活用しよう!(Win/Mac/Linux対応)

Azure管理用のコマンドライン・インターフェース(CLI)を活用して、モバイル・サービス開発を効率化しよう。その活用方法を解説。

連載:Azureモバイルサービスで作る簡単スマートフォンアプリ
4. モバイル・サービスを活用するAndroidアプリを作ってみよう

Azureモバイル・サービスを使用してAndroidのアプリを作成する方法を説明。また、CLIを実際の開発で活用する。

サイトからのお知らせ

Twitterでつぶやこう!