S3 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

S3

S3 (s3) 操作将 MQTT 消息中的数据写入 Amazon Simple Storage Service (Amazon S3) 存储桶。

要求

此规则操作具有以下要求:

  • Amazon IoT 可以代入执行s3:PutObject操作的 IAM 角色。有关更多信息,请参阅授予 Amazon IoT 规则所需的访问权限

    在 Amazon IoT 控制台中,您可以选择或创建 Amazon IoT 允许执行此规则操作的角色。

  • 如果您使用 Amazon KMS 客户托管 Amazon KMS key 来加密Amazon S3中的静态数据,则该服务必须有权代表呼叫者使用这些数据。 Amazon KMS key 有关更多信息,请参阅《Amazon 简单存储服务开发者指南》 Amazon KMS keys中的托Amazon 管 Amazon KMS keys 和客户托管

参数

使用此操作创建 Amazon IoT 规则时,必须指定以下信息:

bucket

数据写入的 Amazon S3 存储桶。

仅支持替换模板:API 且 Amazon CLI 仅支持

cannedacl

(可选)Amazon S3 封装的 ACL,用于控制对由对象键标识的对象的访问权限。有关更多信息,包括允许的值,请参阅 封装 ACL

支持替换模板:否

key

数据写入的文件路径。

考虑一个例子,其中此参数是 ${topic()}/${timestamp()},并且规则会收到一条消息,其中主题为 some/topic。如果当前时间戳为 1460685389,那么这个操作会将数据写入一个 S3 存储桶中名为 some/topic 的文件夹中的文件 1460685389

注意

如果您使用静态密钥,则每次调用规则时都会 Amazon IoT 覆盖单个文件。我们建议您使用消息时间戳或其它唯一的消息标识符,这样可以在 Amazon S3 中针对接收的每个消息保存一个新文件。

支持替换模板:是

roleArn

允许访问 Amazon S3 存储桶的 IAM 角色。有关更多信息,请参阅要求

支持替换模板:否

示例

以下 JSON 示例在 Amazon 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" } } ] } }

另请参阅