

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# S3
<a name="s3-rule-action"></a>

S3 (`s3`) 動作會從 MQTT 訊息將資料寫入 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

## 要求
<a name="s3-rule-action-requirements"></a>

此規則動作具有下列需求：
+  AWS IoT 可以擔任以執行`s3:PutObject`操作的 IAM 角色。如需詳細資訊，請參閱[授予 AWS IoT 規則所需的存取權](iot-create-role.md)。

  在 AWS IoT 主控台中，您可以選擇或建立角色， AWS IoT 以允許 執行此規則動作。
+ 如果您使用 受管 AWS KMS 客戶 AWS KMS key 來加密 Amazon S3 中的靜態資料，服務必須具有代表發起人使用 AWS KMS key 的許可。如需詳細資訊，請參閱《*Amazon Simple Storage Service 開發人員指南*》中的[AWS 受管 AWS KMS keys 和客戶受 AWS KMS keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#aws-managed-customer-managed-cmks)管。

## Parameters
<a name="s3-rule-action-parameters"></a>

當您使用此動作建立 AWS IoT 規則時，您必須指定下列資訊：

`bucket`  
要寫入資料的 Amazon S3 儲存貯體。  
僅支援[替代範本](iot-substitution-templates.md)：API 和 AWS CLI 

`cannedacl`  
(選用) Amazon S3 固定的 ACL，負責控制物件金鑰辨識出之物件的存取權限。如需詳細資訊 (包含允許的值)，請參閱[固定 ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)。  
支援[替代範本](iot-substitution-templates.md)：否

`key`  
寫入資料的檔案路徑。  
考慮一個範例，其中此參數為 `${topic()}/${timestamp()}`，且規則會收到主題為 `some/topic` 訊息。若目前的時間戳記為 `1460685389`，則此動作會將資料寫入在 S3 儲存貯體 `some/topic` 資料夾中名為 `1460685389` 的檔案。  
如果您使用靜態金鑰， 會在每次呼叫規則時 AWS IoT 覆寫單一檔案。我們建議您使用訊息時間戳記或另一個唯一的訊息識別符，以便每一個收到的訊息都會將新檔案儲存於 Amazon S3 中。
支援[替代範本](iot-substitution-templates.md)：是

`roleArn`  
允許存取 Amazon S3 儲存貯體的 IAM 角色。如需詳細資訊，請參閱[要求](#s3-rule-action-requirements)。  
支援[替代範本](iot-substitution-templates.md)：否

## 範例
<a name="s3-rule-action-examples"></a>

下列 JSON 範例定義 AWS IoT 規則中的 S3 動作。

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'", 
        "ruleDisabled": false, 
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "s3": {
                    "bucketName": "amzn-s3-demo-bucket", 
                    "cannedacl": "public-read",
                    "key": "${topic()}/${timestamp()}",
                    "roleArn": "arn:aws:iam::123456789012:role/aws_iot_s3"
                }
            }
        ]
    }
}
```

## 另請參閱
<a name="s3-rule-action-see-also"></a>
+ 《Amazon Simple Storage Service 使用者指南》**中的[什麼是 Amazon S3？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)