当为CloudWatch日志组创建新的订阅筛选器时,AWS控制台似乎没有提供选择特定Lambda版本的方法。这对于CI/CD非常重要,因为我可能需要更新fn并在不中断当前订阅的情况下测试它。
有办法锁定fn版本的订阅吗?如果是的话,你是如何做到这一点的?
发布于 2020-10-09 19:23:42
您还必须授予CloudWatch日志调用lambda函数的权限!
aws lambda add-permission \
--function-name "foo" \
--qualifier "56" \
--statement-id "Allow-invoke-foo-or-whatever" \
--principal "logs.us-east-42.amazonaws.com" \
--action "lambda:InvokeFunction" \
--source-arn "arn:aws:logs:us-east-1:123456789012:log-group:/ecs/my-prod-server:*" \
--source-account "123456789012"仍然不确定是否可以通过控制台,但我已经找到了一个使用aws-cli的解决方案。您可以在目标arn的末尾添加版本号。例如,要将日志发送到foo version 56,请执行以下操作:
aws logs put-subscription-filter \
--log-group-name "/ecs/my-prod-server" \
--filter-name "BestFilter_ever" \
--filter-pattern "{$.level=*}" \
--destination-arn "arn:aws:lambda:us-east-42:123456789012:function:foo:56"https://serverfault.com/questions/1037111
复制相似问题