将 (Lambda) 订阅加入 CW Logs 组
Put (Lambda) subscription on CW Logs group
我正在尝试从正在扫描具有正确标签的 lambda 的 Lambda 函数订阅 CW 日志组。调用 put_subscription_filter 时抛出错误:
"An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter
operation: Could not execute the lambda function. Make sure you have given CloudWatch Logs
permission to execute your function."
在放置订阅过滤器的文档中声明需要 iam:PassRole 权限。我已经同意了。我已通过授予它完整的管理员权限来确保这不是 Lambda 函数的前提问题。
通过读取错误表明是 CW Logs 需要权限才能执行某个函数,我猜这可能是它们的意思是订阅目标函数。我在这里尝试了很多不同的东西,但仍然没有雪茄。
在控制台中设置订阅过滤器非常简单,没有修改或创建任何策略,如我所见。
有没有人有这方面的经验或任何输入?
您需要添加 lambda 调用权限,以便 CloudWatch 可以在日志可用时发送和执行 lambda
使用 AWS CLI 是最简单的方法
aws lambda add-permission \
--function-name "helloworld" \
--statement-id "helloworld" \
--principal "logs.region.amazonaws.com" \
--action "lambda:InvokeFunction" \
--source-arn "arn:aws:logs:region:123456789123:log-group:TestLambda:*"
使用控制台
1. Go to Lambda Function
2. Configuration -> Permissions tab
3. Scroll down and Click Add permissions
4. Choose "AWS service"
5. Principal - CloudWatch log group ARN
6. Action - Lambda:InvokeFunction
7. Statement Id - policy statement name, anything meaningful
8. Save
通过 CLI 或控制台完成后,尝试创建对该 lambda 的 CloudWatch 订阅
我正在尝试从正在扫描具有正确标签的 lambda 的 Lambda 函数订阅 CW 日志组。调用 put_subscription_filter 时抛出错误:
"An error occurred (InvalidParameterException) when calling the PutSubscriptionFilter
operation: Could not execute the lambda function. Make sure you have given CloudWatch Logs
permission to execute your function."
在放置订阅过滤器的文档中声明需要 iam:PassRole 权限。我已经同意了。我已通过授予它完整的管理员权限来确保这不是 Lambda 函数的前提问题。
通过读取错误表明是 CW Logs 需要权限才能执行某个函数,我猜这可能是它们的意思是订阅目标函数。我在这里尝试了很多不同的东西,但仍然没有雪茄。
在控制台中设置订阅过滤器非常简单,没有修改或创建任何策略,如我所见。
有没有人有这方面的经验或任何输入?
您需要添加 lambda 调用权限,以便 CloudWatch 可以在日志可用时发送和执行 lambda
使用 AWS CLI 是最简单的方法
aws lambda add-permission \
--function-name "helloworld" \
--statement-id "helloworld" \
--principal "logs.region.amazonaws.com" \
--action "lambda:InvokeFunction" \
--source-arn "arn:aws:logs:region:123456789123:log-group:TestLambda:*"
使用控制台
1. Go to Lambda Function
2. Configuration -> Permissions tab
3. Scroll down and Click Add permissions
4. Choose "AWS service"
5. Principal - CloudWatch log group ARN
6. Action - Lambda:InvokeFunction
7. Statement Id - policy statement name, anything meaningful
8. Save
通过 CLI 或控制台完成后,尝试创建对该 lambda 的 CloudWatch 订阅