mirror of
https://github.com/datahub-project/datahub.git
synced 2025-06-27 05:03:31 +00:00
143 lines
4.0 KiB
Markdown
143 lines
4.0 KiB
Markdown
![]() |
---
|
||
|
description: >-
|
||
|
This guide will walk through the configuration required to start receiving
|
||
|
Acryl DataHub events via AWS EventBridge.
|
||
|
---
|
||
|
import FeatureAvailability from '@site/src/components/FeatureAvailability';
|
||
|
|
||
|
|
||
|
# Setting up Events API on AWS EventBridge
|
||
|
<FeatureAvailability saasOnly />
|
||
|
|
||
|
## Entity Events API
|
||
|
|
||
|
* See the Entity Events API Docs [here](docs/managed-datahub/datahub-api/entity-events-api.md)
|
||
|
|
||
|
## Event Structure
|
||
|
|
||
|
As are all AWS EventBridge events, the payload itself will be wrapped by a set of standard fields, outlined [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html). The most notable include
|
||
|
|
||
|
* **source:** A unique identifier for the source of the event. We tend to use \`acryl.events\` by default.
|
||
|
* **account**: The account in which the event originated. This will be the Acryl AWS Account ID provided by your Acryl customer success rep.
|
||
|
* **detail**: The place where the Entity Event payload will appear.
|
||
|
|
||
|
#### Sample Event
|
||
|
|
||
|
```
|
||
|
{
|
||
|
"version": "0",
|
||
|
"id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
|
||
|
"detail-type": "entityChangeEvent",
|
||
|
"source": "acryl.events",
|
||
|
"account": "111122223333",
|
||
|
"time": "2017-12-22T18:43:48Z",
|
||
|
"region": "us-west-1",
|
||
|
"detail": {
|
||
|
"entityUrn": "urn:li:dataset:abc",
|
||
|
"entityType": "dataset",
|
||
|
"category": "TAG",
|
||
|
"operation": "ADD",
|
||
|
"modifier": "urn:li:tag:pii",
|
||
|
"parameters": {
|
||
|
"tagUrn": "urn:li:tag:pii"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
#### Sample Pattern
|
||
|
|
||
|
```
|
||
|
{
|
||
|
"source": ["acryl.events"],
|
||
|
"detail": {
|
||
|
"category": ["TAG"],
|
||
|
"parameters": {
|
||
|
"tagUrn": ["urn:li:tag:pii"]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
_Sample Event Pattern Filtering any Add Tag Events on a PII Tag_
|
||
|
|
||
|
## Step 1: Create an Event Bus
|
||
|
|
||
|
We recommend creating a dedicated event bus for Acryl. To do so, follow the steps below:
|
||
|
|
||
|
1\. Navigate to the AWS console inside the account where you will deploy Event Bridge.
|
||
|
|
||
|
2\. Search and navigate to the **EventBridge** page.
|
||
|
|
||
|
3\. Navigate to the **Event Buses** tab.
|
||
|
|
||
|
3\. Click **Create Event Bus.**
|
||
|
|
||
|
4\. Give the new bus a name, e.g. **acryl-events.**
|
||
|
|
||
|
5\. Define a **Resource Policy**
|
||
|
|
||
|
When creating your new event bus, you need to create a Policy that allows the Acryl AWS account to publish messages to the bus. This involves granting the **PutEvents** privilege to the Acryl account via an account id.
|
||
|
|
||
|
**Sample Policy**
|
||
|
|
||
|
```
|
||
|
{
|
||
|
"Version": "2012-10-17",
|
||
|
"Statement": [{
|
||
|
"Sid": "allow_account_to_put_events",
|
||
|
"Effect": "Allow",
|
||
|
"Principal": {
|
||
|
"AWS": "arn:aws:iam::795586375822:root"
|
||
|
},
|
||
|
"Action": "events:PutEvents",
|
||
|
"Resource": "<event-bus-arn>"
|
||
|
}]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Notice that you'll need to populate the following fields on your own
|
||
|
|
||
|
* **event-bus-arn**: This is the AWS ARN of your new event bus.
|
||
|
|
||
|
## Step 2: Create a Routing Rule
|
||
|
|
||
|
Once you've defined an event bus, you need to create a rule for routing incoming events to your destinations, for example an SQS topic, a Lambda function, a Log Group, etc.
|
||
|
|
||
|
To do so, follow the below steps
|
||
|
|
||
|
1\. Navigate to the **Rules** tab.
|
||
|
|
||
|
2\. Click **Create Rule**.
|
||
|
|
||
|
3\. Give the rule a name. This will usually depend on the target where you intend to route requests matching the rule.
|
||
|
|
||
|
4\. In the **Event Bus** field, select the event bus created in **Step 1**.
|
||
|
|
||
|
5\. Select the 'Rule with Event Pattern' option
|
||
|
|
||
|
6\. Click **Next.**
|
||
|
|
||
|
7\. For **Event Source**, choose **Other**
|
||
|
|
||
|
8\. **** Optional: Define a Sample Event. You can use the Sample Event defined in the **Event Structure** section above.
|
||
|
|
||
|
9\. Define a matching Rule. This determines which Acryl events will be routed based on the current rule. You can use the Sample Rule defined in the **Event Structure** section above as a reference.
|
||
|
|
||
|
10\. Define a Target: This defines where the events that match the rule should be routed.
|
||
|
|
||
|
|
||
|
|
||
|
## Step 3: Configure Acryl to Send Events
|
||
|
|
||
|
Once you've completed these steps, communicate the following information to your Acryl Customer Success rep:
|
||
|
|
||
|
* The ARN of the new Event Bus.
|
||
|
* The AWS region in which the Event Bus is located.
|
||
|
|
||
|
This will enable Acryl to begin sending events to your EventBridge bus.
|
||
|
|
||
|
|
||
|
|
||
|
__
|