datahub/assets/js/10f4cd9f.92ef0fd9.js
2025-11-20 14:25:26 +00:00

1 line
15 KiB
JavaScript

"use strict";(self.webpackChunkdocs_website=self.webpackChunkdocs_website||[]).push([[30590],{7653:(e,t,n)=>{n.d(t,{A:()=>a});const a={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"}}]},name:"close-circle",theme:"filled"}},4732:(e,t,n)=>{n.d(t,{A:()=>u});var a=n(89379),r=n(96540),o=n(7653),l=n(89990),i=function(e,t){return r.createElement(l.A,(0,a.A)((0,a.A)({},e),{},{ref:t,icon:o.A}))};const u=r.forwardRef(i)},15680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>v});var a=n(96540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),d=r,v=p["".concat(u,".").concat(d)]||p[d]||g[d]||o;return n?a.createElement(v,l(l({ref:t},c),{},{components:n})):a.createElement(v,l({ref:t},c))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},43655:(e,t,n)=>{n.d(t,{A:()=>h});var a=n(96540),r=n(20053);const o="availabilityCard_P5od",l="managedIcon_AxXO",i="platform_wqXv",u="platformAvailable_Y8lN";var s=n(4732),c=n(89379);const p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"};var g=n(89990),d=function(e,t){return a.createElement(g.A,(0,c.A)((0,c.A)({},e),{},{ref:t,icon:p}))};const v=a.forwardRef(d);const y={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"}}]},name:"cloud",theme:"outlined"};var m=function(e,t){return a.createElement(g.A,(0,c.A)((0,c.A)({},e),{},{ref:t,icon:y}))};const b=a.forwardRef(m),h=({saasOnly:e,ossOnly:t})=>a.createElement("div",{className:(0,r.A)(o,"card")},a.createElement("strong",null,"Feature Availability"),a.createElement("div",null,a.createElement("span",{className:(0,r.A)(i,!e&&u)},"Self-Hosted DataHub ",e?a.createElement(s.A,null):a.createElement(v,null))),a.createElement("div",null,a.createElement(b,{className:l}),a.createElement("span",{className:(0,r.A)(i,!t&&u)},"DataHub Cloud ",t?a.createElement(s.A,null):a.createElement(v,null))))},70009:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>y,frontMatter:()=>u,metadata:()=>c,toc:()=>g});n(96540);var a=n(15680),r=n(43655);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}const u={description:"This guide will walk through the configuration required to start receiving DataHub Cloud events via AWS EventBridge.",title:"Setting up Events API on AWS EventBridge",slug:"/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge.md"},s="Setting up Events API on AWS EventBridge",c={unversionedId:"docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge",id:"docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge",title:"Setting up Events API on AWS EventBridge",description:"This guide will walk through the configuration required to start receiving DataHub Cloud events via AWS EventBridge.",source:"@site/genDocs/docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge.md",sourceDirName:"docs/managed-datahub/operator-guide",slug:"/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge",permalink:"/docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge",draft:!1,editUrl:"https://github.com/datahub-project/datahub/blob/master/docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge.md",tags:[],version:"current",frontMatter:{description:"This guide will walk through the configuration required to start receiving DataHub Cloud events via AWS EventBridge.",title:"Setting up Events API on AWS EventBridge",slug:"/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge.md"},sidebar:"overviewSidebar",previous:{title:"Microsoft Teams App Setup",permalink:"/docs/managed-datahub/teams/saas-teams-setup"},next:{title:"AWS PrivateLink",permalink:"/docs/managed-datahub/integrations/aws-privatelink"}},p={},g=[{value:"Entity Events API",id:"entity-events-api",level:2},{value:"Event Structure",id:"event-structure",level:2},{value:"Sample Event",id:"sample-event",level:4},{value:"Sample Pattern",id:"sample-pattern",level:4},{value:"Step 1: Create an Event Bus",id:"step-1-create-an-event-bus",level:2},{value:"Step 2: Create a Routing Rule",id:"step-2-create-a-routing-rule",level:2},{value:"Step 3: Configure DataHub Cloud to Send Events",id:"step-3-configure-datahub-cloud-to-send-events",level:2}],d={toc:g},v="wrapper";function y(e){var{components:t}=e,n=i(e,["components"]);return(0,a.yg)(v,l(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){o(e,t,n[t])}))}return e}({},d,n),{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"setting-up-events-api-on-aws-eventbridge"},"Setting up Events API on AWS EventBridge"),(0,a.yg)(r.A,{saasOnly:!0,mdxType:"FeatureAvailability"}),(0,a.yg)("h2",{id:"entity-events-api"},"Entity Events API"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"See the Entity Events API Docs ",(0,a.yg)("a",{parentName:"li",href:"/docs/managed-datahub/datahub-api/entity-events-api"},"here"))),(0,a.yg)("h2",{id:"event-structure"},"Event Structure"),(0,a.yg)("p",null,"As are all AWS EventBridge events, the payload itself will be wrapped by a set of standard fields, outlined ",(0,a.yg)("a",{parentName:"p",href:"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html"},"here"),". The most notable include"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"source:")," A unique identifier for the source of the event. We tend to use ","`","acryl.events","`"," by default."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"account"),": The account in which the event originated. This will be the DataHub Cloud AWS Account ID provided by your DataHub Cloud customersuccess rep."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"detail"),": The place where the Entity Event payload will appear.")),(0,a.yg)("h4",{id:"sample-event"},"Sample Event"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},'{\n "version": "0",\n "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",\n "detail-type": "entityChangeEvent",\n "source": "acryl.events",\n "account": "111122223333",\n "time": "2017-12-22T18:43:48Z",\n "region": "us-west-1",\n "detail": {\n "entityUrn": "urn:li:dataset:abc",\n "entityType": "dataset",\n "category": "TAG",\n "operation": "ADD",\n "modifier": "urn:li:tag:pii",\n "parameters": {\n "tagUrn": "urn:li:tag:pii"\n }\n }\n}\n')),(0,a.yg)("h4",{id:"sample-pattern"},"Sample Pattern"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},'{\n "source": ["acryl.events"],\n "detail": {\n "category": ["TAG"],\n "parameters": {\n "tagUrn": ["urn:li:tag:pii"]\n }\n }\n}\n')),(0,a.yg)("p",null,(0,a.yg)("em",{parentName:"p"},"Sample Event Pattern Filtering any Add Tag Events on a PII Tag")),(0,a.yg)("h2",{id:"step-1-create-an-event-bus"},"Step 1: Create an Event Bus"),(0,a.yg)("p",null,"We recommend creating a dedicated event bus for DataHub Cloud. To do so, follow the steps below:"),(0,a.yg)("p",null,"1","."," Navigate to the AWS console inside the account where you will deploy Event Bridge."),(0,a.yg)("p",null,"2","."," Search and navigate to the ",(0,a.yg)("strong",{parentName:"p"},"EventBridge")," page."),(0,a.yg)("p",null,"3","."," Navigate to the ",(0,a.yg)("strong",{parentName:"p"},"Event Buses")," tab."),(0,a.yg)("p",null,"3","."," Click ",(0,a.yg)("strong",{parentName:"p"},"Create Event Bus.")),(0,a.yg)("p",null,"4","."," Give the new bus a name, e.g. ",(0,a.yg)("strong",{parentName:"p"},"acryl-events.")),(0,a.yg)("p",null,"5","."," Define a ",(0,a.yg)("strong",{parentName:"p"},"Resource Policy")),(0,a.yg)("p",null,"When creating your new event bus, you need to create a Policy that allows the DataHub Cloud AWS account to publish messages to the bus. This involves granting the ",(0,a.yg)("strong",{parentName:"p"},"PutEvents")," privilege to the DataHub Cloud account via an account id."),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Sample Policy")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},'{\n "Version": "2012-10-17",\n "Statement": [{\n "Sid": "allow_account_to_put_events",\n "Effect": "Allow",\n "Principal": {\n "AWS": "arn:aws:iam::795586375822:root"\n },\n "Action": "events:PutEvents",\n "Resource": "<event-bus-arn>"\n }]\n}\n')),(0,a.yg)("p",null,"Notice that you'll need to populate the following fields on your own"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"event-bus-arn"),": This is the AWS ARN of your new event bus.")),(0,a.yg)("h2",{id:"step-2-create-a-routing-rule"},"Step 2: Create a Routing Rule"),(0,a.yg)("p",null,"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."),(0,a.yg)("p",null,"To do so, follow the below steps"),(0,a.yg)("p",null,"1","."," Navigate to the ",(0,a.yg)("strong",{parentName:"p"},"Rules")," tab."),(0,a.yg)("p",null,"2","."," Click ",(0,a.yg)("strong",{parentName:"p"},"Create Rule"),"."),(0,a.yg)("p",null,"3","."," Give the rule a name. This will usually depend on the target where you intend to route requests matching the rule."),(0,a.yg)("p",null,"4","."," In the ",(0,a.yg)("strong",{parentName:"p"},"Event Bus")," field, select the event bus created in ",(0,a.yg)("strong",{parentName:"p"},"Step 1"),"."),(0,a.yg)("p",null,"5","."," Select the 'Rule with Event Pattern' option"),(0,a.yg)("p",null,"6","."," Click ",(0,a.yg)("strong",{parentName:"p"},"Next.")),(0,a.yg)("p",null,"7","."," For ",(0,a.yg)("strong",{parentName:"p"},"Event Source"),", choose ",(0,a.yg)("strong",{parentName:"p"},"Other")),(0,a.yg)("p",null,"8","."," ","*",(0,a.yg)("strong",{parentName:"p"},"*"," Optional: Define a Sample Event. You can use the Sample Event defined in the "),"Event Structure","*","*"," section above."),(0,a.yg)("p",null,"9","."," Define a matching Rule. This determines which DataHub events will be routed based on the current rule. You can use the Sample Rule defined in the ",(0,a.yg)("strong",{parentName:"p"},"Event Structure")," section above as a reference."),(0,a.yg)("p",null,"10","."," Define a Target: This defines where the events that match the rule should be routed."),(0,a.yg)("h2",{id:"step-3-configure-datahub-cloud-to-send-events"},"Step 3: Configure DataHub Cloud to Send Events"),(0,a.yg)("p",null,"Once you've completed these steps, communicate the following information to your DataHub Cloud CustomerSuccess rep:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"The ARN of the new Event Bus."),(0,a.yg)("li",{parentName:"ul"},"The AWS region in which the Event Bus is located.")),(0,a.yg)("p",null,"This will enable DataHub Cloud to begin sending events to your EventBridge bus."),(0,a.yg)("p",null,"_","_"))}y.isMDXComponent=!0}}]);