Function Computeは、Simple Log Serviceとの統合をサポートしています。 関数のログ機能を設定すると、Function Computeは関数のログを自動的に収集し、そのログをSimple Log Serviceの指定されたログストアに送信します。 Function Computeコンソールで、関数呼び出しリクエスト、関数インスタンス、および関数に基づいてログを表示できます。 Simple Log Serviceコンソールでログ分析機能を使用して、必要に応じてログを取得することもできます。
背景情報
Simple Log Serviceは、Alibaba Cloudによって開発されたワンストップのログデータ管理サービスです。 Simple Log Serviceに関数呼び出しログを保存するには、関数でログプロジェクトとLogstoreを設定し、Simple log Serviceにアクセスするための権限を関数に付与する必要があります。 これにより、関数呼び出しログが設定済みのLogstoreに出力されます。
課金ルール
Function Computeは、ロギング機能の使用に料金を請求しません。 ただし、Simple Log Serviceは、設定されたLogstoreに送信されるログに対して料金を請求します。 詳細については、「課金の概要」をご参照ください。
ロギング機能の設定
Function Computeコンソールの使用
あなたが始める前に
Function Compute
オプション: 簡易ログサービス
手順
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。
関数の詳細ページで、 を選択し、[変更] をクリックします。 [ログ] パネルで、次のパラメーターを設定し、[デプロイ] をクリックします。
説明関数の作成時にログ機能を有効にすると、function Computeコンソールは、
aliyun-fc-cn-<region_id>
で始まるログプロジェクトと、ログプロジェクトのデフォルトのLogstoreを自動的に作成します。 各リージョンで作成できるログプロジェクトは1つだけです。 ログプロジェクトがリージョンに既に作成されていることをシステムが検出すると、ログプロジェクトが直接使用されます。関数の作成時にログ機能を有効にしない場合は、関数の更新時にログプロジェクトとログストアを手動で選択する必要があります。
ログセグメントルール、リクエストレベルのメトリック、およびインスタンスレベルのメトリックが自動的に有効になり、ログのクエリに必要なすべてのインデックスが作成されます。
パラメーター
必須
説明
ロギング
継続する
ロギング機能を有効にするかどうかを指定します。 有効な値:
有効にする: ログ機能を有効にすると、Function Computeはログをログプロジェクトにインポートします。 これにより、Function ComputeコンソールまたはSimple Log Serviceコンソールでログを照会および取得して、問題のトラブルシューティングを行うことができます。
無効: ログ機能を有効にしないと、機能ログが保持されないため、トラブルシューティングが困難になる可能性があります。
設定モード
継続する
有効な値: 自動設定およびカスタム設定。 [カスタム設定] を選択した場合、Log ServiceプロジェクトおよびLogstoreパラメーターを指定する必要があります。
Log Serviceプロジェクト
継続する
関数呼び出しログを保存するSimple Log Serviceプロジェクトを指定します。
ログストア
継続する
関数呼び出しログを格納するLogstoreを指定します。
ログ分割ルール
継続しない
関数呼び出しログを分割するかどうかを指定します。 以下の点にご注意ください。
有効にする: ログセグメンテーションを有効にすると、ログをSimple log Serviceに書き込む前に、Function Computeがルールに基づいてログをセグメントに分割します。
デフォルトのログセグメンテーションルールは
^.{0,2}\d{4}-\d{2}-\d{2}
で、xxxx-xx-xx
形式に準拠した日付と一致します。x
は数値を表します。 このルールに基づいて、Function Computeはログの最初の行に日付が含まれているかどうかに基づいてログを分割します。 たとえば、ログの最初の行が2023-10-10の場合、ログはログの最初の行と見なされ、日付を含まない後続のログとともにSimple log Serviceに書き込まれます。 これらのログはすべて、Simple log Serviceによって1つのログと見なされます。無効: ログセグメンテーションを無効にすると、Function Computeは特別なルールを使用せずに
\n
を使用してログを分割します。
リクエストレベルのメトリック
継続しない
リクエストメトリックのログをLogstoreにインポートするかどうかを指定します。 この機能を有効にすることを推奨します。
以下の点にご注意ください。
有効にする: このモードを有効にすると、実行時間、メモリ使用量、実行エラー、コールドスタートステータス、各コールドスタートステップの期間など、関数の各呼び出しのメトリックが選択したLogstoreに配信されます。 Function Computeは、これらのメトリックに基づいて呼び出しログにリクエストをリストします。 エラーが報告されたすべてのリクエストをフィルタリングしたり、コールドスタートが発生したリクエストをフィルタリングしたりするなど、メトリックに基づいてリクエストをフィルタリングすることもできます。
無効: このモードを無効にすると、リクエストの実行詳細を表示できません。
インスタンスレベルのメトリック
継続しない
インスタンスレベルのメトリックを収集するかどうかを指定します。 以下の点にご注意ください。
有効にする: このモードを有効にすると、関数インスタンスのメトリックデータが設定されたLogstoreに送信されます。 これにより、CPU、メモリ、ネットワークI/Oの使用量など、関数インスタンスのパフォーマンスメトリックを表示できます。 Function Computeは、これらのメトリックに基づいてインスタンスレベルの可観測性を提供します。 これにより、関数インスタンスを監視したり、問題のトラブルシューティングをエンドツーエンドで行うことができます。 詳細については、「インスタンスレベルのメトリック」をご参照ください。
無効: このモードを無効にすると、インスタンスメトリックの詳細を表示できません。
Serverless Devsを使用する
始める前に
手順
コードディレクトリを作成します。 次のサンプルコードは、ディレクトリ構造を示しています。
. ├── code │ └── index.js └── s.yaml
次のサンプルコードは、s.yamlファイルを示しています。
この例では、logConfigセクションを使用してロギング機能を設定します。 既存のログプロジェクトとlogstoreに基づいて、ログストアとプロジェクトフィールドを指定する必要があります。 logConfigを直接autoに設定することもできます。 これにより、Function ComputeはログプロジェクトとLogstoreを自動的に作成します。
edition: 3.0.0 name: hello-world-app access: "default" vars: # グローバル変数。 region: 「cn-hangzhou」 resources: hello_world: component: fc3# コンポーネントの名前。 props: region: ${vars.region} functionName: "start-nodejs-****" description: 'hello world by serverless devs' runtime: "nodejs16" code: ./code handler: index.handler memorySize: 128 timeout: 30 logConfig: # 実際に使用するプロジェクトとLogstoreを指定します。 または、このフィールドをautoに設定して、システムがプロジェクトとLogstoreを作成できるようにします。 enableInstanceMetrics: true enableRequestMetrics: true logBeginRule: DefaultRegex logstore: 'your-logstore' project: 'your-project'
次のコマンドを実行して、関数をデプロイします。
sudo s deploy -y
コードを実行した後、Function Computeコンソールにログインして、関数がデプロイされ、ログ機能が有効になっているかどうかを確認できます。
関数呼び出しログの表示
関数の詳細ページで、[ログ] タブをクリックして、関数の呼び出しレコードを照会します。
関数の詳細ページで、バージョンまたはエイリアスドロップダウンリストから関数のバージョンまたはエイリアスを選択して、バージョンまたはエイリアスの詳細ページに移動し、[ログ] タブをクリックしてログを照会することもできます。
関数呼び出しログは、[呼び出しリクエスト] タブまたは [キーワードによる検索] タブで表示できます。 2つのタブに表示される情報の違いを次に示します。
呼び出しリクエスト
関数の呼び出し時間、リクエストID、呼び出し結果、インスタンスID、バージョンまたはエイリアスが表示されます。
呼び出しレコードのリクエストIDをクリックして、リクエストとログの詳細を表示します。
呼び出しレコードのインスタンスIDをクリックして、CPU使用率、メモリ使用率、ネットワークトラフィックなどのインスタンスのリソース使用率を表示します。
呼び出しレコードに対応する [操作] 列の [ログの表示] をクリックして、ログの詳細を表示します。 [操作] 列の [詳細ログ] をクリックし、[Simple Log Service] コンソールに移動してログを照会および分析します。
キーワードで検索
関数の呼び出し時間、ログの内容、関数のバージョンまたはエイリアスが表示されます。 呼び出しレコードに対応する [操作] 列の [ログコンテキスト] をクリックして、ログエントリのコンテキストを照会します。 [操作] 列の [Logstore] をクリックし、[Simple Log Service] コンソールに移動してログを照会および分析します。
検索ボックスにキーワードを入力して、ログをクエリできます。 たとえば、テキスト
hello world
を含むログを検索する場合、検索ボックスにキーワードhello world
を入力できます。 検索結果は、キーワードを含むすべてのログ行です。 構文の詳細については、「検索構文」をご参照ください。