Skip to content

Commit 95c5741

Browse files
author
markzegarelli
authored
Merge pull request #1759 from segmentio/jul-19_typos
jul 19 typos
2 parents eed6294 + 4565b24 commit 95c5741

File tree

6 files changed

+699
-686
lines changed

6 files changed

+699
-686
lines changed

src/connections/destinations/catalog/amazon-kinesis-firehose/index.md

Lines changed: 49 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,23 @@
22
rewrite: true
33
title: Amazon Kinesis Firehose Destination
44
---
5-
[Amazon Kinesis Firehose](https://aws.amazon.com/kinesis/data-firehose/) is the easiest way to load streaming data into AWS. It can capture, transform, and load streaming data into Amazon Kinesis Analytics, Amazon S3, Amazon Redshift, and Amazon Elasticsearch Service, enabling near real-time analytics with existing business intelligence tools and dashboards you're already using today. It is a fully managed service that automatically scales to match the throughput of your data and requires no ongoing administration. It can also batch, compress, and encrypt the data before loading it, minimizing the amount of storage used at the destination and increasing security.
5+
[Amazon Kinesis Firehose](https://aws.amazon.com/kinesis/data-firehose/) provides way to load streaming data into AWS. It can capture, transform, and load streaming data into Amazon Kinesis Analytics, Amazon S3, Amazon Redshift, and Amazon Elasticsearch Service, enabling near real-time analytics with existing business intelligence tools and dashboards you're already using today. It's a fully managed service that automatically scales to match the throughput of your data and requires no ongoing administration. It can also batch, compress, and encrypt the data before loading it, minimizing the amount of storage used at the destination and increasing security.
66

77
This document was last updated on February 05, 2020. If you notice any gaps, outdated information or simply want to leave some feedback to help us improve our documentation, [let us know](https://segment.com/help/contact)!
88

99
## Getting Started
1010

1111
{% include content/connection-modes.md %}
1212

13-
1. Create at least one Kinesis Firehose delivery stream. You can follow these [instructions](http://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) to create a new delivery stream.
13+
To get started:
14+
1. Create at least one Kinesis Firehose delivery stream. You can follow these [instructions](http://docs.aws.amazon.com/firehose/latest/dev/basic-create.html){:target="_blank"} to create a new delivery stream.
1415
2. Create an IAM policy.
15-
1. Sign in to the [Identity and Access Management (IAM) console](https://console.aws.amazon.com/iam/).
16-
2. Follow [these instructions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) to create an IAM policy on the JSON to allow Segment permission to write to your Kinesis Firehose Stream.
16+
1. Sign in to the [Identity and Access Management (IAM) console](https://console.aws.amazon.com/iam/){:target="_blank"}.
17+
2. Follow [these instructions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor){:target="_blank"} to create an IAM policy on the JSON to allow Segment permission to write to your Kinesis Firehose Stream.
1718
- Use the following template policy in the **Policy Document** field. Be sure to change the `{region}`, `{account-id}` and `{stream-name}` with the applicable values.
1819

1920

20-
```
21+
```js
2122
{
2223
"Version": "2012-10-17",
2324
"Statement": [
@@ -65,7 +66,7 @@ analytics.identify('97980cfea0085', {
6566
## Track
6667
Take a look to understand what the [Track method](https://segment.com/docs/connections/spec/track/) does. An example identify call is shown below:
6768

68-
```javascript
69+
```js
6970
analytics.track("User Registered", {
7071
checkinDate: new Date(),
7172
myCoolProperty: "foobar",
@@ -75,15 +76,15 @@ analytics.track("User Registered", {
7576
### Event Mapping
7677
To begin using the Kinesis Firehose destination, you must first decide on which Segment events you would like to route to which Firehose delivery streams. This mapping then needs to be defined in your destination settings.
7778

78-
Segment `track` events can map based on their **event name**. For example, if you have an event called `User Registered`, and you want these events to be published to a Firehose delivery stream called `new_users`, you would create a row in your destination settings that looks like this:
79+
Segment `track` events can map based on their **event name**. For example, if you have an event called `User Registered`, and you want these events to be published to a Firehose delivery stream called `new_users`, create a row in your destination settings that looks like this:
7980

8081
![track event mapping screenshot](images/track_mapping.png)
8182

8283
Any Segment **event type** (ie. `page`, `track`, `identify`, `screen`, etc.) can also be mapped. This enables you to publish all instances of a given Segment event type to a given stream. To do this, create a row with the event type and its corresponding delivery stream:
8384

8485
![page event mapping screenshot](images/page_mapping.png)
8586

86-
Events can be defined **insensitive to case** so `Page` will be equivalent to `page`. The delivery stream name however needs to be formatted exactly as it is on AWS.
87+
Events can be defined **insensitive to case** so `Page` will be equivalent to `page`. The delivery stream name needs to be formatted exactly as it is on AWS.
8788

8889
If you would like to route all events to a stream, use an `*` as the event name.
8990

@@ -103,7 +104,7 @@ Let's say you've decided to publish your Segment track events named `User Regist
103104

104105
The Segment Kinesis destination will issue a `PutRecord` request with the following parameters:
105106

106-
```
107+
```js
107108
firehose.putRecord({
108109
Record: {
109110
Data: JSON.stringify(msg)) + '/n'
@@ -112,7 +113,7 @@ firehose.putRecord({
112113
});
113114
```
114115

115-
Segment will append a newline character to each record to allow for easy downstream parsing.
116+
Segment appends a newline character to each record to allow for easy downstream parsing.
116117

117118
## Group
118119
Take a look to understand what the [Group method](https://segment.com/docs/connections/spec/group/) does. An example group call is shown below:
@@ -132,53 +133,56 @@ analytics.group("0e8c78ea9d9dsasahjg", {
132133
If you have multiple sources using Kinesis/Firehose, you have two options:
133134

134135
#### Attach multiple sources to your IAM role
135-
Find the IAM role you created for this destination in the AWS Console in Services > IAM > Roles. Click on the role, and navigate to the **Trust Relationships** tab. Click **Edit trust relationship**. You should see a snippet that looks something that looks like this:
136+
To attach multiple sources to your IAM role:
137+
1. Find the IAM role you created for this destination in the AWS Console in **Services > IAM > Roles**.
138+
2. Select the role and navigate to the **Trust Relationships** tab.
139+
3. Click **Edit trust relationship**. You should see a snippet that looks something that looks like this:
136140

137-
```json
138-
{
139-
"Version": "2012-10-17",
140-
"Statement": [
141+
```json
141142
{
142-
"Effect": "Allow",
143-
"Principal": {
144-
"AWS": "arn:aws:iam::595280932656:root"
145-
},
146-
"Action": "sts:AssumeRole",
147-
"Condition": {
148-
"StringEquals": {
149-
"sts:ExternalId": "YOUR_SEGMENT_SOURCE_ID"
143+
"Version": "2012-10-17",
144+
"Statement": [
145+
{
146+
"Effect": "Allow",
147+
"Principal": {
148+
"AWS": "arn:aws:iam::595280932656:root"
149+
},
150+
"Action": "sts:AssumeRole",
151+
"Condition": {
152+
"StringEquals": {
153+
"sts:ExternalId": "YOUR_SEGMENT_SOURCE_ID"
154+
}
155+
}
150156
}
151-
}
157+
]
152158
}
153-
]
154-
}
155-
```
159+
```
156160

157-
Replace that snippet with the following, and replace the contents of the array with all of your source IDs.
161+
4. Replace that snippet with the following, and replace the contents of the array with all of your source IDs.
158162

159-
```json
160-
{
161-
"Version": "2012-10-17",
162-
"Statement": [
163+
```json
163164
{
164-
"Effect": "Allow",
165-
"Principal": {
166-
"AWS": "arn:aws:iam::595280932656:root"
167-
},
168-
"Action": "sts:AssumeRole",
169-
"Condition": {
170-
"StringEquals": {
171-
"sts:ExternalId": ["YOUR_SEGMENT_SOURCE_ID", "ANOTHER_SOURCE_ID", "A_THIRD_SOURCE_ID"]
165+
"Version": "2012-10-17",
166+
"Statement": [
167+
{
168+
"Effect": "Allow",
169+
"Principal": {
170+
"AWS": "arn:aws:iam::595280932656:root"
171+
},
172+
"Action": "sts:AssumeRole",
173+
"Condition": {
174+
"StringEquals": {
175+
"sts:ExternalId": ["YOUR_SEGMENT_SOURCE_ID", "ANOTHER_SOURCE_ID", "A_THIRD_SOURCE_ID"]
176+
}
177+
}
172178
}
173-
}
179+
]
174180
}
175-
]
176-
}
177-
```
181+
```
178182

179183
#### Use a single secret ID
180184

181-
If you have many sources using Kinesis that it's impractical to attach all of their IDs to your IAM role, you can set a single ID to use instead. *This approach requires that you securely store a secret value, so we recommend that you use the method above if at all possible.*
185+
If you have many sources using Kinesis that it's impractical to attach all of their IDs to your IAM role, you can set a single ID to use instead.
182186

183187
To set this value for a single Secret ID:
184188
1. Go to the Kinesis Firehose destination settings from each of your Segment sources.

0 commit comments

Comments
 (0)