Azure Functions は、HTTP 要求から呼び出して、サーバーレス API を構築し、webhook に応答することができます。
| アクション | タイプ |
|---|---|
| HTTP 要求から関数を実行する | トリガー |
| 関数から HTTP 応答を返す | 出力バインド |
拡張機能のインストール
インストールする拡張機能 NuGet パッケージは、関数アプリで使用している C# モードによって異なります。
関数は分離された C# ワーカー プロセスで実行されます。 詳しくは、「分離ワーカー プロセスにおける C# Azure Functions の実行のガイド」をご覧ください。
拡張機能の機能性は、拡張機能のバージョンによって異なります。
NuGet パッケージ バージョン 3.x をインストールすることによって、プロジェクトに拡張機能を追加します。
注意
.NET Isolated での ASP.NET Core 統合には、追加の拡張機能パッケージが必要です
バンドルのインストール
アプリでこのバインド拡張機能を使用できるようにするには、プロジェクトのルートにある host.json ファイルに次の extensionBundle 参照が含まれていることを確認します。
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
この例では、versionの[4.0.0, 5.0.0)値は、少なくとも4.0.0が5.0.0未満のバンドル バージョン (4.x のすべての潜在的なバージョンを含む) を使用するように Functions ホストに指示します。 この表記は、v4.x 拡張機能バンドルの利用可能な最新のマイナー バージョンでアプリを効果的に維持します。
可能であれば、最新の拡張機能バンドルメジャー バージョンを使用し、ランタイムが最新のマイナー バージョンを自動的に維持できるようにする必要があります。 最新のバンドルの内容は、 拡張機能バンドルのリリース ページで確認できます。 詳細については、 Azure Functions 拡張機能バンドルに関するページを参照してください。
host.json 設定
このセクションでは、バージョン 2.x 以降でこのバインドに使用できる構成設定について説明します。 host.json ファイルの設定は、関数アプリ インスタンスのすべての関数に適用されます。 関数アプリの構成設定の詳細については、 Azure Functions のhost.json リファレンスを参照してください。
注意
Functions 1.x の host.json のリファレンスについては、「host.json reference for Azure Functions 1.x (Azure Functions 1.x の host.json のリファレンス)」を参照してください。
{
"extensions": {
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 200,
"maxConcurrentRequests": 100,
"dynamicThrottlesEnabled": true,
"hsts": {
"isEnabled": true,
"maxAge": "10"
},
"customHeaders": {
"X-Content-Type-Options": "nosniff"
}
}
}
}
| プロパティ | 既定値 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| customHeaders | なし | HTTP 応答でカスタム ヘッダーを設定できます。 前の例では、コンテンツ タイプのスニッフィングを避けるために、X-Content-Type-Options ヘッダーを応答に追加しています。 このカスタム ヘッダーは、関数アプリ内のすべての HTTP によってトリガーされる関数に適用されます。 |
||||||||||
| dynamicThrottlesEnabled(動的スロットルの有効化) | 真* | この設定を有効にすると、要求処理パイプラインが、connections/threads/processes/memory/cpu/etc のようなシステム パフォーマンス カウンターを定期的にチェックし、それらのカウンターのいずれかが組み込みの上限しきい値 (80%) を超えている場合は、カウンターが正常なレベルに戻るまで、要求は 429 "Too Busy" 応答で拒否されます。*従量課金プランの既定値は、 true です。 Premium プランと Dedicated プランの既定値は falseです。 |
||||||||||
| hsts | 無効 |
isEnabled が true に設定されている場合、で定義されているように、HstsOptionsが適用されます。 上の例では、maxAge プロパティも 10 日間に設定されています。
hstsのサポートされるプロパティは次のとおりです。
|
||||||||||
| maxConcurrentRequests | 100* | 並列で実行される HTTP 関数の最大数。 この値によりコンカレンシーを制御でき、リソース使用率の管理に役立ちます。 たとえば、多くのシステム リソース (メモリ、CPU、ソケット) を消費する HTTP 関数があった場合、コンカレンシーが高すぎると問題が発生します。 または、サードパーティのサービスに対して要求を送信する関数があり、その呼び出し速度を制限する必要がある場合です。 このような場合は、調整を適用することができます。 *従量課金プランでの既定値は 100 です。 Premium プランと Dedicated プランの既定値は無制限 ( -1) です。 |
||||||||||
| maxOutstandingRequests | 200* | 特定の時点で保持される未処理の要求の最大数。 この制限には、キューに格納され、まだ実行が開始されていない要求と、処理中の実行が含まれます。 この制限を超える受信要求は、429 "Too Busy" 応答で拒否されます。 これにより、呼び出し元は時間ベースの再試行戦略を採用でき、要求の最大待機時間の制御にも役立ちます。 この設定は、スクリプト ホストの実行パス内で発生するキューのみを制御します。 ASP.NET 要求キューなどの他のキューは有効なままで、この設定の影響を受けません。 *従量課金プランでの既定値は 200 です。 Premium プランと Dedicated プランの既定値は無制限 ( -1) です。 |
||||||||||
| routePrefix | エーピーアイ | すべてのルートに適用されるルート プレフィックス。 既定のプレフィックスを削除するには、空の文字列を使用します。 |