使用日志监控模型调用 CloudWatch - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用日志监控模型调用 CloudWatch

您可以使用模型调用日志来收集您的所有调用的调用日志、模型输入数据和模型输出数据 AWS 账户 在 Amazon Bedrock 中使用。

通过调用日志记录,您可以收集与在您的账户中执行的所有调用相关的完整请求数据、响应数据和元数据。可以配置日志记录以提供日志数据发布到的目标资源。支持的目标包括亚马逊 CloudWatch 日志和亚马逊简单存储服务 (Amazon S3) Service。仅支持来自相同账户和区域的目标。

默认情况下,模型调用日志处于禁用状态。

以下操作可以记录模型调用。

使用 Converse 时API,您传递的任何图像或文档数据都将记录在 Amazon S3 中(如果您已在 Amazon S3 中启用了传送和图像记录功能)。

在启用调用日志之前,您需要设置 Amazon S3 或 CloudWatch 日志目标。您可以通过控制台或启用调用日志记录。API

设置 Amazon S3 目标

您可以按照以下步骤在 Amazon Bedrock 中设置 S3 日志记录目标:

  1. 创建要将日志传输到 S3 存储桶。

  2. 向其添加如下所示的存储桶策略(替换值 accountId, region, bucketName,并可选 prefix):

    注意

    当您使用权限 S3:GetBucketPolicyS3:PutBucketPolicy 配置日志记录时,系统会代表您自动将存储桶策略附加到存储桶。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonBedrockLogsWrite", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucketName/prefix/AWSLogs/accountId/BedrockModelInvocationLogs/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } } ] }
  3. (可选)如果在存储桶KMS上配置 SSE-,请在KMS密钥上添加以下策略:

    { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } }

有关 S3 SSE-KMS 配置的更多信息,请参阅指定KMS加密

注意

ACL必须禁用存储桶才能使存储桶策略生效。有关更多信息,请参阅禁ACLs用所有新存储桶和强制执行对象所有权

设置 CloudWatch 日志目标

您可以按照以下步骤设置用于登录 Amazon Bedrock 的 Amazon Log CloudWatch s 目标:

  1. 创建 CloudWatch 将在其中发布日志的日志组。

  2. 为 CloudWatch 日志创建具有以下权限的IAM角色。

    可信实体

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } } ] }

    角色策略

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:accountId:log-group:logGroupName:log-stream:aws/bedrock/modelinvocations" } ] }

有关设置 CloudWatch 日志SSE的更多信息,请参阅使用加密日志中的 CloudWatch 日志数据 AWS Key Management Service.

使用控制台记录模型调用

要启用模型调用日志记录,请拖动设置页面中日志记录切换开关旁边的滑块按钮。日志记录的其他配置设置将显示在面板上。

选择要将哪些数据请求和响应发布到日志中。您可以选择以下输出选项的任何组合:

  • 文本

  • 图像

  • 嵌入

选择日志的发布位置:

  • 仅限 Amazon S3

  • CloudWatch 仅限日志

  • Amazon S3 和 CloudWatch 日志

调用 CloudWatch 日志以及小型输入和输出数据支持 Amazon S3 和日志目标。对于大型输入和输出数据或二进制图像输出,仅支持 Amazon S3。以下详细信息总结了目标位置的数据表示形式。

  • S3 目标 — Gzipped JSON 文件(每个文件都包含一批调用日志记录)被传送到指定的 S3 存储桶。与 CloudWatch 日志事件类似,每条记录都将包含调用元数据以及大小不超过 100 KB 的输入和输出主JSON体。大于 100 KB JSON 的二进制数据或正文将作为单个对象上传到数据前缀下的指定 Amazon S3 存储桶中。可以使用 Amazon S3 Select 和 Amazon Athena 查询数据,也可以对数据进行编目以供使用 ETL AWS Glue。 数据可以加载到 OpenSearch 服务中,也可以由任何 Amazon EventBridge 目标进行处理。

  • CloudWatch 日志目标-JSON 调用日志事件被传送到日志中的 CloudWatch 指定日志组。日志事件包含调用元数据以及大小不超过 100 KB 的输入和输出主JSON体。如果提供了用于传输大量数据的 Amazon S3 位置,则大于 100 KB 的二进制数据或JSON正文将上传到数据前缀下的 Amazon S3 存储桶。可以使用 L CloudWatch ogs Insights 查询数据,也可以使用日志进一步实时流式传输到各种服务。 CloudWatch

使用模型调用日志记录 API

可以使用以下APIs方法配置模型调用日志: