You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/connections/destinations/catalog/talonone/index.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ id: 5de7c705e7d93d5e24742a04
6
6
---
7
7
8
8
> warning ""
9
-
> Segment and Talon.One recommend you use the [Talon.One (Action) Destination](/docs/connections/destinations/catalog/slack/) instead.
9
+
> Segment and Talon.One recommend you use the [Talon.One (Action) Destination](/docs/connections/destinations/catalog/talonone/) instead.
10
10
11
11
Create flexible and targeted promotional & loyalty campaigns with [Talon.One](https://Talon.One/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners).
12
12
Campaigns can be created and managed by non-technical users such as marketeers. There is no need to get your development team involved. Features include coupons, discounts, loyalty programs, referral tracking, geo-fencing, and bundling.
Copy file name to clipboardExpand all lines: src/connections/storage/catalog/aws-s3/index.md
+214-6
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,6 @@ redirect_from:
5
5
hide-personas-partial: true
6
6
---
7
7
8
-
9
8
## Differences between the Amazon S3 destination and the AWS S3 destination
10
9
11
10
The AWS S3 destination provides a more secure method of connecting to your S3 buckets. It uses AWS's own IAM Roles to define access to the specified buckets. For more information about IAM Roles, see Amazon's [IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html){:target="_blank"} documentation.
@@ -27,11 +26,11 @@ The Segment Tracking API processes data from your sources, and collects the Even
27
26
28
27

29
28
30
-
31
-
32
29
## Create a new destination
33
30
34
-
Complete either [Create an IAM role in the AWS console](#create-an-iam-role-in-the-aws-console) or [Create an IAM role using the AWS CLI](#create-an-iam-role-using-the-aws-cli) to configure the AWS S3 Destination with IAM Role Support.
31
+
Complete either [Create an IAM role in the AWS console](#create-an-iam-role-in-the-aws-console), [Create an IAM role using the AWS CLI](#create-an-iam-role-using-the-aws-cli), or [Create IAM roles using Terraform](#create-iam-roles-using-terraform) to set up the AWS S3 Destination with IAM Role Support.
32
+
33
+
All three setup methods provide a base level of permissions to Segment. If you want stricter permissions or other custom configurations, you can customize these setup instructions manually.
35
34
36
35
### Create an IAM role in the AWS console
37
36
@@ -193,6 +192,106 @@ To create an S3 IAM role, you must first install and configure the AWS CLI on yo
193
192
> info ""
194
193
> To verify that the IAM role is created, navigate to the AWS console and open the IAM Management Console. On the Permissions tab, verify that there is a `segment-s3-putobject` Permissions policy.
195
194
195
+
### Create IAM roles using Terraform
196
+
197
+
You can run the provided Terraform module from your command line to create the IAM roles required for this destination. This script requires access to Terraform versions v0.12+.
198
+
199
+
> warning "Support for the AWS S3 Terraform module"
200
+
> If you’re familiar with Terraform, you can modify the module to meet your organization’s needs: however, Segment guarantees support only for the template as provided.
201
+
202
+
To set up the required IAM roles for this destination, run the following Terraform module from your command line:
### Add the AWS S3 with IAM Role Support Destination
198
297
@@ -212,8 +311,11 @@ To finish configuration, enable the AWS S3 Destination with IAM Role Support des
212
311
> info ""
213
312
> Did you know you can create destinations with the Config API? For more information, see [Create Destination](https://reference.segmentapis.com/#51d965d3-4a67-4542-ae2c-eb1fdddc3df6){:target="_blank"}.
214
313
314
+
## Migrate existing destinations
315
+
316
+
You can migrate your existing Amazon S3 destinations to the new AWS S3 destination either [manually](#manually-migrate-an-existing-destination) in the Segment app, or by using Segment's [Public API](#migrate-an-existing-destination-using-the-public-api).
215
317
216
-
## Migrate an existing destination
318
+
### Manually migrate an existing destination
217
319
218
320
> warning "Avoid overwriting data"
219
321
> Sending data to the same S3 location from both the existing Amazon S3 destination, and the AWS S3 with IAM Role Support destination will overwrite data in that location. To avoid this, follow the steps below.
@@ -228,7 +330,7 @@ To migrate an existing Amazon S3 destination to the AWS S3 with IAM Role Support
228
330
6. Remove the test folder created in step 2 from the bucket.
229
331
230
332
> error " "
231
-
> You need to migrate to the new S3 destination before you disable your legacy destination to ensure Segment continues to deliver data to your S3 bucket.
333
+
> You must migrate to the new S3 destination before you disable your legacy destination to ensure Segment continues to deliver data to your S3 bucket.
232
334
233
335
### Migration steps for scenarios with multiple sources per environment
234
336
@@ -245,6 +347,112 @@ For example:
245
347
246
348
For each source in the scenario, complete the steps described in [Migrate an existing destination](#migrate-an-existing-destination), and ensure that you have separate IAM Roles and Permissions set for staging and production use.
247
349
350
+
### Migrate an existing destination using the Public API
351
+
This procedure uses Segment's Public API to migrate an existing Amazon S3 destination to the new AWS S3 destination. For more information about the Public API, see the [Public API documentation](https://api.segmentapis.com/docs/guides/#introduction){:target="_blank"}.
352
+
353
+
> warning "Avoid overwriting data"
354
+
> Sending data to the same S3 location from both the existing Amazon S3 destination and the AWS S3 destinations will overwrite data in your instance of S3. To avoid this, disable your Amazon S3 destination after you create your AWS S3 destination.
355
+
356
+
To migrate to the AWS S3 destination using the Public API:
357
+
358
+
#### Step 1 - Verify your configuration
359
+
360
+
1. Open the Segment app, select the Connections tab and then select Catalog.
361
+
2. From the Catalog, select the Storage Destinations tab and select the **AWS S3** destination.
362
+
3. On the AWS S3 destination page, click the **Configure AWS S3** button.
363
+
4. Configure your AWS S3 destination. When asked for the bucket name, enter `<YOUR_BUCKET_NAME>/segment-logs/test`.
364
+
5. Enable the destination, and verify data is received at `<YOUR_BUCKET_NAME>/segment-logs/test/segment-logs`. <br/>**Note:** If the folder receives data, continue to the next step. If you don't see log entries, check the trust relationship document and IAM policy attached to your IAM role.
365
+
366
+
367
+
#### Step 2 - Migrate an existing destination using the Public API
368
+
369
+
1. Identify the source IDs for your old Amazon S3 destination(s). You can use the Public API to return information about a list of your Amazon S3 destinations or an individual destination. <br/>
370
+
To return a list of all of your Amazon S3 destinations, use the [`list destinations`](https://api.segmentapis.com/docs/connections/destinations/#list-destinations) call and filter the results using metadata id `54f418c3db31d978f14aa925` or slug `amazon-s3`: <br/>
371
+
```shell
372
+
curl -vvv --location --request GET https://api.segmentapis.com/destinations?pagination.count=1 \
373
+
--header 'Content-Type: application/json' \
374
+
--header 'Authorization: Bearer ...' \
375
+
--data-raw '
376
+
```
377
+
To return the information for an individual Amazon S3 destination, use the [`get destination`](https://api.segmentapis.com/docs/connections/destinations/#get-destination) call, using the destination ID for your individual Amazon S3 destination (**Note:** The destination ID for your Amazon S3 source is visible in the Segment app, on the destination's settings page.) <br/>
378
+
```shell
379
+
curl -vvv --location --request GET https://api.segmentapis.com/destinations/$DESTINATION_ID \
380
+
--header 'Content-Type: application/json' \
381
+
--header 'Authorization: Bearer ...' \
382
+
--data-raw '
383
+
```
384
+
2. Create your new AWS S3 destination using the [`create destination`](https://api.segmentapis.com/docs/connections/destinations/#create-destination) Public API call. The `sourceId`, `metadataId`, and `settings` parameters are required. An example of the parameters is below: <br/>
385
+
```json
386
+
{
387
+
"sourceId": "$SOURCE_ID",
388
+
"metadataId": "60be92c8dabdd561bf6c9130",
389
+
"name": "AWS S3",
390
+
"settings": {
391
+
"region": "$BUCKET_REGION",
392
+
"s3Bucket": "$YOUR_BUCKET_NAME",
393
+
"iamRoleArn": "$IAM_ROLE_ARN"
394
+
}
395
+
```
396
+
<br/>**Optional:** You can create a destination that's not enabled automatically upon creation by setting `enabled` to `false` when creating the new AWS S3 destination:
3. Disable the Amazon S3 destinations using the following command, replacing `$DESTINATION_ID` with the ID of your Amazon S3 destination you found in a previous step:
> You must migrate to the new S3 destination before you disable your legacy destination to ensure Segment continues to deliver data to your S3 bucket.
427
+
428
+
## Test your migrated source
429
+
You can validate that you configured your migrated source correctly on the AWS S3 destination page in the Segment app.
430
+
431
+
> note "Source editing permissions required"
432
+
> In-app source validation is restricted to users with source editing permissions (for example, users with Workspace Owner, Source Admin, or Workspace Admin roles). For more information about roles in the Segment app, see the [Roles documentation](/docs/segment-app/iam/roles/).
433
+
434
+
To verify that you migrated your source correctly:
435
+
1. Open the Segment app and select the AWS S3 destination.
436
+
2. On the Settings page, verify that your Region, Bucket Name, and IAM Role ARN are all correct.
437
+
3. Click **Validate.**
438
+
4. A code indicating if the validation was successful or failed appears. To troubleshoot failed validation codes, see the [Troubleshooting](#troubleshooting) section.
439
+
440
+
> info "dummy-object.txt"
441
+
> In order to test your bucket, Segment uploads a text file, `dummy-object.txt`, to the segment-logs folder in your S3 bucket. After you've completed the validation process, feel free to delete this file.
442
+
443
+
### Troubleshooting
444
+
445
+
The following table outlines some of the error codes the validation tool may display and possible reasons for the error. For assistance with correcting any of these error codes, contact [Segment support](mailto:[email protected]).
446
+
447
+
| Error message | Likely cause of the error |
448
+
| ------------- | ------------------------- |
449
+
| Unknown Error. Please try again. If the problem persists, please contact [Segment support](mailto:[email protected]). | Fail to assume intermediate role |
450
+
| Access Denied. Please configure External ID in the AWS IAM Console. [Learn more](#create-an-iam-role-in-the-aws-console). | Successfully assumed customer's role, role doesn't have external ID |
451
+
| Unknown Error. Please follow [instructions](#create-an-iam-role-in-the-aws-console) to set up the AWS S3 destination. If the problem persists, please contact [Segment support](mailto:[email protected]). | Fail to assume customer’s role without external ID and returned an error code that is not error 403 |
452
+
| Access Denied. Please configure External ID in the AWS IAM Console. [Learn more](#create-an-iam-role-in-the-aws-console). | Fail to assume customer’s role without external ID and returned error 403 |
453
+
| Access Denied. Please add PutObject permissions to the IAM role in the AWS IAM Console. [Learn more](#create-an-iam-role-in-the-aws-console). | Fail to upload the dummy object to customer's S3 bucket and an error code that is not error 403. |
454
+
| Unknown Error. Please follow [instructions](#create-an-iam-role-in-the-aws-console) to set up the AWS S3 destination. If the problem persists, please contact [Segment support](mailto:[email protected]). | Fail to upload the dummy object to customer's S3 bucket and an error code that is not error 403. |
Copy file name to clipboardExpand all lines: src/connections/storage/catalog/data-lakes/index.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Before you set up Segment Data Lakes, you need the following resources:
20
20
21
21
## Step 1 - Set Up AWS Resources
22
22
23
-
You can use the [open source Terraform module](https://github.com/segmentio/terraform-aws-data-lake) to automate much of the set up work to get Data Lakes up and running. If you’re familiar with Terraform, you can modify the module to meet your organization’s needs, however Segment guarantees support only for the template as provided. The Data Lakes set up uses Terraform v0.11+. To support more versions of Terraform, the AWS provider must use v2, which is included in our example main.tf.
23
+
You can use the [open source Terraform module](https://github.com/segmentio/terraform-aws-data-lake) to automate much of the set up work to get Data Lakes up and running. If you’re familiar with Terraform, you can modify the module to meet your organization’s needs, however Segment guarantees support only for the template as provided. The Data Lakes set up uses Terraform v0.12+. To support more versions of Terraform, the AWS provider must use v4, which is included in our example main.tf.
24
24
25
25
You can also use Segment's [manual set up instructions](/docs/connections/storage/data-lakes/data-lakes-manual-setup) to configure these AWS resources if you prefer.
0 commit comments