Azure Functionsの概要
Azure Functionsは、イベント駆動型のコンピューティングサービスであり、
コードの実行を要求トリガーに実行することができる。Azure Functionsを使用することで、
サーバーレスコンピューティングの利点を生かすことができ、
アプリケーションの機能を構築し、スケーリングするための効果的な方法を提供してくれる。
Azure Functionsの機能
Azure Functionsには以下のような特徴。
- イベントドリブン: イベントに応じてコードを実行できる。
- ユーザーフレンドリー: 誰でも簡単に使い始めることができる。
- 言語の選択肢: 複数のプログラミング言語をサポートしている。
- スケーラビリティ: 自動スケールが可能で、トラフィックの変動に対応できる。
- リアルタイム: すばやい反応性を備えている。
- モジュール: 既存のサービスとの統合が容易。
サンプルコード
Java
import com.microsoft.azure.functions.*;
import org.springframework.cloud.function.adapter.azure.FunctionInvoker;
import java.util.*;
public class MyFunctionClass extends FunctionInvoker<String, String> {
public MyFunctionClass() {
super();
}
@FunctionName("myFunction")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
String name = request.getBody().orElse("Stranger");
return request.createResponse(HttpStatus.OK, "Hello, " + name + "!");
}
}
Go
package main
import (
"github.com/Azure/azure-functions-go/azfunc"
"net/http"
)
func main() {
azfunc.HandleHTTPTrigger(HandleHello).ListenAndServeEnv(":8080")
}
func HandleHello(w http.ResponseWriter, req *http.Request) azfunc.HTTPResponse {
name := req.URL.Query().Get("name")
if name == "" {
name = "Stranger"
}
return azfunc.HTTPResponse{
Body: []byte("Hello, " + name + "!"),
StatusCode: http.StatusOK,
}
}
C#
using System;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
namespace MyProject
{
public static class MyFunctionClass
{
[FunctionName("myFunction")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
if (string.IsNullOrEmpty(name))
{
name = "Stranger";
}
return new OkObjectResult($"Hello, {name}!");
}
}
}