Azure App Service の 2015 年 11 月の更新

このポストは、11 月 18 日に投稿された Azure App Service Updates – November 2015 の翻訳です。

このたびニューヨークで開催されたイベント Connect(); において、今後リリースされる Azure App Service の機能強化についてまとめた新しい動画が公開されました。3 月に Azure App Service が発表されて以来、マイクロソフトは皆様からのフィードバックに基づき、今から将来にかけてのお客様のニーズに対応するために機能強化に取り組んできました。

はじめにロールアウトした Mobile Apps、API Apps、Logic Apps は Azure ユーザーの皆様にあたたかく受け入れていただきました。今回は、これらの今後の展望について最新情報をお届けしたいと思います。今後数週間から数か月にかけてリリースされる変更点と新機能についてご紹介します。

 

Mobile Apps の更新

お客様からのフィードバックを反映して、Mobile Apps に以下の変更が加えられます。

Web アプリ、モバイル/API バックエンドの認証と承認

今回の更新によって、モバイル バックエンド、API、Web ページを共通のターンキー認証/承認機能によって保護できるようになります。Azure Active Directory、Facebook、Google、Twitter、Microsoft アカウント、その他のカスタム ID プロバイダーなどに対応した、当初 Mobile Services でサポートされていたすべてのサーバーとクライアント間のフローがサポートされます。また、アプリケーションで必要となるスコープや要求を宣言する機能も追加されます。

 

Easy Tables と API

多くのお客様から、Mobile Services でサポートされていた Node.js でのテーブル機能の使いやすさを惜しむ声が寄せられていました。そこで今回の更新では、Azure App Service にポータルからコード不要で CRUD API を作成する機能が追加されることになりました。

今後は、SQL Azure を基盤とするモバイル対応の OData CRUD API「Easy Tables」を簡単に作成できるようになり、データを表示したり、エンティティのスキーマを設計したり、Visual Studio Online Monaco を使用してブラウザーから Node.js にロジックを追加したりすることができます。Easy Tables と API を使用する場合、通常の Express.js アプリでスキャフォールディングが行われるため、これを引き継ぎ、ニーズに応じてカスタマイズすることができます。

 x

ファイル同期のサポート

Mobile Apps が提供するデータ同期機能を使用すると、オフラインで動作してさまざまなバックエンド データ ストアと同期を行うアプリの開発が可能になります。今回の更新で、App Service のデータ同期機能にファイルのサポートが追加されます。これにより、Mobile Apps のテーブル コントローラーによって公開されるエンティティからファイルを参照し、バックエンドに構成された BLOB ストレージとファイルを直接同期できるようになります。クライアント側では、エンティティから参照するファイルへの変更が追跡されます。この機能を使用するには、以下の API を利用します。

mobileClient.InitializeFileSync(new MyFileSyncHandler(this), syncStore);
await myTable.PullFilesAsync(entity);
await myTable.PushFileChangesAsync();

MyFileSyncHandler で IFileSyncHandler を実装しています。これにより、ローカルに保存するファイルの場所を指定したり、同期ルールを上書きしたりできます。

サーバー側では、クライアントが BLOB ストレージと直接ファイルを同期するための SAS キーが自動的に発行されるほか、基本的な同期タスクが処理されます。

Xamarin および Windows 用のクライアント ライブラリはこちら (英語) から、この機能の詳しいサンプルはこちら (英語) から、それぞれダウンロードしていただけます。

 

API Apps の更新

API Apps はプレビュー期間中に多数のお客様に興味をお持ちいただき、広く導入されました。その結果、製品の改善やより多くの価値を望む率直なフィードバックが寄せられました。以下のセクションでは、Mobile Apps や Web Apps との一貫性を強化し、コンセプトの数を減らし、デプロイメントとランタイムのパフォーマンスを向上させるために行った API Apps の根本的な変更についてご説明します。

変更内容

API Apps の主な機能 (認証、CORS、API メタデータ) が App Service に直接移植されます。この変更により、各機能が Web Apps、Mobile Apps、API Apps のすべてで利用できるようになります。今後、API Apps ゲートウェイは不要になり、API Apps では提供されなくなります。

 

API Apps の更新に付随する主な設計原則は、好きな言語でそのまま API を利用できるようにするということです。既に API を Web アプリまたは Mobile アプリ*としてデプロイしている場合は、新機能を利用する際にアプリをデプロイし直す必要はありません。

*現在 API Apps のプレビュー版をご利用のお客様には、更新後の API Apps サービスの提供開始時に移行ガイダンスを提供します。既存のコードの大部分は動作しますが、API Apps のプレビュー版を使用して既にデプロイしているアプリはデプロイし直す必要があります。

API の開発が簡単に

App Service でホストされる API では、多数のターンキー機能を利用できます。

  • 認証: 上記の Mobile Apps のセクションでご紹介したように、組み込みの認証機能によってユーザーと他のサービスの両方を認証できます。トークンの検証とユーザー/サービスの認証は、コードに要求が到達する前に App Service で行われます。
  • CORS: 許可する送信元のホワイトリストを指定し、ブラウザーから API への JavaScript のクロス ドメイン要求を行います。
  • API 定義: Swagger 2.0 メタデータのエンドポイントを指定し、プロンプトを表示することなくダウンストリームのツールがエンドポイントを発見できるようにします。

API の使用が簡単に

上記の機能により、次のように API の利用が強化されます。

  • 柔軟な認証オプション: ID プロバイダーのネイティブ SDK または Mobile Apps SDK のいずれかを選択できます。
  • SDK の生成: Swagger の API 定義と組み込みの Visual Studio ツールを使用して、API の SDK を生成できます。コード ジェネレーターはコマンドラインからも利用可能で、.NET、Node.js、Java などをサポートします。
  • Logic Apps: Logic Apps から API を呼び出すことができます。Logic Apps の HTTP コネクタは、App Service 認証の組み込みオプションの 1 つであるサービス プリンシパル認証をネイティブ サポートします。コネクタの今後の更新により Swagger がサポートされ、App Service でホストされる API への接続がさらにシームレスになります。

API Management の統合が簡単に

Azure API Management と API Apps を併用することで、API の管理、ホスト、開発をエンドツーエンドで行うことができます。API Management は App Service でホストされる API によって構成され、同様に Swagger 2.0 をサポートします。

上記の API Apps の変更点は、今後数週間のうちにご利用いただけるようになります。

 

Logic Apps の更新

2016 年初めには Logic Apps に多数の新機能が追加され、API やサービスとの通信のオーケストレーションをより簡単に行えるようになります。Logic Apps の現在の機能は引き続きすべて利用でき、Swagger メタデータを公開する API エンドポイントのサポートが強化される予定です。

Logic Apps のカスタム API は、App Service の API アプリとしてホストしてターンキー認証を有効にすることで最適なエクスペリエンスが得られます。ただし、今後これは必須ではなくなるため、Web Apps や Cloud Services の Web ロールなど、任意のテクノロジを使用しても Web API をホストできるようになります。このとき、Swagger エンドポイントを公開すれば、新しいデザイナーの機能をフルに活用できます。

また、API Management の機能もネイティブでサポートされるようになります。これにより、スロットルや API Management のポリシーを設定し、バックエンド API へのトラフィックのルーティングや形成を行うことも可能になります。

たとえば、Contoso API を作成して Swagger を公開した場合、その API での操作は Logic Apps で使用できる他のすべてのサービスと共に表示されます (お客様が特別な構成を行う必要はありません)。

 

カスタム API と API Management のサポートの強化のほかに、Logic Apps デザイナーの以下の機能強化がリリースされます。

  • すべての個々の API 操作を対象としたフルテキスト検索
    • これにはカスタム API と組み込み API の両方が含まれます。
  • API の出力を表す視覚的なトークン
    • 非常に多くのご要望が寄せられていた機能で、今後は Logic Apps の定義言語を理解しなくても、メッセージを作成して実際の表示を確認できるようになります。
  • フローの途中で入力を待機する Logic Apps の設計を可能にする Webhook のネイティブ サポート
    • 承認を必要とするシナリオで役立ちます。たとえば、マネージャーに承認を求めるメールを送信し、マネージャーの承認が得られるまで次のステップの開始を待機するような Logic Apps を作成できます。

 

今後数週間のうちに、Logic Apps の組み込み HTTP アクションを使用した更新版の API Apps を利用できるようになります。また、Logic Apps の定義言語を使用してカスタム API に直接接続することもできます。上記の Logic Apps の機能強化は、来年初めにご利用いただけるようになります。

 

まとめ

Azure App Service は、反復的なタスクやアプリケーションの追加の構成を不要にしたり、できる限り簡略化して再使用したりすることが可能になるように進化しています。この記事でご説明したように、現在マイクロソフトでは、App Service の機能をすべての種類のアプリ (Web、Mobile、API、Logic) で一貫して利用できるように取り組んでいます。

Azure Platform は新しい展開を迎えています。ぜひこの機会に App Service を無料でお試しください