通过 AWS 中的 Lambda 对 AWS 中的 S3 数据进行抓取并上报到观测云日志中。
-
创建 S3 存储桶
-
将策略附加到 S3 存储桶
-
配置访问日志
-
确认存储桶权限
-
打开 Lamba 控制台的函数页面。
-
选择创建函数
-
选择从头开始创作
-
输入函数名称
-
设置
运行时
选项为Python 3.10
-
在 Execution Role(执行角色)中,选择 Create a new role with basic Lambda permissions(创建具有基本 Lambda 权限的新角色,具体权限列表请见附录,如已存在可使用最小权限角色可直接使用)。Lambda 创建执行角色,该角色授予函数上载日志到 Amazon CloudWatchlogs 的权限。在您调用函数时,Lambda 函数担任执行角色,并使用该执行角色为 Amazon 软件开发工具包创建凭证和从事件源读取数据
-
点击创建函数
-
在 GitHub 中拉取同步代码至下方代码源中将 lambda-forward.py 内容复制到 lambda-function.py 中
-
在将 lambda-function.py 相同目录下新建 setting.py, datakit.py, dataway,py 文件,并将 GitHub 中相应文件代码复制进去
-
添加环境变量
- DATAKIT_IP:datakit 部署的 ip 地址,上报数据源为 datakit,必选
- DATAKIT_PORT:datakit 服务端口,上报数据源为 datakit,非必选,默认:
9529
- GUANCE_NODE:观测云节点,上报数据源为 dataway,必选,选值范围:
default
,aws
,cn3
,cn4
,cn5
,us1
,eu1
,ap1
,cn6
- GUANCE_TOKEN:观测云工作空间
Token
,上报数据源为 dataway
注意:上报数据源 datakit 与 dataway 必选一个,选择 datakit 请配置
DATAKIT_IP
, 选择 dataway 请配置GUANCE_NODE
、GUANCE_TOKEN
-
如果 datakit 端口不是默认的
9529
可添加环境变量 DATAKIT_PORT 填写为正确的端口地址(此变量非必填
) -
点击
Depoly
发布
-
点击
添加触发器
-
设置
选择一个源
为S3
-
选择需要监听的
bucket
-
选择要触发 Lambda 函数的事件 Event types
-
同意 我承认不推荐对输入和输出使用相同的 S3 bucket,并且这种配置可能导致递归调用、增加 Lambda 使用和增加成本
-
点击添加
logs: CreateLogGroup
logs: CreateLogStream
logs: PutLogEvents
lambda: *
AmazonS3ReadOnlyAccess