mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-10-31 18:59:23 +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.
 | |
| 
 | |
| 
 | |
| 
 | |
| __
 | 
