gpt4 book ai didi

amazon-web-services - CloudFormation Hooks 不会将日志推送到 Cloudwatch Logs

转载 作者:行者123 更新时间:2023-12-03 07:22:35 25 4
gpt4 key购买 nike

我正在开发一个 Cloudformation Hook。我可以成功部署它并且执行我的自定义处理程序。但是,我看不到任何 CloudWatch 日志组,因此无法调试 Hook 逻辑。

aws configure
cfn generate
cfn submit --set-default
HOOK_TYPE_ARN="arn:aws:cloudformation:eu-central-1:563262xxxxx:type/hook/My-Dummy-Hook"

aws cloudformation set-type-configuration \
--configuration file://type_config.json \
--type-arn $HOOK_TYPE_ARN \
--region eu-central-1

当我选择我的 Hook 时,转到编辑 -> 编辑日志配置,我可以看到以下 json:

{
"logGroupName": "my-dummy-hook-logs",
"logRoleArn": "arn:aws:iam::563262xxxxx:role/CloudFormationManagedUplo-LogAndMetricsDeliveryRol-KYUY5H9D4XQN"
}

此角色确实存在,它具有创建日志组等所需的所有策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents",
"cloudwatch:ListMetrics",
"cloudwatch:PutMetricData"
],
"Resource": "*",
"Effect": "Allow"
}
]
}

但我在 Cloudwatch 中仍然看不到任何日志,也没有创建日志组。一个有趣的观察是,我无法通过 AWS 控制台更改此 json,它总是抛出错误(尽管我指定了有效的角色或日志组):

Please use arn or specify a type
JSON

奇怪...

最佳答案

我的问题是我忘记在处理程序代码中指定日志级别:

import logging

# Use this logger to forward log messages to CloudWatch Logs.

LOG = logging.getLogger(__name__)
LOG.setLevel(logging.INFO) # <- this line was missing

换句话说,如果没有明确设置,将使用默认的记录器级别,即WARNING。这意味着,如果您在 Cloudwatch Logs 中调用 LOG.debug("test")LOG.info("test"),您将不会在 Cloudwatch Logs 中看到任何日志流。处理程序代码。

关于amazon-web-services - CloudFormation Hooks 不会将日志推送到 Cloudwatch Logs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72526742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com