Mobile ServicesでWindows Azure Blob、Table、ServiceBusを使用
Mobile Servicesは、サーバースクリプトを使用してサーバーロジックを追加するのに、簡易的だけど強力な方法を提供します。これらのスクリプトは、モバイルサービスのテーブル上でのそれぞれのCRUDオペレーションに関連しています。サーバースクリプトは、データ検証、独自の認証ロジック(例えば、このゲームセッションにこのユーザーが参加しているのかどうかなど)、CRUDオペレーションの増大、プッシュ型通知の送信といったシナリオに非常に適しています。
サーバースクリプトはJavaScriptで書かれていて、Node.jsを使用してセキュアなサーバーサイドスクリプティング環境で実行されます。これらのスクリプトは、Windows Azure Portal内で編集して直接サーバー上に保存できます。
今週のリリースで、Mobile Serviceサーバースクリプトから他のWindows Azureサービスと連携できる機能も追加しました。これにより、Windows Azure SDK for Node.js内で、既存の『azure』モジュールが使用できます。例えば以下のコードで、Mobile Serviceスクリプトを使用して、(データの参照または挿入をした後)Windows Azure Tableへの参照を取得できます。
var azure = require('azure');
var tableService = azure.createTableService("<< account name >>"、
"<< access key >>");
azureモジュールを使用してBlob、Table、Queue、Service Busを取り扱う方法については、Windows Azure Node.js dev centerのチュートリアルを参照してください。
Mobile Serviceからメール送信
今週のリリースで、SendGridとのパートナー関係で構築されたMobile Serviceからの簡単なメール送信機能も追加されました。ユーザー登録の完了によるようこそメールの配信や、操作方法についてのアラートなどに、Mobile Serviceサーバースクリプトからメール送信できます。
まずは、http://sendgrid.comで、SendGridアカウントにサインアップしてください。Windows Azureユーザーに対して、SendGridから1か月25,000通の無償メールという特別オファーがあります。この特別オファーのサインアップおよびその他詳細については、http://www.sendgrid.com/azure.htmlでご確認ください。
サインアップの完了後、以下のスクリプトをMobile Serviceサーバースクリプトに追加すれば、SendGridサービスを通じてメール送信ができます。
var sendgrid = new SendGrid('<< account name >>'、'<< password >>');
sendgrid.send({
to: '<< enter email address here >>',
from: '<< enter from address here >>',
subject: 'New to-do item',
text: 'A new to-do was added: ' + item.text
}、function (success、message) {
if (!success) {
console.error(message);
}
});
詳細については、SendGridでMobile Serviceからメール送信チュートリアルをご覧ください。
Mobile ServiceからSMSメッセージ送信
SMSは、モバイルアプリの主要コミュニケーション手段です。アプリの登録時に確認コードをユーザーに送信したり、アプリに友達を誘ったり、スマートフォンがなくてもモバイルユーザーに連絡したりしたい場合などに便利です。
Mobile ServiceサーバースクリプトとTwilioのREST APIを利用すれば、簡単にSMSメッセージをアプリに送信できます。まず、Twilioアカウントにサインアップしてください。Windows Azureユーザーは、TwilioとWindows Azureを同時に使用した場合、1000の無償テキストメッセージが受けられます。
サインアップの完了後、以下のスクリプトをMobile Serviceサーバースクリプトに追加すれば、SMSメッセージを送信できます。
var httpRequest = require('request');
var account_sid = "<< account SID >>";
var auth_token = "<< auth token >>";
// Create the request body
var body = "From=" + from + "&To=" + to + "&Body=" + message;
// Make the HTTP request to Twilio
httpRequest.post({
url: "https://" + account_sid + ":" + auth_token +
"@api.twilio.com/2010-04-01/Accounts/" + account_sid + "/SMS/Messages.json",
headers: { 'content-type': 'application/x-www-form-urlencoded' },
body: body
}、function (err、resp、body) {
console.log(body);
});
今週のTwilioConカンファレンスで、TwilioとWindows Azure Mobile Servicesが一緒になると可能な素晴らしいシナリオをご紹介する予定で、講演するのを今は心待ちにしています。
アメリカ西海岸エリアのMobile Services利用
初回のWindows Azure Mobile Servicesプレビューは、Windows Azureのアメリカ東海岸エリアのみサポートされていました。すべてのWindows Azureサービスで、Mobile ServiceをすべてのWindows Azureエリアへ拡大していく予定です。今週のプレビュー更新で、西海岸エリアでもMobile Serviceが作成できるようになりました。
まとめ
上記の機能はすべて本番環境にあるので、すぐに利用可能です。Windows Azureアカウントをまだお持ちでない場合は、無償トライアルでサインアップすると、すぐに利用できます。アプリケーションの構築方法についての詳細は、Windows Azure Developer Centerでご確認ください。
今週後半には、Windows Azure Webサイトでの.NET 4.5サポートなど、さらに多くの新機能と改善点を実装していきます。これらの新機能などについての詳細はこのブログでご確認ください。
Hope this helps,
Scott
P.S. ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。


