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

Server Load Balancer:function Computeの関数をALBのバックエンドサーバーとして指定する

最終更新日:Dec 06, 2024

このトピックでは、function Computeの関数をApplication Load Balancer (ALB) のバックエンドサーバーとして指定する方法について説明します。 この関数は、リクエストの配信に使用されます。 ALBインスタンス用にFunction Computeタイプのサーバーグループを作成することもできます。 ALBサーバーグループに関数を追加すると、ALBへのリクエストはfunction Computeに転送され、関数が呼び出されます。 Function Computeが関数を実行した後、応答がリクエスタに返されます。

重要

Function ComputeタイプのALBサーバーグループは、Function Compute 2.0をサポートしています。 Function Compute 3.0はサポートされていません。

このトピックで使用される関数は、Function Compute 2.0のものです。

背景情報

Alibaba Cloud Function Computeは、完全マネージド型のイベント駆動型コンピューティングサービスです。 サーバーなどのインフラストラクチャリソースを管理することなく、コードの作成とアップロードに集中できます。 Function Computeは、コンピューティングリソースを割り当て、柔軟で信頼性の高い方法でコードを実行し、ログクエリ、パフォーマンスモニタリング、アラートなどの機能を提供します。 Function Computeは、サーバーレスアーキテクチャを使用するイベント駆動型コンピューティングサービスです。 Function Computeを使用すると、インフラストラクチャリソースを管理する必要なく、コードを作成およびアップロードできます。 Function Computeを使用すると、あらゆる種類のアプリケーションとサービスをすばやく作成でき、コードの実行時に実際に消費されたリソースに対してのみ料金を支払うことができます。

関数を作成した後、リスナーとサーバーグループを設定することで、ALBのバックエンドサーバーとして関数を指定できます。 ALBがリクエストを受信すると、リクエストはFunction Computeに転送され、関数が呼び出されます。 Function Computeが関数を実行すると、レスポンスがリクエスタに返されます。

説明

Function Computeを使用する前に有効化する必要があります。

制限事項

  • ALBインスタンスと関数は同じリージョンにある必要があります。

  • ALBのバックエンドサーバーとして関数を指定する場合は、次の制限事項に注意してください。

    • 追加できるのは、HTTPリクエストを処理する関数だけです。

    • Function Computeに転送されるリクエストには、Dateヘッダーを含める必要があります。 Dateヘッダーは、リクエストが送信される時刻を指定します。

  • Function Computeタイプの各サーバーグループは、1つの関数のみをサポートします。

ステップ1: Function Computeサービスの作成

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

    重要

    Function Compute 3.0のコンソールにリダイレクトされている場合は、左上隅の [Back to Function Compute 2.0] をクリックして、Function Compute 2.0のコンソールに移動します。

  2. 左側のナビゲーションウィンドウで、[サービスと関数] をクリックします。

  3. 上部のナビゲーションバーで、Function Computeサービスを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。

  4. [サービス] ページで、[サービスの作成] をクリックしてサービスを作成します。

  5. [サービスの作成] パネルで、次のパラメーターを設定し、[OK] をクリックします。 次の表に記載されていないパラメーターは、デフォルト値を使用できます。

    パラメーター

    説明

    名前

    Function Computeサービスの名前を入力します。

    名前は1 ~ 128文字で、英数字、アンダースコア (_) 、ハイフン (-) を使用できます。 数字またはハイフン (-) で始めることはできません。

    説明

    Function Computeサービスの説明を入力します。

    ロギング

    ロギング機能を有効にするかどうかを指定します。 この例では、[有効化] が選択されています。

    • 有効にする: ログ機能を有効にすると、Function Computeは自動的にプロジェクトとLogstoreを作成し、関数のログをLogstoreに配信します。

      この場合、Function ComputeはサービスにAliyunFCDefaultRoleロールを付与します。これは、サービスがSimple Log serviceにアクセスするために必要な最小限の権限です。 Function ComputeのRAM (Resource Access Management) ロールの詳細については、「他のAlibaba Cloudサービスへのアクセス権限の付与」をご参照ください。

    • 無効化: このオプションを選択した場合、Simple Log Serviceを使用して関数のログを保存またはクエリすることはできません。

    説明

    Simple Log Serviceが有効化されていることを確認します。 それ以外の場合は、ログ機能を有効にできません。

ステップ2: 関数を作成する

  1. サービスページで、管理するサービスを見つけて、アクション列の関数をクリックします。

  2. [関数] ページで、[関数の作成] をクリックします。

  3. [関数の作成] ページで、ビジネス要件に基づいて関数を作成する方法を選択します。

    この例では、[組み込みランタイムの使用] が選択されています。

  4. 基本設定コード、およびトリガー設定セクション、次のパラメーターを設定し、作成をクリックします。

次の表に、主要なパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。

パラメーター

説明

基本設定

関数名

関数の名前を入力します。

ハンドラタイプ

ハンドラータイプを選択します。 この例では、HTTPハンドラーが選択されています。

Handler Type: 関数がHTTPリクエストまたはWebSocketリクエストを処理することを指定します。

説明

ALBはHTTPハンドラーのみをサポートします。

コード

ランタイム

ランタイム環境を選択します。 この例では、Node.js 14が選択されています。

Function Computeでサポートされているランタイム環境の詳細については、「関数の管理」をご参照ください。

コードのアップロード方法

関数コードをfunction Computeにアップロードする方法を選択します。

この例では、サンプルコードの使用が選択されています。

トリガー設定

トリガータイプ

選択したトリガーのタイプが表示されます。 この例では、HTTPトリガーが使用されています。

トリガーは、関数の呼び出し方法を指定します。

名前

トリガーの名前を入力します。

リクエスト方法

関数の呼び出しに使用できるリクエストメソッドを選択します。 この例では、GETPOSTが選択されています。

認証方法

この例では、署名認証が選択されています。 詳細については、「署名認証」をご参照ください。

  1. [コード] タブをクリックし、コードエディターでコードを変更します。

    次のコードブロックを例として使用します。

    varparams={
    	path : req.path,
     	queries : req.queries,
    	headers : req.headers,
    	method : req.method,
    	requestURI : req.url,
    	clientIP : req.clientIP,
    	log : ("Hello World.This is FC!"), 
    }
  2. コードタブで、左上隅にある配置コードをクリックし、テスト機能をクリックします。

    Function Computeが関数を実行した後、[応答] セクションで結果を確認できます。 詳細については、「関数の迅速な作成」をご参照ください。

ステップ3: Functionタイプのサーバーグループを作成する

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

  2. 上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。

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

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

    パラメーター

    説明

    サーバーグループタイプ

    作成するサーバーグループのタイプを選択します。 この例では、Function Computeが選択されています。

    サーバーグループ名

    サーバーグループの名前を入力します。

    ヘルスチェックの設定

    ヘルスチェック

    ヘルスチェックを有効にするかどうかを指定します。 この例では、ヘルスチェックは無効になっています。 デフォルト設定です。

  5. サーバーグループページで、管理するサーバーグループを見つけて、アクション列のバックエンドサーバーの変更をクリックします。

  6. バックエンドサーバータブで、関数の追加をクリックします

  7. バックエンドサーバーの追加パネルで、次のいずれかの方法を使用して関数を追加し、OKをクリックします。

    • サービスを指定して関数を追加する

      パラメーター

      説明

      設定方法

      [サービス] を選択します。

      サービス

      手順1で作成したFunction Computeサービスを選択します。

      バージョン

      [最新] を選択します。 デフォルトでは、新しく作成されたサービスはLATESTバージョンのみを実行します。

      関数

      ドロップダウンリストから作成した関数を選択します。 使用できる関数がない場合は、[関数の作成] をクリックして関数を作成します。 詳細については、「関数の管理」をご参照ください。

      説明

      説明を入力します。

    • Alibaba Cloudリソース名 (ARN) を指定して関数を追加する

      パラメーター

      説明

      設定方法

      ドロップダウンリストから [ARN] を選択します。

      ARN

      追加する関数のARNを入力します。

      function Computeコンソールの関数の詳細ページで、関数のARNをコピーできます。 詳細については、「関数のARNの取得」をご参照ください。

      説明

      説明を入力します。

手順4: ALBインスタンスの作成とリスナーの設定

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

  2. 上部のナビゲーションバーで、ALBインスタンスを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。

  3. インスタンスページで、ALBの作成をクリックします。

  4. Application Load Balancer購入ページで、パラメーターを設定し、[今すぐ購入] をクリックします。

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

    • リージョン: ALBインスタンスを作成するリージョンです。 この例では、中国 (杭州) が選択されています。

    • ネットワークタイプ: ALBインスタンスのネットワークタイプ。 この例では、インターネット接続が選択されています。

  5. インスタンスページで、ALB作成したインスタンスを検索し、アクション列のリスナーの作成をクリックします。

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

    パラメーター

    説明

    リスナープロトコルを選択します。

    リスナープロトコルを選択します。 この例では、HTTPが選択されています。

    リスナーポート

    ALBインスタンスがリッスンするポートを入力します。 ALBインスタンスは、指定されたポートでリクエストをリッスンし、リクエストをバックエンドサーバーに転送します。 有効な値: -1 から 65535 この例では、80が使用されます。

    リスナー名

    リスナーの名前を入力します。

    ヘルスチェックの設定

    この例では、デフォルトの詳細設定が使用されます。

  7. サーバーグループステップで、サーバーグループドロップダウンリストからFunction Computeを選択し、ステップ3で作成されたバックエンドサーバーグループを選択し、次へをクリックします。

  8. 構成レビューステップで、設定を確認し、送信をクリックします。

ステップ5: DNSレコードを作成する

実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。

  1. 左側のナビゲーションウィンドウで、ALB > インスタンスを選択します。

  2. インスタンスページで、ALBインスタンスのドメイン名をコピーします。

  3. CNAMEレコードを作成するには、次の手順を実行します。

    説明

    ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。

    1. Alibaba Cloud DNSコンソールにログインします。

    2. 権威DNS解決ページで、ドメイン名を見つけて、アクション列のDNS設定をクリックします。

    3. ドメイン名の詳細ページのDNS設定タブをクリックし、DNSレコードの追加をクリックします。

    4. [DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。

      パラメーター

      説明

      レコードタイプ

      ドロップダウンリストから [CNAME] を選択します。

      ホスト名

      ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。

      説明

      ルートドメイン名を使用する場合は、@ と入力します。

      DNSリクエストソース

      [デフォルト] を選択します。

      レコード値

      ALBインスタンスのドメイン名であるCNAMEを入力します。

      TTL

      DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。

ステップ6: ネットワーク接続のテスト

上記の手順を完了すると、ALBはFunction Computeに接続されます。 次の操作を実行して、ALBとFunction Compute間のネットワーク接続をテストできます。

  1. コマンドラインインターフェイス (CLI) を開き、curl -v <Domain name> コマンドを実行してDateヘッダーを照会します。

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

    image.png

  2. curl -H "Date header" <Domain name> コマンドを実行します。

    エコー応答パケットを受信した場合、次の図に示すように、ALBインスタンスがリクエストをFunction Computeに転送して関数を呼び出すことができることを示しています。ALB支持函数计算验证结果

関連ドキュメント

Function Compute 2.0のドキュメント:

  • Function Computeの詳細については、「Function Computeとは」をご参照ください。

  • 関数を更新する方法の詳細については、「関数の管理」をご参照ください。

  • 関数を削除する方法の詳細については、「関数の管理」をご参照ください。

  • Function Computeサービスを変更する方法の詳細については、「サービスの更新」をご参照ください。

  • Function Computeサービスを削除する方法の詳細については、「サービスの管理」をご参照ください。

ALBドキュメント: