Function Compute は、関数の実行ログを Log Service に保存することができます。Log Service に格納されている関数ログの調べるによって、コードのデバッグ、障害解析、データ解析などの操作を実行できます。本ドキュメントでは、コンソールと fcli ツールをそれぞれ使って、サービスのログストアの設定とログ表示の手順について説明します。
Log Service コンソールで表示されるログの形式はユーザーアンフレンドリーなので、ログを表示するには fcli を使用することを推奨します。コンソールでサービスのログストアを設定し、fcli ツールを介してログを表示します。
Log Service を介して関数ログを保存するには、その関数に対応するサービスで、ログプロジェクト LogProject およびログストア Logstore を設定し、そのサービスに Log Service へのアクセスを許可する必要があり。関数ログは設定された Logstore に書き込まれます。同じサービスのすべての関数ログは同じ Logstore に格納されます。
コンソールを使用する場合
コンソールを使用してサービスのログストアを設定します。
LogProject と Logstore の作成
サービスのログストアを設定する前に、ログプロジェクト LogProject とログストア Logstore がすでに存在する必要があります。LogProject と Logstore が存在しない場合は、 Log Service コンソールで作成する必要があります。手順は次のとおりです。
- Log Service コンソールで [プロジェクトの作成] をクリックします。
- プロジェクト名と属するリージョンを設定します。Log Service のプロジェクト名はグローバルユニークなものです。プロジェクトとそのリージョンが設定されると、変更は許可されません。
- プロジェクトが正常に作成されたら、Logstore を追加して Logstore 名を設定します。
- Logstore が設定完了したら、対応する Logstore に入ると、インデックス機能がまだ有効になってないプロンプトが表示される場合、右上のインデックス機能を有効に設定します。
- それで、ログプロジェクト LogProject と Logstore の作成が完了しました。
サービスの LogProject と Logstore の設定
Log Service を使用して関数ログを調べる場合
- 関数サービスの LogProject と Logstore を設定する必要があります。そのサービスのすべての関数ログは、同じ Logstore に格納されます。
- サービスの作成時に設定することも、サービスの更新時に設定することもできます。
- サービスの作成およびサービスの更新の詳細については、 サービスの操作をご参照ください。
- Function Compute サービスに Log Service サービスへのアクセスを許可します。
- サービス権限の詳細については、 権限の紹介をご参照ください。
コンソールを使用してログを表示します。
LogProject と Logstore が設定されているサービスで、新しいデフォルト関数を作成し、ログに 「hello world」を出力するようにします。その関数を実行すると、生成されたすべてのログは、ログストアに出力されます。 Log Service コンソールで Logstore に移動し、その関数の実行ログが表示されます。
fcli ツールを使用する場合
fcli を使ったことがない場合は、まず fcli をダウンロードして設定する必要があります。詳細については、fcli をご参照ください。
fcli を使用してサービスのログストアを設定します。
LogProject と Logstore の作成
fcli shell
対話モードに入ったら、mkl -p log-project -s log-store
コマンドを実行して新しい LogProject と Logstore を作成できます。その中の log-project と log-store をご自身の LogProject と Logstore に変更してくだい。例は次のとおりです。示例如下:
~ fcli shell
Welcome to the function compute world. Have fun!
>>> mkl -p test-log-project -s test-log-store
Note: you have to pay at least 0.04 RMB/day for the log store resource. For the detail billing info please refer to:
https://www.aliyun.com/price/product#/sls/detail
Do you want to create the log store? [y/n]
y
注意: Log Service はリソースに対して一定の手数料を請求します。つまり、ログを書き込まなくても、最低でも JPY 0.04/日の料金が発生します。課金については、 関連文書をご参照ください。
サービスの LogProject と Logstore の設定
>>> grant serviceName
Please input the role name: #ここでは新しいロールを作成します。そのロールに名前を付けます。
fc-logs-role
Please input the policy name: #ここでは新しい権限を作成します。その権限に名前を付けます。
fc-logs-policy
Permission grant scenarios:
1. Allow FC write function logs to your log store. #権限を選択
2. Allow FC copy code from your OSS location.
Please input your choice [1-2]:
1
Please input the log project: test-log-project
Please input the log store: test-log-store
...grant success
fcli を使用してログを調べる場合
logs
コマンドを実行してログを表示できます。
-c
—count int 返されるログの最大行数を設定します(デフォルトは 1000 行)。-d
—duration int 指定した時刻から現在の時刻までの関数ログ返します。単位:秒(デフォルトは 86400、つまり24 時間です。)-e
—end string UTC RFC3339 の形式でログの表示期限を設定します(例: 2017-01-01T01:02:03Z)。-s
—start string UTC RFC3339 の形式でログの表示開始時刻を設定します(例: 2017-01-01T01:02:03Z)。-t
—tail 最後の i 行からログを出力するように設定します。
# 対応するサービスのディレクトリの下で
# デフォルトでは、1 日の最初の 1000 行のログが出力されます。
>>> logs myFunction
# 1 分で実行されたログを印刷し、5000 行まで印刷します。
>>> logs -d 60 -c 5000 myFunction
# ログの末尾から 100 行のログを印刷します。
>>> logs -t -c 100 myFunction
# 2018-01-22T18:00:00Z から 2018-01-22T19:00:00Z までの関数のログを印刷します。
>>> logs -s 2018-01-22T18:00:00Z -e 2018-01-22T19:00:00Z myFunction