You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CDK中DockerImageFunction添加自定义CloudWatch日志组参数报错

问题:AWS CDK中DockerImageFunction添加log_group参数报错

使用AWS CDK 2.66.0(也曾尝试2.133.0版本),为DockerImageFunction创建的Lambda资源添加log_group=self.lambda_log_group属性时,触发以下错误:

TypeError: __init__() got an unexpected keyword argument 'log_group'.

需求是将Lambda日志从自动创建的CloudWatch日志组切换到自定义日志组,此前仅配置log_retention=logs.RetentionDays.ONE_MONTH时日志可正常输出到默认组。目前自定义日志组能正常创建,但添加log_group参数就报错,不添加则Lambda仍使用默认日志组。

原因

log_group并非DockerImageFunction构造函数的直接顶级参数,它属于LambdaFunctionProps中的logging_config配置项,直接作为顶级参数传入会被识别为未知参数。

解决方案

将log_group嵌套在logging_config字典中传入,修改DockerImageFunction的初始化代码:

修改前的错误代码片段

ec2_launch_fn = DockerImageFunction(
    self,
    "{}-EC2LifeCycleLaunch-{}".format(self._res_name, self._instance),
    # 其他参数...
    log_group=self.lambda_log_group,
    # 其他参数...
)

修改后的正确代码

ec2_launch_fn = DockerImageFunction(
    self,
    "{}-EC2LifeCycleLaunch-{}".format(self._res_name, self._instance),
    function_name=f'EC2LifeCycleLaunch-{self._instance}',
    code=DockerImageCode.from_image_asset(
        directory=lambda_path,
        network_mode=ecra.NetworkMode.HOST
    ),
    description="Lambda to update Oracle database when an auto scaling group launches an EC2",
    environment={
        "REGION": self.region,
        "SECRET_NAME": f"{self._instance}/db/gbcust",
        "FO_ENVIRONMENT": self._instance,
    },
    vpc=auto_scaling_vpc,
    vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_ISOLATED),
    security_groups=[security_group],
    logging_config={
        "log_group": self.lambda_log_group
    },
    memory_size=128,
    timeout=Duration.seconds(30),
    retry_attempts=2
)

同时保留已配置的Lambda角色权限(确保能写入自定义日志组):

ec2_launch_fn.add_to_role_policy(
    iam.PolicyStatement(
        effect=iam.Effect.ALLOW,
        actions=["logs:CreateLogStream", "logs:PutLogEvents"],
        resources=[f"arn:aws:logs:{self.region}:{self.account}:log-group:{self.lambda_log_group.log_group_name}:*"]
    )
)

内容的提问来源于stack exchange,提问作者Rafiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:18:15