

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

# 在 Snowball Edge 事件通知上配置与亚马逊 S3 兼容的存储
<a name="s3-snow-event-notifications"></a>

Snowball Edge 上与 Amazon S3 兼容的存储支持基于消息队列遥测传输 (MQTT) 协议的对象 API 调用的 Amazon S3 事件通知。

当你的 Snowball Edge 中发生某些事件时，你可以在 Snowball Edge 上使用与 Amazon S3 兼容的存储空间来接收通知。要启用通知，请添加一个通知配置，该配置标识您希望服务发布的事件。

Snowball Edge 上与 Amazon S3 兼容的存储支持以下通知类型：
+ 新的对象创建事件
+ 对象移除事件
+ 对象标记事件

**配置 Amazon S3 事件通知**

1. 在开始之前，您的网络中必须有 MQTT 基础设施。

1. 在您的 Snowball Edge 客户端中，运行 `snowballEdge configure` 命令来设置 Snowball Edge 设备。

   当系统提示时，请输入以下信息：
   + 清单文件的路径。
   + 设备的解锁代码。
   + 设备的端点（例如 *https://10.0.0.1*）。

1. 运行以下 `put-notification-configuration` 命令来向外部代理发送通知。

   ```
   snowballEdge put-notification-configuration --broker-endpoint ssl://mqtt-broker-ip-address:8883 --enabled true --service-id s3-snow --ca-certificate file:path-to-mqtt-broker-ca-cert
   ```

1. 运行以下 `get-notification-configuration` 命令来验证所有内容的设置是否正确：

   ```
   snowballEdge get-notification-configuration --service-id s3-snow
   ```

   此操作将返回代理端点和已启用字段。

将整个集群配置为向网络中的 MQTT 代理发送通知后，每个对象 API 调用都将生成事件通知。

**注意**  
你需要订阅主题 s3SnowEvents/*Device ID*（或者*Cluster Id*如果是集群）/BucketName。您也可以使用通配符，例如主题名称可以是*\$1*或*s3SnowEvents/\$1*。

以下是 Snowball Edge 事件日志上兼容亚马逊 S3 的存储示例：

```
{
    "eventDetails": {
        "additionalEventData": {
            "AuthenticationMethod": "AuthHeader",
            "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
            "SignatureVersion": "SigV4",
            "bytesTransferredIn": 1205,
            "bytesTransferredOut": 0,
            "x-amz-id-2": "uLdTfvdGTKlX6TBgCZtDd9Beef8wzUurA+Wpht7rKtfdaNsnxeLILg=="
        },
        "eventName": "PutObject",
        "eventTime": "2023-01-30T14:13:24.772Z",
        "requestAuthLatencyMillis": 40,
        "requestBandwidthKBs": 35,
        "requestID": "140CD93455CB62B4",
        "requestLatencyMillis": 77,
        "requestLockLatencyNanos": 1169953,
        "requestParameters": {
            "Content-Length": "1205",
            "Content-MD5": "GZdTUOhYHvHgQgmaw2gl4w==",
            "Host": "10.0.2.251",
            "bucketName": "bucket",
            "key": "file-key"
        },
        "requestTTFBLatencyMillis": 77,
        "responseElements": {
            "ETag": ""19975350e8581ef1e042099ac36825e3"",
            "Server": "AmazonS3",
            "x-amz-id-2": "uLdTfvdGTKlX6TBgCZtDd9Beef8wzUurA+Wpht7rKtfdaNsnxeLILg==",
            "x-amz-request-id": "140CD93455CB62B4"
        },
        "responseStatusCode": 200,
        "sourceIPAddress": "172.31.37.21",
        "userAgent": "aws-cli/1.27.23 Python/3.7.16 Linux/4.14.301-224.520.amzn2.x86_64 botocore/1.29.23",
        "userIdentity": {
            "identityType": "IAMUser",
            "principalId": "531520547609",
            "arn": "arn:aws:iam::531520547609:root",
            "userName": "root"
        }
    }
}
```

有关 Amazon S3 事件通知的更多信息，请参阅 [Amazon S3 事件通知](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventNotifications.html)。