認証を使用するモバイル および Web 向けソーシャル アプリ

App Service - Mobile Apps
関数
Traffic Manager
Visual Studio
Xamarin

ソリューションのアイデア

さらなる情報、実装の詳細、価格ガイダンス、コード例を追加してこの記事を拡張することをお望みの場合は、GitHub のフィードバックでご連絡ください。

このモバイル クライアント アプリでは、コンパニオン Web アプリとのソーシャル画像共有機能を提供します。 このアプリのバックエンド サービスは、Azure 関数を使用してバックグラウンドで画像処理を実行します。また、通知ハブを介して進行状況をユーザーに通知できます。 画像以外のデータは、Cosmos DB に格納されます。 Web アプリは、Traffic Manager を介してバックエンド サービスのデータと画像にアクセスします。

モバイル クライアント アプリはオフライン モードで動作するため、ネットワークに接続していなくても、画像の表示とアップロードを行うことができます。

右側のリンクでは、上記のソリューション アーキテクチャで示す Azure 製品のデプロイと管理に関するドキュメントを提供します。

Visual Studio Team Services

Visual Studio

Visual Studio Tools for Xamarin

Application Insights

Visual Studio App Center

App Service Mobile Apps

Architecture

アーキテクチャ図 このアーキテクチャの SVG をダウンロードしてください。

Data Flow

  1. Visual Studio と Xamarin を使用してアプリを作成します。
  2. Azure App Service Mobile Apps バックエンド サービスをアプリ ソリューションに追加します。
  3. ソーシャル ID プロバイダーを使用した認証を実装します。
  4. 画像以外のデータを Cosmos DB に格納し、Azure Cache for Redis にキャッシュします。
  5. アップロードされた画像を Azure Blob Storage に保存します。
  6. 新しくアップロードされた画像に関するメッセージをキューに登録します。
  7. Azure Functions を使用してメッセージをデキューし、Blob Storage から取得した画像を処理します。
  8. 通知ハブを介して、ユーザーにプッシュ通知を送信します。
  9. Visual Studio App Center を使用してアプリのビルドとテストを行い、アプリを発行します。
  10. さまざまなデータセンターのサービス エンドポイントへのユーザー トラフィックの分散を制御します。
  11. Application Insights を使用してアプリ サービスを監視します。

Components

  • Visual Studio 2017 または Visual Studio for Mac で C# を使用して、Web フロントエンド、モバイル アプリ、およびバックエンド サービスを作成します。
  • Xamarin:C# と Azure SDK を使用して、iOS と Android 用のモバイル アプリを作成します。
  • Visual Studio App Center:App Center は、BitBucket、GitHub、Visual Studio Team Services からコードをプルすることで、継続的インテグレーションとデプロイ ワークフローを実現します。
  • App Service Web アプリは、顧客向けの Web アプリと、Web クライアントとモバイル クライアントの両方が使用するサービスをホストできます。
  • Azure Functions を使用して、サーバーレスのバックグラウンド処理を実行します。 たとえば、ある Azure 関数では、新しい BLOB がコンテナーに追加されたときにそのサイズを自動的に変更し、別の関数では、バックグラウンドの複数の画像を削除するためにキューのメッセージをリッスンします。
  • Application Insights:Application Insights を使用して、Web アプリの問題の検出、クラッシュの診断、使用状況の追跡を行います。 開発ライフサイクル全体で、情報に基づいた意思決定を行います。
  • Azure Cosmos DB は、フルマネージドの NoSQL ドキュメント データベース サービスです。 スキーマフリーのデータに対するクエリとトランザクション処理、予測可能で信頼性の高いパフォーマンス、迅速な開発を実現します。
  • Azure Queue Storage は、App Service バックエンドと Azure Functions の間の永続的なメッセージングに使用されます。
  • Blob Storage: 低コストで優れたスケーラビリティを活用するために、Azure Storage によってイメージ ファイルがホストされています。 多くの場合、Web アプリと Azure 関数間の通信は、BLOB トリガーと Azure Queue Storage を使用して実行されます。
  • Azure Notification Hubs は、スケーラブルなクロスプラットフォームのプッシュ通知に使用されます。
  • Azure Traffic Manager では、応答性と可用性の高いアプリケーションを提供するために、さまざまなデータセンターのサービス エンドポイントへのユーザー トラフィックの分散を制御します。

次のステップ