Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Azure Functions と Cosmos DB によるサーバーレス・コンピューティング

Microsoft Japan Data Platform Tech Sales Team

森本 信次

Azure Functions とは?
まず始めに簡単に Azure Functions について触れておきます。Azure Functions は 小さなプログラムコードを、「関数」(Function)として定義・実行することができます。アプリケーション全体や、プログラムを実行する仮想マシンなどの環境を意識しなくてもよいので、サーバレス・コンピューティングとも呼ばれていて、手軽に実行することができます。機能の詳細についてははこちらのドキュメントをご参照ください。

サーバーレス・コンピューティングを体感してみましょう
前回は フルテキスト検索機能を提供する Azure Search と Cosmos DB の連携について取り上げましたが、今回は Azure Functions と Cosmos DB を連携させることで、従来の手法よりもはるかに少ないコードですばやく簡単に Cosmos DB にデータを格納できる様子を Step 1~3 の流れに沿ってご紹介します。

Step 1. Azure Cosmos DB アカウントを作成
Azure Portal から 前回同様 Cosmos DB アカウント ("planet-cosmos")を作成します

Step 2. Azure Functions の作成と設定
Azure Portal から Azure Functions (planet-cosmos-funcapp)を作成します。

関数を新規に作成します。

[webhook + API] を選択後 [この関数を作成する] を選択します。今回は CSharp (C#) を言語として使用します。


webhook とは?
ここで “webhook” という見慣れない言葉で出てきましたが、webhook は Web アプリケーションでイベントが実行された際、外部サービスに HTTP で通知する仕組みです。今回の例では、イベントが HTTP Request で、外部サービスが Cosmos DB に相当します。


webhook 要求を受け取る度に実行される関数用のC#テンプレートを選択します。関数名として “MyTaskList” としました。

新しい出力として “Azure DocumentDB ドキュメント” を選択します。

Step 1. で事前に準備しておいた CosmosDB アカウント情報を指定して、データベース名、コレクション名を指定します。

作成した関数 “MyTaskList” のパラメータを JSON 形式のデータとして組み立てて Cosmos DB に保存するためのコードを記述します。

[関数] タブで、ポータルの右側にある [テスト] リンクをクリックし、パラメーターの追加 で 次の HTTP クエリ文字列を入力して、[保存] します。



Step 3. テストを実行してデータが格納されているかを確認
最後に Azure Portal から Step 2 で作成した Azure Functions ("planet-cosmos-funcapp") のテスト実行を行い、Cosmos DB にデータが格納されているかを確認します。

作成した Azure Functions を他のアプリから呼び出すには、Azure Functions の [関数のURLの取得] から入手できる URLにアクセスします。

最後に
いかがだったでしょうか? 今回は Azure Functions を使用して Cosmos DB にデータを格納する流れをご紹介しました。開発者にとっての Azure Functions を使用するメリットは C#, F#, Node.js, Java, PHP などの開発言語を引き続き使用できる一方で、OS やミドルウェアを意識する必要がなくなり、アプリケーションロジックのみに集中できるようになることです。今回は C# のコーディングを一例としてご紹介しましたが、これ以外の言語についてもこちらにサンプルが公開されていますので、お好みの言語を使って サーバーレス・コンピューティングを体感頂ければと思います。

Share the post

Azure Functions と Cosmos DB によるサーバーレス・コンピューティング

×

Subscribe to Msdn Blogs | Get The Latest Information, Insights, Announcements, And News From Microsoft Experts And Developers In The Msdn Blogs.

Get updates delivered right to your inbox!

Thank you for your subscription

×