Function Compute は Simple Log Service と統合されています。関数のログ機能を設定すると、Function Compute は自動的にログを収集し、指定された Logstore に配信します。Function Compute コンソールでは、単一リクエストログ、インスタンスログ、または関数ログを表示できます。また、Simple Log Service コンソールのログ分析機能を使用して、カスタムクエリを実行することもできます。
背景情報
Simple Log Service は、Alibaba Cloud が提供するワンストップのログデータサービスです。SLS を使用して関数ログを保存するには、関数を含むサービスでプロジェクトと Logstore を設定します。また、Function Compute に SLS へのアクセス権限を付与する必要があります。関数ログは設定された Logstore に送信されます。同じリージョン内の同じサービスからのすべての関数ログは、同じ Logstore に送信されます。
課金
Function Compute は、ロギング機能に対する追加料金を請求しません。Simple Log Service は、log delivery に対して料金を請求します。詳細については、「課金概要」をご参照ください。
ログ機能の設定
Function Compute コンソールでのログ設定
前提条件
Function Compute
任意: Simple Log Service (SLS)
操作手順
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[サービス & 関数] をクリックします。
上部のナビゲーションバーでリージョンを選択します。[サービス] ページで、目的のサービスを見つけ、[操作] 列の [設定] をクリックします。
サービス設定の [ログ設定] セクションで、次のパラメーターを設定し、[保存] をクリックします。
説明サービス作成時にログ機能を有効にすると、Function Compute コンソールは自動的に
aliyun-fc-cn-<region_id>で始まるプロジェクトと、その [プロジェクト] 内にデフォルトの Logstore を作成します。このようなプロジェクトはリージョンごとに 1 つだけ作成されます。以前にリージョンでプロジェクトが自動作成されたことが検出された場合、システムはそのプロジェクトを使用します。サービス作成時にログ機能を有効にしなかった場合、サービスを更新する際にカスタムの [プロジェクト] と [Logstore] を手動で選択する必要があります。
コンソールは、[ログ分割ルール]、[リクエストレベルのメトリクス]、[インスタンスレベルのメトリクス] を自動的に有効にします。また、ログのクエリに必要なすべてのインデックスも作成します。
パラメーター
必須
説明
ログ機能
はい
Simple Log Service を有効にするかどうかを指定します。有効な値:
有効:この機能を有効にすると、Function Compute はログをプロジェクトにインポートします。Function Compute コンソールおよび Simple Log Service コンソールでログをクエリおよび取得して、問題を追跡および特定できます。
説明ログ機能を有効にする場合、[ロール] セクションで Simple Log Service へのアクセス権限を持つロールを選択する必要があります。サービスロールの詳細については、「Function Compute に他の Alibaba Cloud サービスへのアクセス権限を付与する」をご参照ください。
無効:この機能を無効にすると、関数ログは永続化のために保存されず、問題を追跡または特定することはできません。
設定方法
はい
[自動設定] または [カスタム設定] を選択します。[カスタム設定] を選択した場合、[プロジェクト] と [Logstore] は必須です。
ログプロジェクト
はい
関数呼び出しログを保存する送信先のプロジェクト。
Logstore
はい
関数呼び出しログを保存する送信先の Logstore。
ログ分割ルール
いいえ
ログ分割ルールを有効にするかどうかを指定します。有効な値:
有効:この機能を有効にすると、Function Compute は分割ルールに基づいてログを複数のログセグメントにチャンク化し、Simple Log Service に 1 つずつ書き込みます。
デフォルトの分割ルールは
^.{0,2}\d{4}-\d{2}-\d{2}です。このルールはxxxx-xx-xx形式の日付に一致します。ここでxは数字を表します。このルールは、行が日付で始まるかどうかに基づいてログをチャンク化します。たとえば、ログ行が 2023-10-10 で始まる場合、それはログエントリの最初の行と見なされます。この行と、日付で始まらない後続の行は、単一のログとして Simple Log Service に書き込まれます。無効:この機能を無効にすると、ログはデフォルトで
\nを使用してチャンク化されます。
リクエストレベルのメトリクス
いいえ
リクエストメトリクスのログを Logstore にインポートするかどうかを指定します。この機能を有効にすることを強く推奨します。
有効な値:
有効:この機能を有効にすると、各関数呼び出しのメトリクスが選択した Logstore に配信されます。これらのメトリクスには、関数の実行時間、メモリ使用量、実行エラー、コールドスタート、およびコールドスタートの各ステップにかかる時間が含まれます。Function Compute は、これらのメトリクスに基づいて、呼び出しログにリクエストのリストを表示します。これらのメトリクスを使用して、エラーリクエストやすべてのコールドスタートを含むリクエストなどをフィルターすることもできます。
無効:リクエスト実行の詳細情報を表示できません。
インスタンスレベルのメトリクス
いいえ
インスタンスレベルのメトリクスを有効にするかどうかを指定します。有効な値:
有効:この機能を有効にすると、関数インスタンスのメトリックデータが選択した Logstore に配信されます。CPU、メモリ、ネットワーク I/O メトリクスなど、インスタンスディメンションでパフォーマンスメトリクスを表示できます。Function Compute は、インスタンスレベルのメトリックデータに基づいてインスタンスレベルの可観測性を提供し、関数インスタンスのエンドツーエンドのモニタリングとトラブルシューティングパスを提供します。詳細については、「インスタンスレベルのメトリクス」をご参照ください。
無効:インスタンスメトリクスの詳細情報を表示できません。
Serverless Devs を使用したログの設定
前提条件
操作手順
コードフォルダを作成します。フォルダ構造は次のとおりです。
. ├── code │ └── index.js └── s.yaml以下は s.yaml ファイルのサンプルです。
この例では、`logConfig` フィールドでログ機能を設定します。`logstore` と `project` の値を、ご利用のアカウントに存在する Logstore とプロジェクトに変更してください。`logConfig` を `auto` に設定することもできます。その場合、Function Compute は自動的に Logstore とプロジェクトを作成します。
edition: 1.0.0 name: hello-world-app access: "default" vars: region: "cn-hangzhou" service: name: "hello-world-service" description: 'hello world by serverless devs' logConfig: # project と logstore を実際の値に変更してください。logConfig:auto を使用して、プロジェクトと logstore を自動的に作成することもできます。 project: 'your-project' logstore: 'your-logstore' enableRequestMetrics: true enableInstanceMetrics: true role: 'acs:ram::<accountID>:role/aliyunfcdefaultrole' services: helloworld: component: fc props: region: ${vars.region} service: ${vars.service} function: name: "hello-world" description: 'hello world by serverless devs' runtime: nodejs14 codeUri: ./code handler: index.handler memorySize: 128 timeout: 60次のコマンドを実行してアプリケーションをデプロイします。
sudo s deploy -yコマンドが正常に実行された後、Function Compute コンソールにログインして、デプロイされた関数を表示し、ログ機能が有効になっていることを確認できます。
呼び出しログの表示
関数の詳細ページで、[呼び出しログ] をクリックして、現在の関数の呼び出しレコードをクエリします。
ページ上部でバージョンまたはエイリアスを切り替えて、特定の関数バージョンまたはエイリアスのログをクエリできます。
関数呼び出しログは、[呼び出しリクエストリスト] タブまたは [キーワード検索] タブで表示できます。違いは次のとおりです:
呼び出しリクエストリスト
リストには、関数呼び出し時間、リクエスト ID、呼び出し結果、インスタンス ID、関数のバージョンとエイリアスなどの情報が表示されます。次の図に例を示します:

リクエスト ID をクリックすると、リクエストの詳細とログの詳細が表示されます。
インスタンス ID をクリックすると、CPU 使用量、メモリ使用量、ネットワークトラフィックなど、インスタンスのメトリック使用量が表示されます。
[操作] 列で、[ログの表示] をクリックしてログの詳細を表示するか、[高度なログ] をクリックして Simple Log Service コンソールに移動し、ログのクエリと分析を行います。
キーワード検索
リストには、関数呼び出し時間、ログ内容、関数のバージョンとエイリアスなどの情報が表示されます。次の図に例を示します。[操作] 列で、[ログコンテキスト] をクリックしてこのログエントリのいくつかのコンテキストログを検索するか、[Logstore] をクリックして Simple Log Service コンソールに移動し、ログのクエリと分析を行います。

検索ボックスにキーワードを入力して、必要なログ情報をクエリできます。たとえば、テキスト
hello worldを含むログを検索するには、検索ボックスにキーワードhello worldを入力します。検索結果には、次の図に示すように、このキーワードを含むすべてのログ行が表示されます。クエリ構文の詳細については、「クエリ構文」をご参照ください。
参考
ソフトウェア開発キット (SDK) または API を呼び出して、関数のログを設定することもできます。詳細については、「CreateService」および「LogConfig」をご参照ください。