S3コネクタ
S3コネクタは、AWS S3および任意のS3互換サービス(MinIO、Ceph、Cloudflare R2、Backblaze B2)上のJSONオブジェクトを読み書きします。
コネクタタイプ:
S3Reader- バケットプレフィックスをポーリングし、新しい各オブジェクトをペイロードとして発行S3Writer- 各ペイロードをテンプレート化されたキーでS3オブジェクトとして書き込む
S3 Reader
Section titled “S3 Reader”バケットをポーリングして新しい各オブジェクトを発行:
{ "type": "S3Reader", "config": { "region": "us-east-1", "bucket": "meddle-ingest", "prefix": "incoming/", "accessKey": "AKIAIOSFODNN7EXAMPLE", "secretKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "pollingRate": 5000 }}読み取り後に削除
Section titled “読み取り後に削除”発行された後に各オブジェクトを削除します。インボックススタイルの取り込みに役立ちます:
{ "type": "S3Reader", "config": { "region": "eu-west-1", "bucket": "meddle-inbox", "prefix": "events/", "pollingRate": 10000, "deleteAfter": true }}S3互換エンドポイント(MinIO、R2)
Section titled “S3互換エンドポイント(MinIO、R2)”非AWSサービスを対象とする場合はendpointを設定します。endpointが設定されている場合、パススタイルアドレッシングが自動的に有効になります:
{ "type": "S3Reader", "config": { "endpoint": "https://minio.example.com:9000", "region": "us-east-1", "bucket": "sensor-data", "prefix": "raw/", "accessKey": "minio_access_key", "secretKey": "minio_secret_key", "pollingRate": 5000 }}S3 Writer
Section titled “S3 Writer”Goテンプレートをキーとして使用し、各ペイロードを新しいオブジェクトとして書き込みます:
{ "type": "S3Writer", "config": { "region": "us-east-1", "bucket": "meddle-archive", "keyTemplate": "events/{{.deviceId}}/{{.timestamp}}.json", "accessKey": "AKIAIOSFODNN7EXAMPLE", "secretKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }}S3互換エンドポイント
Section titled “S3互換エンドポイント”{ "type": "S3Writer", "config": { "endpoint": "https://minio.example.com:9000", "region": "us-east-1", "bucket": "processed", "keyTemplate": "out/{{.line}}/{{.timestamp}}.json", "accessKey": "minio_access_key", "secretKey": "minio_secret_key", "contentType": "application/json" }}設定パラメータ
Section titled “設定パラメータ”- region: AWSリージョン(リーダーとライターの両方に必須)
- bucket: S3バケット名(必須)
- endpoint: (オプション)S3互換サービス用のカスタムエンドポイントURL。パススタイルアドレッシングを有効化
- accessKey: (オプション)AWSアクセスキーID。省略した場合はデフォルトのAWS資格情報チェーンにフォールバック
- secretKey: (オプション)AWSシークレットアクセスキー
- prefix: (Reader)リストをフィルタリングするオブジェクトキープレフィックス
- pollingRate: (Reader、必須)ミリ秒単位のポーリング間隔
- deleteAfter: (Reader)読み取り後に各オブジェクトを削除
- keyTemplate: (Writer、必須)各ペイロードのオブジェクトキーを構築するためのGoテンプレート
- contentType: (Writer)書き込みオブジェクトのMIMEタイプ(デフォルト:
application/json)
キーテンプレート
Section titled “キーテンプレート”ライターのkeyTemplateは、ペイロードに対して評価されるGoのtext/template文字列です。トップレベルのペイロードフィールドは{{.fieldName}}として参照されます:
| テンプレート | 結果のキー(サンプルペイロード) |
|---|---|
events/{{.deviceId}}/{{.timestamp}}.json | events/sensor-42/1737036000.json |
raw/{{.year}}/{{.month}}/{{.id}}.json | raw/2026/05/abc-123.json |
flat-{{.id}}.json | flat-abc-123.json |
テンプレートで参照されているすべてのフィールドがペイロードに存在することを確認してください。そうでないと、テンプレートは欠落キーに対して空の文字列をレンダリングし、上書き時に衝突する可能性があります。
資格情報の解決
Section titled “資格情報の解決”accessKeyとsecretKeyの両方が設定されている場合、コネクタは静的資格情報を使用します。- 省略された場合、AWS SDKデフォルトチェーンが適用されます:環境変数、EC2/ECSタスクロール、共有
~/.aws/credentialsプロファイルなど。
リーダーの重複排除
Section titled “リーダーの重複排除”リーダーは既に発行したオブジェクトキーのインメモリセットを保持するため、各オブジェクトはMeddleプロセスのライフタイム中に1回だけ処理されます。再起動をまたいだ永続的なインボックススタイル取り込みにはdeleteAfter: trueと組み合わせて使用してください。