全部产品
阿里云办公

函数访问日志服务

更新时间:2018-11-26 10:30:17

前言

在函数计算中,函数执行的日志可以存储在日志服务中,用户可以根据日志服务中存储对的函数执行的日志进行一些故障分析,数据分析等相关。本示例通过一个简单的示例展示函数计算如何接入日志服务和使用日志服务。

准备工作:创建日志项目和日志库

  1. 开通日志服务。打开日志服务产品页,单击立即开通

    log

  2. 创建项目。

    当您第一次进入日志服务管理控制台,系统会提示您创建一个项目(Project)。您也可以通过单击右上角的 创建Project 进行操作。

    创建Project需要指定 Project名称所属区域,请根据您的实际需求进行创建。其中杭州内部生产1上海内部生产1为弹内日志服务,其余皆为公共云区域。

    logproject

  3. 创建日志库

    在Project创建完成的同时,系统会提示您创建一个日志库(以下称为Logstore)。您也可以进入该Project,通过单击右上角的 创建 进行操作。创建Logstore需要指定如何使用这些日志,这边提示logtail配置可以暂时忽略。

    logstore

    注意:这边日志的区域和函数的区域是一样的,这样统一使用华东2。

    • 您需要为使用的日志资源单独付费。特别注意,日志服务会对资源收取一定的预留费用,这意味着即使您不写任何日志,也会付费,最低¥0.04/每天。计费细节请参考相关文档

    • 由于日志是调试和问题诊断的重要信息,强烈建议您开通日志服务来保存函数运行日志。

创建hello_wolrd函数计算示例

用户可以使用函数计算控制台的空白模板快速创建一个函数计算服务,具体可以参考函数计算入门示例-hello world, 这边假定是按照教程中创建的DEMO 服务下有个test的函数。

授权函数计算日志库写权限

由于日志是用户的资源,函数计算不能直接访问日志,需要获得用户的显式授权才能写入日志。有关函数计算中的角色和授权,具体可参考函数计算中角色和访问

role

  1. 打开访问控制RAM控制台, 创建一个能访问日志服务的角色。

    1. 新建一个角色fc-log。

      logrole1

      logrole2

      rolelog3

    2. 新建一个能写入日志服务的策略 write-demo-log。

      logpolicy1

      logpolicy2

      策略内容如下:(策略语言详情相关,policy语言

      1. {
      2. "Version": "1",
      3. "Statement": [
      4. {
      5. "Effect": "Allow",
      6. "Action": [
      7. "log:PostLogStoreLogs",
      8. "log:GetLogStore"
      9. ],
      10. "Resource": [
      11. "acs:log:*:123456:project/log-test-rs/logstore/demo"
      12. ]
      13. }
      14. ]
      15. }

      将Resource中的123456改成自己的阿里云account id, 从上面的策略内容中的Action中我们可以知道,这个策略是可以对刚才建立的LogStore进行读写的。

    3. 将策略 write-demo-log赋予角色fc-log,这样函数计算就能通过扮演这个角色对日志服务进行读写了。

      rolepolicy1

      logpolicy2

      角色fc-log和策略write-demo-log关联好后,在角色详情中,可以看到如下对应关系:

      logpolicy3

  2. 打开函数计算控制台, 设置函数服务DEMO的日志和角色。

    fc-log-role

  3. 进入函数计算控制台代码执行页,点击执行,在执行日志点击日志查询可跳转到日志控制台,就有更多分析和查询日志的方式。

    fuc1

    func2

    log

tips: 跳转到日志控制台的时候,会提示您建立索引。

总结

通过本教程,用户可以给函数计算接入SLS日志服务,SLS日志服务可以更好托管日志以及提供对日志的分析等一系列服务。