このトピックでは、カスタムランタイムでのHTTPハンドラーの構造的な機能、呼び出しの説明、および制限について説明します。 このトピックでは、HTTPハンドラーの使用方法の例と、よくある質問へのリンクも提供します。
背景情報
Function Computeは、メソッド、パス、クエリ、リクエストヘッダー、リクエスト本文、Function Computeによって生成された共通ヘッダーなど、リクエストを透過的にHTTPサーバーに渡します。 既存のHTTP webアプリケーションをスムーズに移行できます。
関数の呼び出し
HTTPハンドラーを呼び出すために使用できるメソッドは、web API操作のメソッドと似ています。 cURL、Postman、またはブラウザーを使用して、HTTPハンドラーを呼び出すリクエストを送信できます。 ブラウザを使用してHTTPトリガーにアクセスすると、関数が強制的にダウンロードされる場合があります。 この問題を解決する方法の詳細については、「webブラウザーを使用してHTTPトリガー付きの関数にアクセスする場合、応答をダウンロードする必要があるのはなぜですか?」をご参照ください。
ヘッダー | 説明 |
(オプション) x-fc-base-path | カスタムドメイン名を指定しない場合、x-fc-base-pathの値として |
(オプション) x-fc-status | このヘッダーは、イベント関数のヘッダーと同様に動作します。 これは、Function Computeに移行されていないが、web API操作を呼び出して作成されたHTTP関数に適用できます。 レスポンスヘッダーに
説明 HTTPレスポンスで |
使用上の注意
サービスの各バージョンまたはエイリアスのHTTP関数に対して作成できるHTTPトリガーは1つだけです。 詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。
HTTPリクエストの制限
リクエストヘッダーは、x-fc- で始まるカスタムフィールドまたは次のフィールドをサポートしません。
接続
keep-alive
リクエストが次のいずれかの制限を超えた場合、システムは
400
ステータスコードとInvalidArgument
エラーコードを返します。ヘッダーサイズ: ヘッダー内のすべてのキーと値の合計サイズは8 KBを超えることはできません。
パスサイズ: すべてのクエリパラメーターを含むパスの合計サイズは、4 KBを超えることはできません。
ボディサイズ: 同期呼び出しリクエストのボディの合計サイズは32 MBを超えることはできません。 非同期呼び出し要求の本体の合計サイズは128 KBを超えることはできません。
HTTPレスポンスの制限
レスポンスヘッダーは、x-fc- で始まるカスタムフィールドまたは次のフィールドをサポートしていません。
接続
content-length
日付
keep-alive
サーバー
content-disposition: 添付
説明セキュリティ上の理由から、Function Computeのデフォルトのドメイン名e aliyuncs.comを使用すると、サーバーはcontent-disposition: attachmentフィールドをレスポンスヘッダーに強制的に追加します。 このフィールドにより、返された結果が添付ファイルとしてブラウザにダウンロードされます。 この制限を解除するには、カスタムドメイン名を指定する必要があります。 詳細については、「カスタムドメイン名の設定」をご参照ください。
応答が次のいずれかの制限を超えると、システムはステータスコード
502
とエラーBadResponse
を返します。ヘッダーサイズ: ヘッダー内のすべてのキーと値の合計サイズは8 KBを超えることはできません。
その他
カスタムドメイン名をバインドして、HTTP関数の異なるHTTPパスをマッピングできます。 詳細については、「カスタムドメイン名の設定」をご参照ください。 API Gatewayを使用して、バックエンドサービスタイプをHTTPに設定し、HTTP関数パスをバックエンドサービスアドレスとして指定することで、同様の機能を実装することもできます。 詳細については、次をご参照ください: Function ComputeをAPI操作のバックエンドサービスとして使用します。
他のプログラミング言語の例
Serverless Devsを使用して、数回クリックするだけでアプリケーションをFunction Computeに移行できます。 次の例は、Serverless Devsを使用して、効率的な方法で関数をデプロイおよび呼び出す方法を示しています。 ビジネス要件に基づいてサンプルコードを変更できます。