S3
S3 (s3) アクションは、MQTT メッセージのデータを Amazon Simple Storage Service (Amazon S3) バケットに書き込みます。
要件
このルールアクションには、以下の要件があります。
-
s3:PutObjectオペレーションを実行するために AWS IoT が引き受けることができる IAM ロール。詳細については、「AWS IoT ルールに必要なアクセスを付与する」を参照してください。AWS IoT コンソールで、AWS IoT がこのルールアクションを実行できるようにするロールを選択または作成できます。
-
Amazon S3 内の保管中のデータを暗号化するために AWS KMS カスタマーマネージド AWS KMS key を使用する場合、サービスには発信者に代わって AWS KMS key を使用するための許可が必要です。詳細については、Amazon Simple Storage Service デベロッパーガイドの「AWS 管理の 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 IoTT はルールが呼び出されるたびに単一のファイルを上書きします。受信したメッセージごとに新しいファイルが 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": "amzn-s3-demo-bucket", "cannedacl": "public-read", "key": "${topic()}/${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_s3" } } ] } }
以下の資料も参照してください。
-
Amazon Simple Storage Service デベロッパーガイドの Amazon S3 とは?