本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
S3
S3 (s3
) 動作會從 MQTT 訊息將資料寫入 Amazon Simple Storage Service (Amazon S3) 儲存貯體。
要求
此規則動作具有下列需求:
-
AWS IoT 可假設執行
s3:PutObject
作業的 IAM 角色。如需詳細資訊,請參閱 授與 AWS IoT 規則所需的存取權。在 AWS IoT 主控台中,您可以選擇或建立允許 AWS IoT 執行此規則動作的角色。
-
如果您使用 AWS KMS 受管的客戶 AWS KMS key 來加密 Amazon S3 中的靜態資料,則該服務必須具有代表呼叫者使用的權限。 AWS KMS key 如需詳細資訊,請參閱 AWSAmazon 簡單儲存服務開發人員指南 AWS KMS keys中的受管 AWS KMS keys 和客戶管理。
參數
使用此動作建立 AWS IoT 規則時,必須指定下列資訊:
bucket
-
要寫入資料的 Amazon S3 儲存貯體。
支援替代範本:API 且 AWS CLI 僅支援
cannedacl
-
(選用) Amazon S3 固定的 ACL,負責控制物件金鑰辨識出之物件的存取權限。如需詳細資訊 (包含允許的值),請參閱固定 ACL。
支援替代範本:否
key
-
寫入資料的檔案路徑。
考慮一個範例,其中此參數為
${topic()}/${timestamp()}
,且規則會收到主題為some/topic
訊息。若目前的時間戳記為1460685389
,則此動作會將資料寫入在 S3 儲存貯體some/topic
資料夾中名為1460685389
的檔案。注意
如果您使用靜態索引鍵,則會在每次規則呼叫時 AWS IoT 覆寫單一檔案。我們建議您使用訊息時間戳記或另一個唯一的訊息識別符,以便每一個收到的訊息都會將新檔案儲存於 Amazon S3 中。
支援替代範本:是
roleArn
-
允許存取 Amazon S3 儲存貯體的 IAM 角色。如需詳細資訊,請參閱 要求。
支援替代範本:否
範例
下列 JSON 範例會定義 AWS IoT 規則中的 S3 動作。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "s3": { "bucketName": "my-bucket", "cannedacl": "public-read", "key": "${topic()}/${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_s3" } } ] } }
另請參閱
-
《Amazon Simple Storage Service 使用者指南》中的什麼是 Amazon S3?