S3 - AWS IoT Core

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를 사용할 수 있는 권한이 서비스에 있어야 합니다. 자세한 내용은 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 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": "amzn-s3-demo-bucket", "cannedacl": "public-read", "key": "${topic()}/${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_s3" } } ] } }

다음 사항도 참조하세요.