【发布时间】:2017-08-31 22:34:21
【问题描述】:
我知道应该有一种方法可以使用 aws ruby sdk 为 AWS Lambda 创建触发器(就像可以使用 AWS 管理控制台一样)。
*更新,我找到了一种创建触发器的方法。我正在使用以下代码来做到这一点:
@cloudwatchlogs = Aws::CloudWatchLogs::Client.new(region: region, credentials: Aws::Credentials.new(aws_access_key_id, aws_secret_access_key))
@cloudwatchlogs.put_subscription_filter({
log_group_name: "RDSOSMetrics",
filter_name: "RDS metrics filter",
filter_pattern: "RDS metrics filter pattern",
destination_arn: function_arn
})
我在尝试这样做时遇到以下错误:
*** Aws::CloudWatchLogs::Errors::InvalidParameterException Exception: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function
只是为了测试它,我有角色 X,它附加到 Lambda 函数,并且该角色添加了 AWSLambdaFullAccess 策略,但我仍然收到此错误。
我还缺少什么
谢谢, 巴基尔
【问题讨论】:
-
您能否说明您要添加哪种“CloudWatch 触发器”?这有点模棱两可;您可以根据通过 cloudwatch 警报发布的消息添加 cloudwatch 事件(计划)触发器、cloudwatch 日志触发器或 SNS 触发器。该细节将改变答案的范围。
-
更新了我的回复。一般来说,在我的情况下,我需要用于 lambda 函数的 cloudwatch 日志触发器
标签: ruby amazon-web-services aws-sdk