連載:Azureモバイルサービスで作る簡単スマートフォンアプリ
モバイルサービス開発でコマンドラインを活用しよう!(Win/Mac/Linux対応)
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
|
Node.jsがインストールされていなければ、WindowsではWindowsインストーラー、MacではAzure SDKインストーラーがそれぞれ用意されているので、そちらを使用してCLIをインストールしてほしい。Linuxについては、インストーラーは用意されていないので、前述のnpmを使用する必要がある。
Azureサブスクリプションを設定する
インストール完了後、CLIを動作させるためには、Azureサブスクリプションを設定する必要がある。サブスクリプションの設定は、Windowsならばコマンドプロンプト、Macならばターミナルから下記のコマンドを実行する。
azure account download
|
※Windowsでazureコマンドにパスが通っていない場合は、OSを再起動するとよい。
するとブラウザーが立ち上がり、Azureポータルのログイン画面が表示される。ログインすると「.publishsettings」という拡張子のファイルがダウンロードされるので、そのファイルをフルパスで指定して、下記のコマンドを実行する。
azure account import "c:¥downloads¥Windows Azure <ファイル名>.publishsettings"
|
「info: account import command OK」というようなメッセージが表示されれば成功だ。なお、インポート後、ダウンロードした.publishsettingsファイルは不要なので、第三者に悪用されることを防ぐため速やかに削除してほしい。
サブスクリプションが正しく設定されたかを確認するためには、次のコマンドを実行する。
azure account list
|
このコマンドを実行すると、次の画面のような表示が出るはずだ。
【コラム】コマンドライン補完ツールのご紹介
AzureのCLIには、入力コマンドの補完機能が用意されていないため、筆者は「azure-completion」という補完ツールを作成した。CLIと同様にnpmとして公開しており、githubにてソースを公開している。
bashに依存しているため、残念ながらWindowsでは使用できず、Macのみ動作確認をしている。インストール方法は次のコマンドを順番に実行するだけだ。問題や要望がある場合は、githubのissuesを使用してお気軽にご連絡いただきたい。
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
|
なお、コマンドライン補完とは、入力途中に[Tab]キーを押下することで残りの文字が入力されたり、入力候補が提示されたりすることを表す。例えば先のazure account list
では、azu
の3文字まで入力後、[Tab]キー押下することでazure
と入力され、もう一度[Tab]キーを押すことでaccount
が候補であることを提示してくれる。
モバイル・サービスをCLIで管理する
今までの連載でAzureポータル上で行った操作のほとんどは、CLIを使って操作が可能だ。目的別に、各コマンドの入力例と、その実行結果を、以下に記載する。
モバイル・サービスの一覧を表示する
azure mobile list
|
azure mobile list
の実行結果モバイル・サービスで使用しているテーブル一覧を表示する
azure mobile table list <サービス名>
|
azure mobile table list
の実行結果モバイル・サービスを自動化する
CLIを利用することで「処理の自動化」を実現することが可能だ。例えば「毎日決まった時間にデータ一覧を取得したい」という場合は、次のコマンドをcronやタスクスケジューラーを使って実行すればよい。
azure mobile data read <サービス名> <テーブル名>
|
モバイル・サービスの一覧をJSONで出力する
また、CLIのコマンドの実行結果をJSONで出力すると、通常の出力よりも多くの情報が得られる場合がある。例えば、前述したモバイル・サービスの一覧を表示するコマンドをJSONで出力すると、次のようになる。
azure mobile list --json
|
上の実行結果を見てほしい。tablesの一覧などを含んだ情報が取得可能となっている。
複数のモバイル・サービスが持つ先頭のテーブルの中身を出力する
さらにJSONなので、JSON内容を処理できるjq
などのコマンドを使用してフィルタリングを行うことが可能だ。例えば、全てのモバイル・サービスが持つ先頭のテーブルの中身を出力するコマンドは次のとおりだ。
azure mobile list --json | jq -r '@sh "(.[] | [.name, .tables[0].name])"' | xargs -n 2 -t azure mobile data read
|
azure mobile list --json | jq ……
の実行結果- 1
azure mobile data read cod2013-nnasaki TodoItem
を実行したが、DB(データベース)を消したためエラーとなっている。 - 21と同様に、
azure mobile data read nnasaki devices
を実行したが、DBを消したためエラーとなっている。 - 3
azure mobile data read nnasaki-bi TodoItem
を実行し、結果が表示されている。 - 4
azure mobile data read nnasaki-jazug TodoItem
を実行し、結果が表示されている。
このようにCLIを各コマンドと組み合わせることで、複数のモバイル・サービスの管理が容易に行うことができる。
次回予告
次回は今回ご紹介したCLIを実際に使用しながら、Androidのアプリ開発を効率的に行う方法をご紹介したい。
1. iOSアプリを5分で作ろう! Azureモバイルサービスで簡単開発
Azureモバイル・サービス(BaaS)を使用してiOSやAndroidなどのアプリを作成していくことで、その魅力を紹介する連載がスタート。今回はToDoリストを管理するiOSアプリのサンプルを作成して動かしてみる。
2. 認証機能とプッシュ通知をしよう!
iOSのサンプルでAzureモバイル・サービス(BaaS)の機能を紹介。Twitter、Facebook、Google、Microsoftなどの認証プロバイダーを使用した認証機能とプッシュ通知の実装方法を説明する。