Function Compute では、Application Load Balancer (ALB) をイベントソースとして使用し、関数に ALB トリガーを構成できます。Function Compute の関数を ALB インスタンスのバックエンドサーバーとして指定することで、ALB から Function Compute にリクエストを転送して関数を呼び出すことができます。
概要
Function Compute を ALB のバックエンドサービスとして追加できます。このようにして、ALB がリクエストを受信すると、そのリクエストを Function Compute に転送します。Function Compute が対応する関数を実行した後、レスポンスがリクエスト元に返されます。
ALB と Function Compute は、Alibaba Cloud のセキュアな内部ネットワークを介して通信します。
主な機能
サーバーレスアーキテクチャ:Function Compute を ALB のバックエンドサービスとして追加することで、サーバーレスアプリケーションを簡単に構築できます。これにより、O&M コストが大幅に削減されます。
自動スケーリング:Function Compute は、トラフィックに基づいて計算リソースを自動的にスケールアップまたはスケールダウンします。これにより、ピーク時にはアプリケーションに十分な計算能力が確保され、オフピーク時にはリソースが節約されます。
高可用性と耐障害性:ALB と Function Compute が連携して、高可用性とディザスタリカバリ機能を提供します。これにより、アプリケーションの安定した運用が保証されます。
利用シーン
マイクロサービス:高度なルーティング機能を活用することで、ALB はさまざまなマイクロサービス関数にリクエストを転送します。一方、Function Compute は、多数の同時リクエストを処理するためにリソースを動的にスケーリングし、システムの弾力性と信頼性を向上させます。
リアルタイムデータ処理:ALB はデータ処理リクエストを適切な関数に転送し、関数は最小限のコードとシンプルな構成でデータをリアルタイムに処理します。
イベントドリブンシナリオ:ALB は受信イベントを適切な関数に転送し、関数はこれらのイベントを処理して、結果を指定されたデータベースに保存するか、他のサービスに送信します。これにより、動的なイベント処理が可能になります。
画像および動画処理:ALB はアップロードされた画像と動画を適切な関数に転送して処理し、Function Compute はワークロードに基づいて自動的にスケーリングする弾力的な計算リソースを提供します。これにより、効率的な処理が保証されます。
制限事項
特定のリージョンでのみ、Function Compute の関数を ALB インスタンスのバックエンドサーバーとして指定できます。これらのリージョンの詳細については、「Function Compute を ALB のバックエンドサービスとして追加できるリージョン」をご参照ください。
ALB インスタンスと関数は同じリージョンにある必要があります。
ALB インスタンスのサーバーグループには、Function Compute から 1 つの関数のみを追加できます。
Function Compute 2.0 で関数を作成し、[ハンドラータイプ] を [イベントハンドラー] に設定した場合、この関数を ALB インスタンスのバックエンドサーバーとして指定するときに HTTP トリガーを構成する必要があります。
サンプルシナリオ
ある e コマース企業は、プラットフォーム上の大量のユーザーリクエストを管理するために、Alibaba Cloud リージョンに ALB をデプロイしました。ビジネスの拡大とユーザー数の増加に伴い、企業は動的コンテンツの生成、ユーザー行動分析、パーソナライズされた推奨などのタスクのための柔軟で効率的なソリューションを必要としています。
これらのニーズを満たすために、企業は Function Compute を ALB と統合します。この組み合わせは、これらのタスクを効率的に処理し、ユーザーエクスペリエンスを大幅に向上させます。
前提条件
ALB インスタンスが作成されていること。詳細については、「ALB インスタンスの作成」をご参照ください。
手順
ステップ 1:関数の作成
Function Compute コンソールにログインし、左側のナビゲーションウィンドウで を選択します。[関数] ページで、上部のナビゲーションバーでリージョンを選択し、[関数の作成] をクリックします。
「関数詳細」ページの[コード]タブで、[関数をテスト]をクリックします。
関数が実行されると、実行結果
hello worldが返されます。
[関数の作成] ページで、[イベント関数] を選択し、ランタイムとデフォルトのサンプルコードを選択し、その他のパラメーターにはデフォルト値を使用し、[作成] をクリックします。
この例では、組み込みの Node.js ランタイムを使用しています。
ステップ 2:Function Compute タイプのサーバーグループの作成
Server Load Balancer (SLB) コンソール にログインし、左側のナビゲーションウィンドウで [ALB] > [サーバーグループ] を選択します。上部のナビゲーションバーでリージョンを選択し、サーバーグループの作成 をクリックします。
[サーバーグループの作成] ダイアログボックスで、サーバーグループタイプ を [Function Compute] に設定し、サーバーグループ名を入力して、[作成] をクリックします。

[サーバーグループが作成されました] というダイアログボックスで、[バックエンドサーバーの追加] をクリックします。
バックエンドサーバーの追加 パネルで、作成した関数を選択し、[OK] をクリックします。
この例では、[構成方法] は [サービス] に設定され、[関数] は作成された関数に設定され、[バージョン] は [LATEST] に設定されています。[Alibaba Cloud リソース名 (ARN) 構成方法] を使用する場合は、事前に関数 ARN を取得する必要があります。取得方法の詳細については、「関数の ARN を取得する」をご参照ください。

ステップ 3:リスナーの構成
左側のナビゲーションウィンドウで、 を選択します。表示されるページで、管理する ALB インスタンスを見つけ、その ID をクリックします。
[リスナー] タブをクリックし、[リスナーの作成] をクリックします。
[リスナーの構成] ステップで、リスナープロトコルとリスナーポートを構成し、[次へ] をクリックします。
[HTTP] とポート [80] を使用することをお勧めします。HTTP リスナーを作成することを選択した場合は、その他のパラメーターにデフォルト値を使用するか、必要に応じて変更できます。詳細については、「HTTP リスナーを追加する」をご参照ください。

[サーバーグループの選択] ステップで、[サーバーグループ] ドロップダウンリストから [Function Compute] を選択し、ステップ 2 で作成したサーバーグループを選択して、[次へ] をクリックします。

[構成レビュー] ステップで、構成を確認し、[送信] をクリックします。
ステップ 4:接続性のテスト
上記の手順を実行した後、Function Compute と ALB の間に接続が確立されます。CLI を開き、curl <ALB インスタンスドメイン名> コマンドを実行して、ALB インスタンスと Function Compute 間の接続性をテストできます。
次のコマンドを実行する前に、
alb-n9p0q18eh2pbw****.{region_id}.alb.aliyuncsslb.comを ALB インスタンスの実際のドメイン名に置き換えます。イントラネット経由で ALB インスタンスにアクセスする場合は、オンプレミスネットワークを含む Virtual Private Cloud (VPC) インスタンスが、ALB インスタンスがデプロイされているインスタンスと同じであることを確認してください。
ALB インスタンスのドメイン名にドメイン名解決 (DNS) を構成し、カスタムドメイン名をバインドしている場合は、
alb-n9p0q18eh2pbw****.{region_id}.alb.aliyuncsslb.comをカスタムドメインに置き換えます。DNS の構成方法の詳細については、「ステップ 4: ドメイン名解決を構成する」をご参照ください。
curl alb-n9p0q18eh2pbw****.{region_id}.alb.aliyuncsslb.com次の結果が返されます。これは、ALB インスタンスがリクエストを Function Compute に転送して関数を呼び出すことができることを示しています。

関連情報
実際のビジネスシナリオでは、カスタムドメイン名を使用し、CNAME レコードを使用して ALB インスタンスのドメイン名に解決することをお勧めします。これにより、ALB インスタンスはカスタムドメインを介して関数にアクセスできます。詳細については、「ステップ 4:ドメイン名解決の構成」をご参照ください。カスタムドメイン名をバインドする前に、ドメインを登録し、ICP 登録プロセスを完了していることを確認してください。詳細については、「Alibaba Cloud でドメイン名を登録する」および「ICP 登録プロセス」をご参照ください。
サーバーグループの作成時にヘルスチェックを有効にすると、ヘルスチェックプローブは Function Compute へのリクエストとして扱われ、料金が発生します。サーバーグループの作成の詳細については、「サーバーグループを作成する」をご参照ください。課金の詳細については、「課金対象項目と単価」をご参照ください。