この記事は、NEXTSCAPE クラウドインテグレーション事業本部 Advent Calendar 2018 17日目の記事です。
こんにちは。最近は HoloLens 開発チームの茨木です。
ネタは Azure Functions です。Functions は HoloLens アプリのAPIとしてもよく使ってます。
この記事では、いくつかのTipsをご紹介します。主に HttpTrigger なのですが。
HTTPヘッダを読む
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
var token = req.Headers["id_token"].FirstOrDefault();
}
HTTPヘッダに書いて返す
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
req.HttpContext.Response.Headers.Add("MyAppToken", "i-am-goodness-user");
}
Microsoft.AspNetCore.Http.HttpRequest なので、なんでもアリですね。
URLをカスタマイズする
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "hoge/moge/index.html")] HttpRequest req,
ILogger log)
{}
ASP.NET でお馴染みですね。
URLをパラメーターとして分解して、変数に入れてもらう
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "GetData/{hoge}/{moge}")] HttpRequest req,
string hoge,
string moge,
ILogger log)
{
log.LogInformation($"hoge={hoge}, moge={moge}");
}
URLをパラメーターとして分解して、変数に入れてもらって、そのままBlobを読む
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "GetData/{hoge}/{moge}")] HttpRequest req,
string hoge,
string moge,
[Blob("BlobContainerName" + "/{hoge}/{moge}.png", FileAccess.Read)] Stream image,
ILogger log)
{
log.LogInformation($"hoge={hoge}, moge={moge}");
}
Azure Storage とバインドすると、なかなかすごい事ができます。
ちょっとしたTipsでしたが、このくらいできる事を知っておくと、実際のケースで自然と応用案も出てくるのではないでしょうか。
Azure Functions はいいぞ!







