すべてのプロダクト
Search
ドキュメントセンター

Function Compute:HTTP トリガーの設定

最終更新日:Mar 15, 2026

Function Compute は HTTP トリガーをサポートしています。HTTP トリガーが設定された関数は、HTTP リクエストを送信することで呼び出すことができます。関数はリクエストを処理し、結果を呼び出し元に返します。このトピックでは、Function Compute コンソールで HTTP トリガーを設定し、HTTP リクエストでテストする方法について説明します。

前提条件

関数を作成します

ステップ 1:トリガーの作成

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、関数管理 > 関数 を選択します。

  2. 上部のナビゲーションバーでリージョンを選択します。関数ページで、対象の関数をクリックします。

  3. 関数詳細ページで、トリガー タブをクリックし、トリガーの作成 をクリックします。

  4. [トリガーの作成] パネルでパラメーターを設定し、OK をクリックします。

    設定項目

    操作

    トリガータイプ

    HTTP トリガー を選択します。

    HTTP トリガー

    名前

    トリガーのカスタム名を入力します。

    http-trigger

    バージョンまたはエイリアス

    デフォルト値は LATEST です。別のバージョンまたはエイリアス用にトリガーを作成する場合は、事前に関数詳細ページの バージョンまたはエイリアス ドロップダウンリストから該当するバージョンまたはエイリアスを選択しておく必要があります。バージョンとエイリアスの詳細については、「バージョン管理」および「エイリアス管理」をご参照ください。

    LATEST

    リクエストメソッド

    HTTP トリガーを起動するために使用できるメソッドを指定します。

    GET、POST、PUT、DELETE

    インターネットアクセス URL の無効化

    この機能はデフォルトで無効になっています。つまり、トリガーはパブリックエンドポイントからアクセス可能です。

    この機能を有効にすると、HTTP トリガーにはデフォルトのパブリックエンドポイントが提供されません。その後、パブリックエンドポイントを使用して関数を呼び出そうとすると、エラーメッセージ access denied due to function internet URL is disable が返されます。カスタムドメイン名経由でのアクセスは影響を受けません。

    いいえ

    認証方法

    Function Compute が HTTP リクエストを認証するための認証方式を選択します。以下の値が利用可能です。

    認証なし

    トリガー作成後、バージョンまたはエイリアスリクエストメソッド、および 認証方法 などの構成を変更できます。

ステップ 2:コードの記述とデプロイ

HTTP トリガーを作成したら、関数コードを記述します。

関数詳細ページで、コード タブをクリックします。コードエディタにコードを記述し、デプロイメントコード をクリックします。 サンプルコードについては、Function Compute ドキュメントの セクションにある、各ランタイムのハンドラドキュメントをご参照ください。

ステップ 3:関数のテスト

方法 1:コンソールを使用した関数のテスト

関数の詳細 ページで、コード タブをクリックします。

  • 同期呼び出し

    関数のテスト をクリックします。

  • 非同期呼び出し

    関数のテスト」の右側にある down アイコンをクリックし、「非同期呼び出し」を選択してから、もう一度「関数のテスト」をクリックします。

実行完了後、コード タブで結果を確認します。

方法 2:cURL を使用した関数のテスト

  1. 関数詳細ページで、トリガー タブをクリックします。対象の HTTP トリガーの 設定 列からパブリックエンドポイントを取得します。

    image

  2. コマンドラインで cURL コマンドを実行して関数をテストします。

    同期呼び出し

    以下は例です。前のステップで取得した HTTP トリガーのパブリックエンドポイントに合わせて、https://example.cn-shenzhen.fcapp.run を置き換えます。呼び出したい API オペレーションの名前に合わせて、$path を置き換えます。

    curl -v https://example.cn-shenzhen.fcapp.run/$path
    説明
    • Web 関数の呼び出し:Flask を例に挙げます。ルートが @app.route('/test') と定義されている Python 関数をテストする場合、$pathtest に置き換えます。ルートが @app.route('/') と定義されている Python 関数をテストする場合は、HTTP トリガーのパブリックエンドポイントを直接呼び出します。

    • イベント関数の呼び出し:HTTP トリガーのパブリックエンドポイントを直接呼び出します。

    実行完了後、Function Compute はコードの実行結果を返します。

    非同期呼び出し

    以下は例です。ご利用の HTTP トリガーのパブリックエンドポイントに合わせて、https://example.cn-shenzhen.fcapp.run を置き換えます。呼び出したい API オペレーションの名前に合わせて、$path を置き換えます。

    curl -v -H "X-Fc-Invocation-Type: Async" https://example.cn-shenzhen.fcapp.run/$path
    説明
    • Web 関数の呼び出し:Flask を例に挙げます。ルートが @app.route('/test') と定義されている Python 関数をテストする場合、$pathtest に置き換えます。ルートが @app.route('/') と定義されている Python 関数をテストする場合は、HTTP トリガーのパブリックエンドポイントを直接呼び出します。

    • イベント関数の呼び出し:HTTP トリガーのパブリックエンドポイントを直接呼び出します。

    実行完了後、Function Compute はリクエスト受信の結果を返します。状態コードが 202 の場合、リクエストが正常に送信されたことを示します。その他の状態コードは、呼び出し中にエラーが発生したことを示します。エラーコードの具体的な原因については、「よくある質問 (トラブルシューティング)」をご参照ください。

方法 3:(非推奨)ブラウザを使用した関数のテスト

  1. 関数詳細ページで、トリガー タブをクリックします。対象の HTTP トリガーの 設定 列からパブリックエンドポイントを取得します。このエンドポイントをブラウザのアドレスバーに入力し、Enter キーを押します。

  2. 実行完了後、ブラウザは実行結果を含むファイルを返します。

(オプション)API Gateway を使用した関数の保護

Function Compute は HTTP 関数への匿名アクセスを許可しているため、誰でも HTTP リクエストを送信して関数を呼び出すことができます。不正アクセスによるリソースの浪費やセキュリティリスクを防ぐために、身分認証を有効化し、HTTP 関数を API Gateway に接続することを推奨します。API Gateway の IP アドレスベースのアクセス制御プラグイン、JWT 認証プラグイン、または Basic 認証プラグインを使用して、HTTP 関数を保護できます。

  1. Function Compute コンソールで対象の関数を見つけます。関数詳細ページで、トリガー タブをクリックします。対象の HTTP トリガーの 操作 列で、変更 をクリックします。

  2. [トリガーの編集] パネルで、インターネットアクセス URL の無効化 スイッチをオンにします。

  3. API Gateway コンソールにログインし、HTTP 関数が配置されているリージョンに切り替えます。

  4. グループと API を作成します。

    外部アプリケーションが指定された方法で内部関数サービスを呼び出せるようにする API を作成します。関連する複数の API オペレーションを整理・管理するために API グループを使用します。これにより、統一的なセキュリティポリシーやトラフィックシェーピングの施策を簡単に実装できます。

    1. API Gateway コンソールで、左側のナビゲーションウィンドウから API 管理 > API グループ を選択します。次に、グループの作成 をクリックします。

    2. グループの作成 ダイアログボックスで、インスタンス: を選択します。グループ名FC-GroupBasePath/ を設定し、確認 をクリックします。

    3. 対象グループの 操作 列で、API 管理 をクリックします。次に、API の作成 をクリックします。基本情報 セクションで以下のパラメーターを設定し、次へ をクリックします。

      image

    4. API リクエストの定義 セクションで、リクエストパス/ を設定し、他のパラメーターはデフォルト値のままにして、次へ をクリックします。

      image

    5. バックエンドサービスの定義 セクションで、トリガーパス に Function Compute トリガーのプライベートエンドポイント(https://example.cn-hangzhou-vpc.fcapp.run)を設定します。図に示されているとおりにパラメーターを設定し、次へ をクリックします。

      image

    6. レスポレスポンス セクションで、デフォルト設定のままにして、作成 をクリックします。API 作成後、API の 公開 をクリックします。

  5. API をデバッグします。API Gateway が提供するオンラインデバッグツールを使用して、API を公開する前に期待通りに動作するかをテストします。これにより、問題を迅速に特定・解決できます。デバッグが成功すれば、API Gateway の API が Function Compute に接続されていることを示します。

    1. API Gateway コンソールで、左側のナビゲーションウィンドウから API 呼び出し > デバッグ を選択します。

    2. デバッグページで、作成した FC-test API を選択し、リクエストの送信 をクリックします。次の図のような情報が返された場合、設定は成功しています。

      image

  6. バックエンド署名 タイプのプラグインを作成します。key にご利用の AccessKey IDsecret にご利用の AccessKey Secret を設定し、作成した API にプラグインをバインドします。詳細については、「プラグイン概要」をご参照ください。

    image

  7. CNAME レコードを使用して、ご利用のドメイン名を API Gateway が提供する第 2 レベルドメインに解決します。

    1. API Gateway コンソールで、左側のナビゲーションウィンドウから API 管理 > API グループ を選択します。パブリック第 2 レベルドメインをコピーします。image

    2. ドメイン名解決管理ページに移動します。Alibaba Cloud の場合、ドメイン名解決管理ページは https://dnsnext.console.alibabacloud.com です。ドメイン名一覧ページで、管理対象のドメイン名を見つけ、そのドメイン名のリンクをクリックして管理ページに移動します。

      説明

      中国本土の独立ドメイン名には、Alibaba Cloud による ICP 登録が必要であるか、または Alibaba Cloud に ICP 登録を移管する必要があります。

    3. API Gateway コンソールで、左側のナビゲーションウィンドウから API 管理 > API グループ を選択します。独立したドメイン セクションに移動します。ページ右下にあるドメイン名バインド用のボタンをクリックし、ご利用のドメイン名を入力して OK をクリックします。これでドメイン名が正常にバインドされます。

      image

これらの手順を完了すると、ご利用のドメイン名経由で HTTP 関数にアクセスできるようになります。また、以下のプラグインを作成・バインドして、HTTP 関数を保護することもできます。

エラーのトラブルシューティング

エラーは主に次の 2 つのカテゴリに分類されます。

  • リクエストエラー:送信されたリクエストが必要な基準を満たしていない場合に発生します。応答で 4xx の状態コードが返されます。

  • 関数エラー:関数コードに問題がある場合に発生します。5xx の状態コードが返されます。

以下の表では、リクエストエラーおよび関数エラーが発生する可能性のあるシナリオを説明し、問題のトラブルシューティングを迅速に行えるように支援します。

エラーの種類

HTTP 状態コード

原因分析

課金対象

リクエストエラー

400

リクエストがリクエスト制限を超えています。詳細については、「HTTP トリガーの概要」をご参照ください。

いいえ

400

認証を必要とする関数を呼び出すリクエストに、Date または Authorization 情報が含まれていません。

いいえ

403

認証を必要とする関数を呼び出すリクエストの署名が正しくありません。つまり、Authorization が誤っています。署名計算には Date が使用され、署名の有効期限は 15 分間のみであるため、署名が有効期限切れになることがあります。一般的な原因として、認証を必要とする HTTP トリガーに対するリクエストヘッダーに含まれる Date が現在時刻から 15 分以上離れているため、署名が有効期限切れになっていることが挙げられます。

いいえ

403

リクエストで、HTTP トリガーに設定されていないリクエストメソッドが使用されています。たとえば、HTTP トリガーが GET リクエストのみを受け付けるように設定されているにもかかわらず、POST リクエストが送信された場合などです。

いいえ

404

HTTP トリガーが設定されていない関数に対して HTTP リクエストが送信されました。

いいえ

ユーザー速度制限

429

速度制限がかかっています。同時実行数を減らすか、Function Compute 開発チームに連絡して同時実行数の上限を引き上げてください。

いいえ

関数エラー

502

関数の戻り値が応答制限を超えています。詳細については、「HTTP トリガーの概要」をご参照ください。

はい

502

関数コードに構文エラーまたは例外が発生しています。

はい

502

HTTP ハンドラを使用しない関数に対して HTTP リクエストが送信されました。

はい

システムエラー

500

Function Compute でシステムエラーが発生しました。再度操作を試行してください。

いいえ

システム速度制限

503

Function Compute のシステム速度制限エラーです。指数バックオフモードで再試行してください。

いいえ

問題が解決しない場合は、DingTalk グループ (ID:64970014484) に参加して、Function Compute エンジニアにサポートを依頼してください。