HTTPハンドラーを使用して、HTTPリクエストを効率的に処理できます。 関数を呼び出すと、function ComputeはHTTPリクエストを処理するために指定したハンドラーを実行します。 このトピックでは、C# のHTTPハンドラーの構造と特性について説明します。
HTTPハンドラーの署名
public virtual async Task<HttpResponse> HandleRequest(HttpRequest request, HttpResponse response, IFcContext fcContext)
{
}
C# を使用してFunction ComputeでHTTP関数を記述する場合は、NuGetを使用してAliyun.Serverless.Core
およびAliyun.Serverless.Core.Http
パッケージをインポートする必要があります。 例:
<ItemGroup>
<PackageReference Include="Aliyun.Serverless.Core" Version="1.0.1" />
<PackageReference Include="Aliyun.Serverless.Core.Http" Version="1.0.3" />
</ItemGroup>
HTTPハンドラーの例
次の例では、単純なC# HTTPハンドラーのサンプルコードを示します。
System.Threading.Tasks; を使用して
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Aliyun.Serverless.Core;
using Aliyun.Serverless.Core.Http;
namespace Example
{
public class HttpHandler : FcHttpEntrypoint
{
public override async Task<HttpResponse> HandleRequest(HttpRequest request, HttpResponse response,
IFcContext fcContext)
{
response.StatusCode = 200;
response.ContentType = "text/plain";
await response.WriteAsync("hello world\n");
return response;
}
protected override void Init(IWebHostBuilder builder) { }
static void Main(string[] args) { }
}
}
前の例の入力パラメータでは、
HttpRequest request: HttpRequestクラスを指定します。
HttpResponse response: HttpResponseクラスを指定します。
IFcContext fcContext: 関数と要求に関する情報を含むコンテキストオブジェクトを指定します。
説明
C# HTTPハンドラーは、Init関数とHandleRequestを書き換える必要があるAliyun.Serverless.Core.HttpのFcHttpEntrypointを継承する必要があります。
サンプルプログラム
Function Computeライブラリには、さまざまなハンドラータイプとインターフェイスを使用するサンプルプログラムが含まれています。 各サンプルプログラムには、簡単なコンパイルと展開のためのメソッドが含まれます。 サンプルプログラム:
dotnet3-blank-http :HTTPコールバック。