如何通过Python CDK为Bedrock Agent开启CloudWatch或S3日志?
Python CDK配置Bedrock Agent日志(CloudWatch/S3)的实现方法
不需要依赖自定义资源,当前AWS CDK的aws-bedrock模块已经原生支持为Bedrock Agent配置CloudWatch或S3日志功能,只要使用足够新版本的CDK(建议2.100.0及以上)即可直接实现。
配置CloudWatch日志
首先创建CloudWatch日志组,然后在Agent配置中关联该日志组并指定日志级别:
from aws_cdk import ( aws_cloudwatch_logs as logs, aws_bedrock as bedrock, Stack, RemovalPolicy, ) from constructs import Construct class BedrockAgentLogStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # 创建CloudWatch日志组 agent_log_group = logs.LogGroup( self, "BedrockAgentCWLogGroup", log_group_name="/aws/bedrock/agents/my-agent-logs", removal_policy=RemovalPolicy.DESTROY ) # 创建Bedrock Agent并配置CloudWatch日志 bedrock.Agent(self, "MyBedrockAgent", agent_name="MyAgent", foundation_model=bedrock.FoundationModel.from_foundation_model_id( self, "Claude3Sonnet", bedrock.FoundationModelId.ANTHROPIC_CLAUDE_3_SONNET ), agent_configuration=bedrock.AgentConfiguration( logging_config=bedrock.LoggingConfig( cloudwatch_log_group=agent_log_group, level=bedrock.LogLevel.INFO ) ) )
配置S3日志
创建用于存储日志的S3桶(建议开启加密、自动清理等配置),然后在Agent日志配置中指定S3存储位置:
from aws_cdk import ( aws_s3 as s3, aws_bedrock as bedrock, Stack, RemovalPolicy, ) from constructs import Construct class BedrockAgentLogStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # 创建日志存储S3桶 agent_log_bucket = s3.Bucket( self, "BedrockAgentS3LogBucket", bucket_name="my-bedrock-agent-log-bucket", removal_policy=RemovalPolicy.DESTROY, auto_delete_objects=True, encryption=s3.BucketEncryption.S3_MANAGED ) # 创建Bedrock Agent并配置S3日志 bedrock.Agent(self, "MyBedrockAgent", agent_name="MyAgent", foundation_model=bedrock.FoundationModel.from_foundation_model_id( self, "Claude3Sonnet", bedrock.FoundationModelId.ANTHROPIC_CLAUDE_3_SONNET ), agent_configuration=bedrock.AgentConfiguration( logging_config=bedrock.LoggingConfig( s3_log_destination=bedrock.S3LogDestination( bucket=agent_log_bucket, prefix="agent-execution-logs/" ), level=bedrock.LogLevel.DEBUG ) ) )
额外说明
- 日志级别支持
DEBUG、INFO、ERROR三种,可根据需求选择 - 可以同时配置CloudWatch和S3日志,只需在
LoggingConfig中同时传入两个参数即可 - 若使用旧版本CDK找不到相关API,请先升级CDK版本
内容的提问来源于stack exchange,提问作者Naxi
相关产品推荐
相关产品推荐

