项目数据存储 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

项目数据存储

Evidently 收集两种类型的事件:

  • 评估事件与分配给用户会话的功能变体有关。Evidently 使用这些事件,生成可在 Evidently 控制台中查看的指标与其他实验和启动数据。

    您也可以选择将这些评估事件存储在 Amazon CloudWatch Logs 或 Amazon S3 中。

  • 自定义事件用于通过单击和结算等用户操作生成指标。Evidently 不会提供存储自定义事件的方法。如果要将其保存,您必须修改应用程序代码以将其发送到 Evidently 之外的存储选项。

评估事件日志的格式

如果您选择将评估事件存储在 CloudWatch Logs 或 Amazon S3 中,则每个评估事件都将以下列格式存储为日志事件:

{ "event_timestamp": 1642624900215, "event_type": "evaluation", "version": "1.0.0", "project_arn": "arn:aws:evidently:us-east-1:123456789012:project/petfood", "feature": "petfood-upsell-text", "variation": "Variation1", "entity_id": "7", "entity_attributes": {}, "evaluation_type": "EXPERIMENT_RULE_MATCH", "treatment": "Variation1", "experiment": "petfood-experiment-2" }

以下是关于上述评估事件格式的更多详细信息:

  • 时间戳为以毫秒为单位的 UNIX 时间

  • 此变体是分配给此用户会话的功能变体的名称。

  • 实体 ID 是字符串。

  • 实体属性是客户端发送的任意值的哈希值。例如,如果 entityId 映射为蓝色或绿色,然后您可以选择从关联和数据仓库的角度选择性地发送用户 ID、会话数据或任何您想要的其它内容。

用于在 Amazon S3 中存储评估事件的 IAM policy 和加密

如果您选择使用 Amazon S3 存储评估事件,则必须添加类似以下内容的 IAM policy,以允许 Evidently 将日志发布到 Amazon S3 存储桶。这是因为 Amazon S3 存储桶及其包含的对象是私有的,默认情况下它们不允许访问其他服务。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*", "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}} }, { "Sid": "AWSLogDeliveryCheck", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": ["s3:GetBucketAcl", "s3:ListBucket"], "Resource": "arn:aws:s3:::bucket_name" } ] }

如果您将 Evidently 数据存储在 Amazon S3 中,您还可以选择使用带 Amazon Key Management Service 密钥的服务器端加密 (SSE-KMS),对其进行加密。有关更多信息,请参阅使用服务器端加密保护数据

如果您使用 Amazon KMS 的客户托管式密钥,您必须将以下内容添加到密钥的 IAM policy 中。这样一来,Evidently 便可以写入存储桶。

{ "Sid": "AllowEvidentlyToUseCustomerManagedKey", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }