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

S3

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

Requirements

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

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

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

  • 如果您使用 Amazon Key Management Service (Amazon KMS) 客户托管的密钥 (CMK) Amazon S3 中的数据进行静态加密,则服务必须具有代表调用方使用 CMK 的权限。有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南中的 Amazon托管 CMK 和客户托管 CMK

Parameters

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

bucket

数据写入的 Amazon S3 存储桶。

支持替换模板:仅限 API 和 Amazon CLI

cannedacl

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

支持替换模板:否

key

数据写入的文件路径。

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

注意

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

支持替换模板:是

roleArn

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

支持替换模板:否

Examples

下面的 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" } } ] } }

另请参阅