Amazon S3のクラウドデータ取り込み
このページでは、クラウドデータ取り込み (CDI) を使用してAmazon S3からBrazeにデータを同期するために必要なすべての情報を説明します。作成するAWSリソース、Brazeでソースを接続して同期を作成する方法、データタイプごとのファイル形式、S3固有のトラブルシューティングについて取り上げます。
仕組み
Amazon S3連携は、スケジュールではなくイベントに基づいて動作します。新しいファイルがS3に公開されると、Amazon Simple Queue Service (SQS) キューにメッセージが送信されます。Brazeはそのメッセージを受け取り、新しいファイルを取り込みます。
この連携には、次のリソースが必要です。
- データを保存するS3バケット
- 新規ファイルの通知を受け取るSQSキュー
- Brazeがアクセスに使用するIAMロール
AWSの用語定義
| 用語 | 定義 |
|---|---|
| Amazon Resource Name (ARN) | ARNは、AWSリソースを一意に特定する識別子です。 |
| Identity and Access Management (IAM) | IAMは、AWSリソースへのアクセスを安全に制御できるWebサービスです。このチュートリアルでは、IAMポリシーを作成してIAMロールに割り当て、S3バケットをBraze Cloud Data Ingestionと連携させます。 |
| Amazon Simple Queue Service (SQS) | SQSは、分散したソフトウェアシステムやコンポーネントを連携させるためのホスト型キューです。 |
AWSでクラウドデータ取り込みを設定する
ステップ1: ソースバケットを作成する
AWS アカウントで、デフォルト設定の汎用 S3 バケットを作成します。フォルダーが一意であれば、S3 バケットは複数の同期で再利用できます。
デフォルト設定は以下のとおりです。
- ACL 無効
- すべてのパブリックアクセスをブロック
- バケットのバージョニングを無効化
- SSE-S3 暗号化
- サポートされているサーバー側の暗号化タイプはSSE-S3のみです。Amazon KMS 暗号化はサポートされていません。
バケットを作成したリージョンをメモしておいてください。次のステップで、同じリージョンに SQS キューを作成します。
ステップ2: SQS キューを作成する
作成したバケットにオブジェクトが追加されたタイミングを追跡するため、SQS キューを作成します。ここではデフォルトの構成設定を使用してください。
SQS キューはグローバルに一意である必要があります (たとえば、1つの CDI 同期にのみ使用でき、別のワークスペースで再利用することはできません)。

このSQSは、必ずバケットを作成したリージョンと同じリージョンに作成してください。
SQS キューのARNとURLをメモしておいてください。この設定中に何度も必要になります。

ステップ3: アクセスポリシーを設定する
アクセスポリシーを設定するには、Advanced options を選択します。
キューのアクセスポリシーに次のステートメントを追加します。その際、YOUR-BUCKET-NAME-HERE をバケット名に、YOUR-SQS-ARN を SQS キューの ARN に、YOUR-AWS-ACCOUNT-ID を AWS アカウント ID に置き換えてください。
{
"Sid": "braze-cdi-s3-sqs-publish",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "SQS:SendMessage",
"Resource": "YOUR-SQS-ARN",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "YOUR-AWS-ACCOUNT-ID"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:::YOUR-BUCKET-NAME-HERE"
}
}
}
ステップ4: S3 バケットにイベント通知を追加する
- ステップ1で作成したバケットで、Properties > Event notifications に移動します。
- 構成に名前を付けます。Brazeに一部のファイルのみを取り込ませたい場合は、必要に応じて対象とするプレフィックスまたはサフィックスを指定します。
- Destination で SQS queue を選択し、ステップ2で作成したSQSのARNを入力します。

ファイルを S3 バケットのルートフォルダーにアップロードした後、一部のファイルをバケット内の特定のフォルダーに移動すると、予期しないエラーが発生する場合があります。代わりに、イベント通知をプレフィックス内のファイルについてのみ送信するように変更するか、そのプレフィックスの外側の S3 バケットにファイルを置かないようにするか、プレフィックスなしで連携を更新してすべてのファイルを取り込むようにしてください。
ステップ5: IAM ポリシーを作成する
Brazeがソースバケットとやり取りできるように、IAM ポリシーを作成します。まず、アカウント管理者として AWS マネジメントコンソールにサインインします。
-
AWS コンソールの IAM セクションに移動し、ナビゲーションバーで Policies を選択してから、Create Policy を選択します。

-
JSON タブを開き、Policy Document セクションに次のコードスニペットを入力します。その際、
YOUR-BUCKET-NAME-HEREをバケット名に、YOUR-SQS-ARN-HEREを SQS キュー名に置き換えてください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetObjectAttributes", "s3:GetObject"],
"Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE"]
},
{
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetObjectAttributes", "s3:GetObject"],
"Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE/*"]
},
{
"Effect": "Allow",
"Action": [
"sqs:DeleteMessage",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:GetQueueAttributes"
],
"Resource": "YOUR-SQS-ARN-HERE"
}
]
}
-
完了したら Review Policy を選択します。
-
ポリシーに名前と説明を付けて、Create Policy を選択します。


ステップ6: 認証を設定する
Brazeは、次の認証方法でバケットとキューにアクセスします。
| 方法 | Brazeによる認証方法 | Brazeで入力する内容 |
|---|---|---|
| IAM role | Braze assumes an AWS Identity and Access Management (IAM) role in your account, using an external ID that Braze generates for your workspace. | Role ARN |
IAM role
Brazeは、お客様のAWSアカウント内のIAMロールを引き受けます。ロールを作成し、作成した IAM ポリシーをそのロールにアタッチします。
- IAMポリシーを作成したコンソールの同じIAMセクション内で、Roles > Create Role に移動します。

- AWSで、信頼されたエンティティのセレクタータイプとして Another AWS Account を選択します。
- Brazeで、データ設定 > クラウドデータ取り込み > ソース に移動し、データソースを追加 を選択して、ファイルソースセクションから Amazon S3 を選択します。
- 自動生成された Braze アカウント ID と external ID をコピーします。external IDはBrazeがワークスペースごとに生成するもので、そのワークスペース内のすべてのAmazon S3認証情報で同じ値になります。

- AWSで、アカウントIDを貼り付けます。Require external ID チェックボックスを選択し、external IDを貼り付けてから Next を選択します。

- IAMポリシーをロールにアタッチします。検索バーでポリシーを検索し、ポリシーの横にあるチェックマークを選択してアタッチします。完了したら Next を選択します。

- ロールに名前と説明を付けて、Create Role を選択します。

- 作成したロールのARNを控えておきます。クラウドデータ取り込みの統合を作成する際に必要です。

ロールの信頼ポリシーでは、Brazeに表示されているexternal IDと完全に一致する値を必須にする必要があります。認証情報をテストまたは保存すると、Brazeはロールがそれ以外のexternal IDを拒否することを確認します。external IDを必須にしていないロールや、braze-cdi-* のようなパターンを受け入れるロールは、接続テストに失敗します。
Brazeでクラウドデータ取り込みを設定する
- まず、Brazeダッシュボードで新しいソースを作成します。データ設定 > クラウドデータ取り込み > ソースに移動し、データソースを追加を選択してから、Amazon S3を選択します。
- ソース名を入力し、Amazon S3接続の詳細フィールドに入力します。
- 認証情報: 認証情報の名前と、認証方法に応じたフィールドを入力します。Role ARNを入力します。
- 構成: バケットとリージョン

- 接続をテストを選択して、Brazeがバケットにアクセスできることを確認します。テストが成功したら、ソースに接続を選択します。接続に失敗した場合は、問題のトラブルシューティングに役立つエラーメッセージが表示されます。
- 次に、新しい同期を作成します。データ設定 > クラウドデータ取り込み > 同期に移動し、データ同期を作成を選択します。
- 同期名を入力し、データタイプを選択して、S3ソースを選択します。次に、次へ: データ定義を選択します。
- データ定義ステップで、AWSの設定プロセスで取得した残りの情報を入力します。
- SQS URL: 新しい連携ごとに一意のURLを入力します。
- フォルダーパス (任意): ワークスペース内の同期間で一意のパスを入力します。
- プレビューと検証を選択して、Brazeが取り込み可能なファイルを一覧表示できることを確認します (ファイル内のデータではありません)。プレビューが成功したら、次へ: 通知を選択します。

- アクセスや権限の問題で同期が中断した場合の通知先として、連絡先のメールアドレスを追加します。必要に応じて、ユーザーレベルのエラーや同期の成功に関する通知をオンにします。
- 同期を作成します。
必要なファイル形式
Cloud Data Ingestionは、JSON、CSV、Parquet の各ファイルをサポートしています。必要な列はデータタイプによって異なります。Braze では、ファイルストレージプロバイダーが定める要件以外に、ファイル名に関する追加の要件はありません。ファイル名は一意にしてください。タイムスタンプを付加すると一意性を確保しやすくなります。

データウェアハウスのソースとは異なり、ファイルストレージの同期では UPDATED_AT 列は必須ではなく、サポートもされていません。
サポートされているすべてのファイルタイプの例については、braze-examples のサンプルファイルを参照してください。
同期するデータタイプのタブを選択してください。
各行には、ユーザー識別子 1 つと PAYLOAD 列が必要です。ソースファイルには異なる識別子タイプの行を混在させることができますが、個々の行で使用する識別子は 1 つだけにしてください。
| 識別子 | 説明 |
|---|---|
EXTERNAL_ID |
更新するユーザーを識別します。Braze で使用されている external_id の値と一致する必要があります。 |
ALIAS_NAME および ALIAS_LABEL |
この 2 つの列でユーザーエイリアスオブジェクトを作成します。alias_name は一意の識別子である必要があり、alias_label はエイリアスのタイプを指定します。ユーザーは異なるラベルを持つ複数のエイリアスを持つことができますが、alias_label ごとに alias_name は 1 つだけです。 |
BRAZE_ID |
Brazeのユーザー識別子です。これは Braze SDK によって生成されます。Cloud Data Ingestionでは、Braze IDを使用して新しいユーザーを作成することはできません。新しいユーザーを作成するには、外部ユーザー ID またはユーザーエイリアスを指定してください。 |
EMAIL |
ユーザーのメールアドレスです。同じメールアドレスを持つプロファイルが複数存在する場合、最後に更新されたプロファイルが優先的に更新されます。メールと電話番号の両方を含めた場合、Brazeはメールをプライマリ識別子として使用します。 |
PHONE |
ユーザーの電話番号です。同じ電話番号を持つプロファイルが複数存在する場合、最後に更新されたプロファイルが優先的に更新されます。 |
PAYLOAD 列には、Brazeのユーザーに同期するフィールドをユーザー属性オブジェクトの形式に従って記述した JSON 文字列が含まれます。
JSONの例
{"external_id":"s3-qa-0","payload":"{\"name\": \"GT896\", \"age\": 74, \"subscriber\": true, \"retention\": {\"previous_purchases\": 21, \"vip\": false}, \"last_visit\": \"2023-08-08T16:03:26.600803\"}"}
{"external_id":"s3-qa-1","payload":"{\"name\": \"HSCJC\", \"age\": 86, \"subscriber\": false, \"retention\": {\"previous_purchases\": 0, \"vip\": false}, \"last_visit\": \"2023-08-08T16:03:26.600824\"}"}
{"external_id":"s3-qa-2","payload":"{\"name\": \"YTMQZ\", \"age\": 43, \"subscriber\": false, \"retention\": {\"previous_purchases\": 23, \"vip\": true}, \"last_visit\": \"2023-08-08T16:03:26.600831\"}"}
CSVの例
external_id,payload
s3-qa-load-0-d0daa196-cdf5-4a69-84ae-4797303aee75,"{""name"": ""SNXIM"", ""age"": 54, ""subscriber"": true, ""retention"": {""previous_purchases"": 19, ""vip"": true}, ""last_visit"": ""2023-08-08T16:03:26.598806""}"
s3-qa-load-1-d0daa196-cdf5-4a69-84ae-4797303aee75,"{""name"": ""0J747"", ""age"": 73, ""subscriber"": false, ""retention"": {""previous_purchases"": 22, ""vip"": false}, ""last_visit"": ""2023-08-08T16:03:26.598816""}"

ソースファイルのすべての行に有効な JSONが含まれている必要があります。そうでない場合、そのファイルはスキップされます。
カスタムイベントでは、ユーザー属性と同じユーザー識別子の列を使用します。PAYLOAD 列はイベントオブジェクトの形式に従います。
{"external_id":"s3-qa-0","payload":"{\"app_id\": \"YOUR_APP_ID\", \"name\": \"view-206\", \"time\": \"2024-04-02T14:34:08\", \"properties\": {\"bool_value\": false, \"preceding_event\": \"unsubscribe\", \"important_number\": 206}}"}
{"external_id":"s3-qa-1","payload":"{\"app_id\": \"YOUR_APP_ID\", \"name\": \"view-206\", \"time\": \"2024-04-02T14:34:08\", \"properties\": {\"bool_value\": false, \"preceding_event\": \"unsubscribe\", \"important_number\": 206}}"}

ソースファイルのすべての行に有効な JSONが含まれている必要があります。そうでない場合、そのファイルはスキップされます。
購入イベントでは、ユーザー属性と同じユーザー識別子の列を使用します。PAYLOAD 列は購入オブジェクトの形式に従います。
{"external_id":"s3-qa-0","payload":"{\"app_id\": \"YOUR_APP_ID\", \"product_id\": \"product-11\", \"currency\": \"BSD\", \"price\": 8.511527858335066, \"time\": \"2024-04-02T14:34:08\", \"quantity\": 19, \"properties\": {\"is_a_boolean\": true, \"important_number\": 40, \"preceding_event\": \"click\"}}"}
{"external_id":"s3-qa-1","payload":"{\"app_id\": \"YOUR_APP_ID\", \"product_id\": \"product-11\", \"currency\": \"BSD\", \"price\": 8.511527858335066, \"time\": \"2024-04-02T14:34:08\", \"quantity\": 19, \"properties\": {\"is_a_boolean\": true, \"important_number\": 40, \"preceding_event\": \"click\"}}"}

ソースファイルのすべての行に有効な JSONが含まれている必要があります。そうでない場合、そのファイルはスキップされます。
カタログファイルでは、ユーザーデータファイルとは異なる識別子を使用します。カタログ同期を作成する前に、Braze で対象のカタログを作成してください。カタログのワークフロー全体については、カタログデータの同期と削除を参照してください。
| 列 | 必須 | 説明 |
|---|---|---|
ID |
はい | カタログアイテムの一意の識別子です。Braze でアイテムを作成、更新、または削除するために使用されます。 |
PAYLOAD |
はい | 同期するカタログのフィールドと値の JSON 文字列です。Brazeのカタログのスキーマと一致する必要があります。 |
DELETED |
いいえ | true の場合、ID が一致するカタログアイテムが Brazeのカタログから削除されます。作成または更新の操作では、この列を省略するか false に設定してください。 |
JSONの例
{"id":"85","payload":"{\"product_name\":\"Product 85\",\"price\":85.85}"}
{"id":"86","payload":"{\"product_name\":\"Product 86\",\"price\":86.86}"}
{"id":"1","payload":"{\"product_name\":\"Product 1\",\"price\":1.01}","deleted":true}
DELETED 列を含む CSVの例
ID,PAYLOAD,DELETED
85,"{""product_name"": ""Product 85"", ""price"": 85.85}",false
86,"{""product_name"": ""Product 86"", ""price"": 86.86}",false
1,"{""product_name"": ""Product 1"", ""price"": 1.01}",true
DELETED 列を含まない CSVの例
ID,PAYLOAD
85,"{""product_name"": ""Product 85"", ""price"": 85.85}"
86,"{""product_name"": ""Product 86"", ""price"": 86.86}"
データオブジェクト同期を作成する前に、Braze でデータオブジェクトタイプとそのフィールドを作成してください。ワークフロー全体については、データオブジェクトの同期を参照してください。
データウェアハウスのソースとは異なり、ファイルストレージのソースでは、フィールドごとに 1 列を使用するのではなく、データオブジェクトのフィールドを PAYLOAD 列で渡します。
| 列 | 必須 | 説明 |
|---|---|---|
OBJECT_ID |
はい | データオブジェクトレコードの識別子です。Braze でレコードを作成、更新、または削除するために使用されます。 |
PAYLOAD |
はい | 同期するフィールドと値の JSON 文字列です。各キーは、大文字と小文字の区別も含め、Brazeのデータオブジェクトタイプで定義されたフィールドと一致する必要があります。 |
DELETED |
いいえ | true の場合、OBJECT_ID が一致するレコードが Braze で削除されます。作成または更新の操作では、この列を省略するか false に設定してください。 |
JSONの例
{"object_id":"acct-001","payload":"{\"name\":\"Acme Corp\",\"team_id\":42}"}
{"object_id":"acct-002","payload":"{\"name\":\"Initech\",\"team_id\":17}"}
{"object_id":"acct-003","payload":"{\"name\":\"Hooli\",\"team_id\":5}","deleted":true}
CSVの例
OBJECT_ID,PAYLOAD,DELETED
acct-001,"{""name"": ""Acme Corp"", ""team_id"": 42}",false
acct-002,"{""name"": ""Initech"", ""team_id"": 17}",false
acct-003,"{""name"": ""Hooli"", ""team_id"": 5}",true
この同期を使用すると、ユーザーを所属するアカウントに紐付けるなど、ユーザーとデータオブジェクトレコードを関連付けることができます。同期する前に、Braze でリレーションシップを作成してください。
各行には、OBJECT_ID に加えて少なくとも 1 つのユーザー識別子が必要です。
| 列 | 必須 | 説明 |
|---|---|---|
OBJECT_ID |
はい | ユーザーが関連付けられているデータオブジェクトレコードの識別子です。 |
EXTERNAL_ID |
はい (各行に少なくとも 1 つのユーザー識別子) | Braze で使用されている external_id と一致します。 |
ALIAS_NAME および ALIAS_LABEL |
はい (各行に少なくとも 1 つのユーザー識別子) | 両方の列を組み合わせて、エイリアスでユーザーを識別します。 |
EMAIL |
はい (各行に少なくとも 1 つのユーザー識別子) | ユーザーのメールアドレスです。 |
PHONE |
はい (各行に少なくとも 1 つのユーザー識別子) | ユーザーの電話番号です。 |
PAYLOAD |
いいえ | リレーションシップ自体のフィールドと値の JSON 文字列です。 |
DELETED |
いいえ | true の場合、レコードとユーザー間のリレーションシップが削除されます。 |

ユーザー属性の同期とは異なり、ユーザーリレーションシップの同期では BRAZE_ID はサポートされていません。前述の識別子のいずれかを使用してください。
JSONの例
{"object_id":"acct-001","external_id":"user-1","payload":"{\"role\":\"admin\"}"}
{"object_id":"acct-001","email":"someone@example.com","payload":"{\"role\":\"member\"}"}
{"object_id":"acct-002","external_id":"user-9","deleted":true}
この同期を使用すると、アカウントを親アカウントに紐付けるなど、データオブジェクトレコード同士を関連付けることができます。同期する前に、Braze でリレーションシップを作成してください。
| 列 | 必須 | 説明 |
|---|---|---|
OBJECT_ID |
はい | リレーションシップの起点となるレコードです。 |
RELATED_OBJECT_ID |
はい | リレーションシップの参照先となるレコードです。 |
PAYLOAD |
いいえ | リレーションシップ自体のフィールドと値の JSON 文字列です。 |
DELETED |
いいえ | true の場合、2 つのレコード間のリレーションシップが削除されます。 |
JSONの例
{"object_id":"acct-001","related_object_id":"acct-010","payload":"{\"tier\":\"parent\"}"}
{"object_id":"acct-001","related_object_id":"acct-011","payload":"{\"tier\":\"parent\"}"}
{"object_id":"acct-002","related_object_id":"acct-020","deleted":true}
キャンバストリガーは、ゼロコピーパーソナライゼーションを実現します。送信先キャンバスの設定と考慮事項については、ゼロコピーパーソナライゼーションを参照してください。
| フィールド | 必須 | 説明 |
|---|---|---|
EXTERNAL_ID |
はい。external_id、または alias_name と alias_label のいずれか |
更新するユーザーを識別します。Braze で使用されている external_id の値と一致する必要があります。 |
ALIAS_NAME および ALIAS_LABEL |
はい。external_id、または alias_name と alias_label のいずれか |
この 2 つの列でユーザーエイリアスオブジェクトを作成します。alias_name は一意の識別子である必要があり、alias_label はエイリアスのタイプを指定します。ユーザーは異なるラベルを持つ複数のエイリアスを持つことができますが、alias_label ごとに alias_name は 1 つだけです。 |
PROPERTIES |
はい | キャンバスでパーソナライゼーションプロパティとして使用できるようにするフィールドの JSON 文字列です。ユーザー固有の情報を含める必要があります。 |
開始するには、新しい同期を作成する際に キャンバストリガー データタイプを選択します。
ソースバケット内のファイルを使用して Brazeのユーザープロファイルを削除するには、次の手順に従います。
- 他の同期と同じ設定を使用して、新しい Cloud Data Ingestion 同期を作成します。
- Braze で同期を設定する際に、データタイプをユーザーを削除に設定します。
- ユーザー識別子の列のみを含むファイルをソースバケットにアップロードします。
PAYLOAD列は含めないでください。誤って削除されることを防ぐため、ペイロードが存在すると同期は失敗します。
ファイルの各行では、次のいずれかを使用して 1 人のユーザーのみを識別する必要があります。
| 識別子 | 説明 |
|---|---|
EXTERNAL_ID |
Braze で使用されている external_id と一致します。 |
ALIAS_NAME および ALIAS_LABEL |
両方の列を組み合わせて、エイリアスでユーザーを識別します。 |
BRAZE_ID |
Brazeが生成したユーザー ID です (既存のユーザーのみ)。 |
JSONの例
{"external_id":"user-to-delete-001"}
{"external_id":"user-to-delete-002"}
{"braze_id":"braze-id-from-profile"}
CSVの例
external_id
user-to-delete-001
user-to-delete-002
同期が実行されると、Brazeはバケット内の新しいファイルを処理し、対応するユーザープロファイルを削除します。

ユーザーの削除は永続的であり、元に戻すことはできません。削除する予定のユーザーのみを含めてください。詳細については、Cloud Data Ingestionを使用したユーザーの削除を参照してください。
カタログアイテムの削除
ファイルストレージを使用してカタログからアイテムを削除するには、以下の手順に従います。
- カタログデータの同期に使用しているものと同じ同期を使用します (データタイプは カタログ)。
- CSVファイルまたはJSONファイルに、オプションの
deleted(またはDELETED) 列を追加します。 - Brazeのカタログから削除したいカタログアイテムについて、
deletedをtrueに設定します。
各行には引き続き ID と PAYLOAD が必要です。削除対象としてマークした行では、ペイロードは最小限でかまいません。Brazeは ID に基づいてアイテムを削除します。
同期が実行されると、deleted: true が設定された行に一致するカタログアイテムがBrazeで削除されます。カタログの同期と削除の動作の詳細については、カタログデータの同期と削除を参照してください。
知っておくべきこと
- ソースバケットまたはコンテナーに追加するファイルは、512 MBを超えないようにしてください。この制限は、Amazon S3、Google Cloud Storage、Azure Blob Storageに適用されます。512 MBを超えるファイルはエラーとなり、Brazeに同期されません。Azure Blob Storage自体ははるかに大きなファイルを扱えますが、CDIはすべてのファイルストレージソースに同じ512 MBの制限を適用します。
- ファイルあたりの行数に追加の制限はありませんが、同期の実行速度を向上させるため、Brazeでは小さいファイルの使用を推奨しています。たとえば、500 MBのファイル1つを取り込む場合は、100 MBのファイル5つを個別に取り込む場合よりも大幅に時間がかかります。
- 一定期間内にアップロードできるファイル数に追加の制限はありません。
- ファイル内およびファイル間の順序付けはサポートされていません。想定される競合をモニタリングしている場合、Brazeでは定期的に更新をバッチ処理することをおすすめします。
- CDIは、同期の作成後に追加されたファイルのみを処理します。既存のファイルを使用して、Brazeがバケットにアクセスし、取り込むファイルを検出できることを検証できますが、それらのファイルはBrazeに同期されません。既存のファイルをCDIで処理するには、同期したいファイルをソースバケットに再アップロードしてください。
- BrazeがSQS メッセージを削除するのは、ファイルが正常に読み込まれ、その結果の行がBrazeの内部システムに取り込まれた場合のみです。Brazeは可視性タイムアウトを延長しません。デッドレターキューにメッセージが表示される場合は、最大のファイルの処理にかかる時間に合わせて可視性タイムアウトを延長することを検討してください。また、Brazeは各ファイルのメタデータを追跡しています。ファイルが正常に取り込まれた後にそのファイルの重複した SQS メッセージが届いた場合、Brazeは重複したメッセージを直ちに削除します。ファイルが正常に取り込まれなかった場合、BrazeはSQS メッセージを通常どおり処理します。
トラブルシューティング
ファイルのアップロードと処理
CDIは、同期の作成後に追加されたファイルのみを処理します。このプロセスでは、Brazeは新しいファイルの追加を監視し、ファイルが追加されると新しい通知がトリガーされます。これにより、新しいファイルを処理する新しい同期が開始されます。Amazon S3の場合、この通知はSQSへのメッセージです。
既存のファイルを使用して、Brazeがバケットにアクセスし、取り込むファイルを検出できることを検証できますが、これらのファイルはBrazeに同期されません。CDIで処理させるには、同期したい既存のファイルをソースバケットに再アップロードする必要があります。
予期しないファイルエラーへの対処
エラーや失敗したファイルが多数発生している場合は、別のプロセスがCDIの対象フォルダー以外のフォルダーで S3 バケットにファイルを追加している可能性があります。
ファイルがソースバケットにアップロードされても、ソースフォルダー内にない場合、CDIはSQS 通知を処理しますが、ファイルに対しては何のアクションも実行しないため、エラーとして表示されることがあります。
問題がS3の通知やSQSの送信先の権限 (たとえば、送信先の検証エラー) に関連している場合は、AWSのドキュメントを参照してください。
- Enabling and configuring event notifications using the Amazon S3 console
- Granting permissions to publish event notification messages to a destination
- Troubleshooting issues in Amazon SQS
統合オブジェクトが正しくないエラー
このエラーは、2つ以上のワークスペースに、同じクラウドストレージのバケットまたはフォルダーを指す連携がある場合に発生します。各クラウドストレージの場所は、一度に1つの連携でのみ使用できます。解決手順については、よくある質問を参照してください。
関連ページ
- 必須の列とペイロードの形式については、テーブルの設定を参照してください。
- 同期のスケジュール設定とデータポイントの効率化については、ベストプラクティスを参照してください。
- 同期実行のモニタリングについては、同期ログとオブザーバビリティを参照してください。
- すべてのソースに共通する質問については、よくある質問を参照してください。