Simple Log ServiceをFunction Computeと統合して、関数のログ機能を提供できます。 Function Computeは、ログ機能の設定後、関数のログを自動的に収集し、ログをSimple Log Serviceの指定されたログストアに送信します。 Function Computeコンソールで、リクエスト、インスタンス、または関数のログを表示できます。 Simple Log Serviceコンソールのログ分析機能を使用して、ビジネス要件に基づいてログを取得することもできます。
背景
Simple Log Serviceは、Alibaba Cloudによって開発されたワンストップのログ管理サービスです。 Simple Log Serviceを使用して関数ログを保存する前に、function Computeの対応するサービスのプロジェクトとLogstoreをSimple Log Serviceで指定し、サービスにSimple Log serviceにアクセスする権限を付与する必要があります。 関数呼び出しログは、指定されたLogstoreに保存されます。 同じリージョンのサービスに対して生成されるすべての関数呼び出しログは、同じLogstoreに保存されます。
課金
Function Computeは、ロギング機能の使用に料金を請求しません。 ただし、ログ機能を使用すると、Simple Log Serviceによって料金が発生します。 詳細については、「課金の概要」をご参照ください。
ロギング機能の設定
Function Computeコンソールの使用
あなたが始める前に
Function Compute
(オプション) 簡易ログサービス
手順
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで目的のサービスを見つけ、[操作] 列の [設定] をクリックします。
ログ設定[サービスの変更] ページのセクションでパラメーターを設定し、保存をクリックします。
説明サービスの作成時にログ機能を有効にすると、Function Computeコンソールは、プレフィックスが
aliyun-fc-cn-<region_id>
のログプロジェクトと、デフォルトのLogstoreがログプロジェクトの下に自動的に作成されます。 各リージョンで作成できるログプロジェクトは1つだけです。 このようなログプロジェクトがリージョンに既に作成されていることをシステムが検出すると、ログプロジェクトが直接使用されます。サービスの作成時にログ機能を有効にしない場合は、サービスの更新時にSimple Log service ProjectとLogstoreを手動で指定する必要があります。
ログセグメントルール、リクエストレベルのメトリック、およびインスタンスレベルのメトリックが自動的に有効になり、ログのクエリに必要なすべてのインデックスが作成されます。
パラメーター
必須
説明
ロギング
必須
ロギング機能を有効にするかどうかを指定します。 有効な値:
有効にする: ログ機能を有効にすると、Function Computeはログを指定したログプロジェクトにインポートします。 これにより、Function ComputeコンソールまたはSimple Log Serviceコンソールでログを照会および取得し、ログを使用して問題のトラブルシューティングを行うことができます。
説明ログ機能を有効にするには、[ロールの設定] セクションでSimple Log Serviceへのアクセスを許可されたロールを使用する必要があります。 サービスロールの詳細については、「他のAlibaba Cloudサービスへのアクセス権限の付与」をご参照ください。
無効: ログ機能を有効にしないと、機能ログが保持されないため、トラブルシューティングが困難になる可能性があります。
設定モード
必須
有効な値: 自動設定およびカスタム設定。 [カスタム設定] を選択した場合、[Simple Log Service Project] および [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を使用する
始める前に
手順
コードディレクトリを作成します。 次のサンプルコードは、ディレクトリ構造を示しています。
. ├─ ─ コード │ oes ─ ─ index.js └ ─ ─ s.yaml
次のサンプルコードは、s.yamlファイルを示しています。
この例では、logConfigセクションを使用してロギング機能を設定します。 ログプロジェクトとlogstoreに基づいて、ログストアとプロジェクトフィールドを指定する必要があります。 logConfigをautoに設定して、Function ComputeがログプロジェクトとLogstoreを自動的に作成できるようにすることもできます。
エディション: 1.0.0 名前: hello-world-app access: "default" vars: リージョン: 「cn-hangzhou」 service: 名前: "hello-world-service" 説明: 'hello world by serverless devs' logConfig: # プロジェクトとLogstoreを指定します。 または、このフィールドをautoに設定して、システムがプロジェクトとLogstoreを作成できるようにします。 プロジェクト: 'your-project' logstore: 'your-logstore' enableRequestMetrics: true enableInstanceMetrics: true role: 'acs:ram ::< accountID>:role /aliyunfcdefaultule サービス: helloworld: コンポーネント: fc 小道具: region: ${vars.region} service: ${vars.service} 関数: 名前: "hello-world" 説明: 'hello world by serverless devs' ランタイム: nodejs14 codeUri: 。/コード handler: index.handler memorySize: 128 タイムアウト: 60
次のコマンドを実行して、アプリケーションをデプロイします。
sudoのdeploy -y
コマンドを実行した後、Function Computeコンソールにログインして、関数がデプロイされ、ログ機能が有効になっているかどうかを確認できます。
関数呼び出しログの表示
関数の呼び出しログを表示するには、関数の詳細ページで [ログ] タブをクリックします。
ページ上部の [バージョン] または [エイリアス] ドロップダウンリストで関数のバージョンまたはエイリアスを変更して、特定のバージョンまたはエイリアスの呼び出しログを照会できます。
関数呼び出しログは、[リクエストリスト] タブまたは [キーワードで検索] タブで表示できます。 2つのタブに表示される情報の違いを次に示します。
[リクエストリスト] タブ
関数の呼び出し時刻、リクエストID、呼び出し結果、インスタンスID、関数のバージョンとエイリアスが [呼び出し要求リスト] タブに表示されます。 次の図は例を示しています。
呼び出しレコードのリクエストIDをクリックして、リクエストとログの詳細を表示します。
呼び出しレコードのインスタンスIDをクリックして、CPU使用率、メモリ使用率、ネットワークトラフィックなど、インスタンスのリソース使用率を表示します。
呼び出しレコードに対応する [操作] 列の [ログの表示] をクリックして、ログの詳細を表示します。 [操作] 列の [詳細ログ] をクリックし、[Simple Log Service] コンソールに移動してログを照会および分析します。
キーワードで検索するタブ
関数の呼び出し時間、ログの内容、関数のバージョンとエイリアスが [キーワードで検索] タブに表示されます。 以下の図は一例です。 [操作] 列の [ログコンテキスト] をクリックすると、ログエントリのコンテキストログを検索できます。 [操作] 列の [Logstore] をクリックして [Simple Log Service] コンソールに移動し、ログを照会および分析することもできます。
検索ボックスにキーワードを入力して、ログをフィルタリングできます。 たとえば、
hello world
を含むログを検索する場合、検索ボックスにキーワードhello world
を入力して、キーワードを含むすべてのログを検索できます。 以下の図は一例です。 キーワードの構文の詳細については、「検索構文」をご参照ください。
関連ドキュメント
SDKまたはAPI操作を呼び出して、関数のログを設定することもできます。 詳細については、「CreateService」および「LogConfig」をご参照ください。