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

Function Compute:ALB トリガー

最終更新日:Dec 04, 2025

Function Compute は、イベントソースとして Application Load Balancer (ALB) をサポートしています。Function Compute を ALB のバックエンドサービスとして設定できます。ALB は、リクエストを Function Compute の関数に転送し、関数の呼び出し結果を同期的に返します。このトピックでは、関数を呼び出すための ALB トリガーの設定方法について説明します。

前提条件

制限事項

  • ALB インスタンスと Function Compute サービスは、同じリージョンにある必要があります。

  • Function Compute を ALB バックエンドサーバーとして使用する場合、次の制限が適用されます。

    • [HTTP リクエストによるトリガー] の関数のみを作成できます。

    • クライアントが関数にアクセスする場合、Function Compute は HTTP リクエストヘッダーに Date フィールドを含める必要があります。Date フィールドは、メッセージが送信された時刻を示します。

  • Function Compute を ALB と共に使用する場合、次の制限が適用されます。

    • ALB では、サーバーグループタイプを Function Compute に設定する必要があります。バックエンドサーバーグループとリスナーは、HTTP プロトコルのみをサポートします。

    • ALB は、バックエンドサーバーとして 1 つの Function Compute サービスのみをサポートします。

ステップ 1:関数コードの作成とテスト

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[サービス & 関数] をクリックします。

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

  3. [関数] ページで、対象の関数の名前をクリックします。

  4. 関数詳細ページで、[関数コード] タブをクリックし、コードエディタでコードを作成してから、[コードのデプロイ] をクリックします。

    次のコードは一例です。

    var getRawBody = require('raw-body');
    var getFormBody = require('body/form');
    var body = require('body');
    
    
    /*
    初期化機能を有効にするには、
    以下のように initializer 関数を実装してください:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    
    exports.handler = (req, resp, context) => {
        console.log('hello world');
    
        var params = {
            path: req.path,
            queries: req.queries,
            headers: req.headers,
            method : req.method,
            requestURI : req.url,
            clientIP : req.clientIP,
            log : ("Hello World.This is FC!"),
        }
    
        getRawBody(req, function(err, body) {
            for (var key in req.queries) {
              var value = req.queries[key];
              resp.setHeader(key, value);
            }
            resp.setHeader("Content-Type", "text/plain");
            params.body = body.toString();
            resp.send(JSON.stringify(params, null, '    '));
        });
    
        /*
        getFormBody(req, function(err, formBody) {
            for (var key in req.queries) {
              var value = req.queries[key];
              resp.setHeader(key, value);
            }
            params.body = formBody;
            console.log(formBody);
            resp.send(JSON.stringify(params));
        });
        */
    }
  5. [関数コード] タブで、[関数のテスト] をクリックします。

    関数が実行された後、[関数コード] タブの上部で結果を確認できます。

ステップ 2:Function Compute タイプのサーバーグループの作成

  1. ALB コンソールにログインします。

  2. ALB コンソールに移動し、左側のナビゲーションウィンドウで [サーバーグループ] を選択します。上部のナビゲーションバーで、作成した関数と同じリージョンを選択し、サーバーグループの作成 をクリックします。

  3. 左側のナビゲーションウィンドウで、[Application Load Balancer] > [サーバーグループ] を選択します。

  4. [サーバーグループ] ページで [サーバーグループの作成] をクリックし、パラメーターを設定してから [作成] をクリックします。

    函数计算类型服务器组

    設定項目

    説明

    サーバーグループタイプ

    サーバーグループタイプを選択します。このトピックでは [Function Compute タイプ] を使用します。

    サーバーグループ名

    任意。

    [バックエンドプロトコルの選択]

    バックエンドプロトコルを選択します。このトピックでは [HTTP] を使用します。

    リソースグループの選択

    リソースグループを選択します。

    ヘルスチェックの設定

    [ヘルスチェックの有効化]

    ヘルスチェックを有効または無効にします。このトピックでは、デフォルト設定の無効のままにします。

    [詳細設定]

    ヘルスチェックを有効にするには、必要に応じて詳細設定を変更します。詳細については、「サーバーグループの作成と管理」をご参照ください。

  5. 表示されるメッセージで、[バックエンドサーバーの追加] をクリックします。

  6. [バックエンドサーバー] タブで、[Function Compute の設定] をクリックします。

  7. [バックエンドサーバーの追加] パネルで、次のいずれかの方法を選択してサーバーを設定し、[OK] をクリックします。

    • リソースの選択

      設定項目

      注意

      [設定方法]

      [リソースを選択] を選択します。

      サービス

      対象の関数のサービスを選択します。

      [バージョン]

      [LATEST] を選択します。新しく作成されたサービスには、デフォルトで LATEST という 1 つのバージョンしかありません。

      機能

      対象の関数を選択します。

      [備考]

      任意。

    • [ARN を使用]

      設定項目

      説明

      [設定方法]

      [ARN で設定] を選択します。

      [ARN]

      対象の関数の ARN を入力します。関数の ARN を取得する方法の詳細については、「関数の ARN の取得」をご参照ください。

      [備考]

      任意。

    [バックエンドサーバーの追加] パネルに「正常に追加されました!」というメッセージが表示されます。[閉じる] をクリックします。[バックエンドサーバー] タブで、設定したバックエンドサーバーを確認できます。

ステップ 3:ALB インスタンスの作成とリスナーの設定

  1. Application Load Balancer (ALB) コンソールにログインします。

  2. 上部のメニューバーでリージョンを選択します。このトピックでは、例として [中国 (杭州)] を使用します。

  3. [インスタンス] ページで、[Application Load Balancer の作成] をクリックします。

  4. [Application Load Balancer (従量課金)] ページで、パラメーターを設定します。

    このセクションでは、このトピックに関連するパラメーターのみを説明します。その他のパラメーターの詳細については、「ALB インスタンスの作成と管理」をご参照ください。

    • リージョン: [中国 (杭州)] を選択します。

    • インスタンスネットワークタイプ: [パブリックネットワーク] を選択します。

  5. [インスタンス] ページで、作成した ALB インスタンスを見つけます。[操作] 列で [リスナーの作成] をクリックします。リスナー設定ウィザードが表示されます。

  6. [リスナーの設定] ステップで、次のパラメーターを設定し、[次へ] をクリックします。

    設定項目

    注意

    [負荷分散プロトコルの選択]

    リスナープロトコルタイプを選択します。このトピックでは [HTTP] を使用します。

    リスナーポート

    リクエストを受け入れてバックエンドサーバーに転送するリスナーポートを入力します。ポート範囲は 1~65535 です。このトピックでは、80 と入力します。

    [リスナー名]

    任意。

    [詳細設定]

    このトピックでは、デフォルト設定を使用します。

  7. [サーバーグループの選択] 設定ウィザードの [サーバーグループの選択] ドロップダウンリストで [Function Compute タイプ] を選択し、ステップ 2:Function Compute タイプのサーバーグループの作成で作成したバックエンドサーバーグループを選択して、[次へ] をクリックします。

  8. [設定の確認] ステップで、設定を確認して [送信] をクリックします。

ステップ 4:接続性のテスト

上記の操作を完了すると、FC と ALB の間に接続が確立されます。その後、次の操作を実行して、FC と ALB 間の接続性をテストできます。

  1. コマンドラインウィンドウを開き、curl -v コマンドを実行して Date ヘッダーフィールドを取得します。

    Function Compute は、HTTP リクエストヘッダーに Date ヘッダーフィールドを含める必要があります。

    curl -v <ALB インスタンスのドメイン名>

    获取时间

  2. curl -H コマンドを実行して、ALB インスタンスのドメイン名にアクセスします。

    curl -H "Date ヘッダー" <ALB インスタンスのドメイン名>

    次の図のような応答は、ALB がリクエストを Function Compute に転送して関数を呼び出すことができることを示します。ALB Function Compute verification result

関連情報

Function Compute コンソールに加えて、次の方法を使用してトリガーを設定できます。
  • Serverless Devs を使用してトリガーを設定します。詳細については、「Serverless Devs」をご参照ください。
  • SDK を使用してトリガーを設定します。詳細については、「SDK」をご参照ください。

トリガーを変更または削除するには、「トリガーの管理」をご参照ください。