New — Create Point-to-Point Integrations Between Event Producers and Consumers with Amazon EventBridge Pipes

海外精选
re:Invent
Amazon EventBridge
海外精选的内容汇集了全球优质的亚马逊云科技相关技术内容。同时,内容中提到的“AWS” 是 “Amazon Web Services” 的缩写,在此网站不作为商标展示。
0
0
{"value":"It is increasingly common to use multiple cloud services as building blocks to assemble a modern event-driven application. Using purpose-built services to accomplish a particular task ensures developers get the best capabilities for their use case. However, communication between services can be difficult if they use different technologies to communicate, meaning that you need to learn the nuances of each service and how to integrate them with each other. We usually need to create integration code (or “glue” code) to connect and bridge communication between services. Writing glue code slows our velocity, increases the risk of bugs, and means we spend our time writing undifferentiated code rather than building better experiences for our customers.\n\n### ++Introducing [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes++\nToday, I’m excited to announce **[Amazon EventBridge Pipes](https://aws.amazon.com/eventbridge/pipes/?trk=e0e18ce6-6a5b-4062-a737-24861b749633&amp;sc_channel=el)**, a new feature of [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) that makes it easier for you to build event-driven applications by providing a simple, consistent, and cost-effective way to create point-to-point integrations between event producers and consumers, removing the need to write undifferentiated glue code.\n\n![image.png](https://dev-media.amazoncloud.cn/bf7f2f05dd0447eea942fb55011f7114_image.png)\n\nThe simplest pipe consists of a source and a target. An optional filtering step allows only specific source events to flow into the Pipe and an optional enrichment step using [AWS Lambda](https://aws.amazon.com/lambda/), [AWS Step Functions](https://aws.amazon.com/step-functions), [Amazon EventBridge API Destinations](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html), or [Amazon API Gateway](http://aws.amazon.com/apigateway) enriches or transforms events before they reach the target. With [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes, you can integrate supported AWS and self-managed services as event producers and event consumers into your application in a simple, reliable, consistent and cost-effective way.\n\n\n[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes bring the most popular features of [Amazon EventBridge Event Bus](https://aws.amazon.com/eventbridge/), such as event filtering, integration with more than 14 AWS services, and automatic delivery retries.\t\n\n\n### ++How [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes Works++\n[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes provides you a seamless means of integrating supported AWS and self-managed services, favouring configuration over code. To start integrating services with EventBridge Pipes, you need to take the following steps:\n\n1. Choose a source that is producing your events. Supported sources include: [Amazon DynamoDB](https://aws.amazon.com/dynamodb/), [Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/streams/), [Amazon SQS, Amazon Managed Streaming for Apache Kafka](https://aws.amazon.com/sqs/), and [Amazon MQ](https://aws.amazon.com/amazon-mq/) (both ActiveMQ and RabbitMQ).\n2. (Optional) Specify an event filter to only process events that match your filter (you’re not charged for events that are filtered out).\n3. (Optional) Transform and enrich your events using built-in free transformations, or [AWS Lambda](https://aws.amazon.com/lambda/), [AWS Step Functions](https://aws.amazon.com/step-functions), [Amazon API Gateway](http://aws.amazon.com/apigateway), or [EventBridge API Destinations](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html) to perform more advanced transformations and enrichments.\n4. Choose a target destination from more than 14 AWS services, including Amazon Step Functions, Kinesis Data Streams, [AWS Lambda](https://aws.amazon.com/cn/lambda/?trk=cndc-detail), and third-party APIs using EventBridge API destinations.\n\n\n[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes provides simplicity to accelerate development velocity by reducing the time needed to learn the services and write integration code, to get reliable and consistent integration.\n\n![image.png](https://dev-media.amazoncloud.cn/58178de2c5944a928405b7d669a7f3e2_image.png)\n\n\nEventBridge Pipes also comes with additional features that can help in building event-driven applications. For example, with event filtering, Pipes helps event-driven applications become more cost-effective by only processing the events of interest.\n\n### ++Get Started with [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes++\nLet’s see how to get started with [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes. In this post, I will show how to integrate an [Amazon SQS](https://aws.amazon.com/cn/sqs/?trk=cndc-detail) queue with [AWS Step Functions](https://aws.amazon.com/cn/step-functions/?trk=cndc-detail) using [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes.\n\nThe following screenshot is my existing [Amazon SQS](https://aws.amazon.com/cn/sqs/?trk=cndc-detail) queue and [AWS Step Functions](https://aws.amazon.com/cn/step-functions/?trk=cndc-detail) state machine. In my case, I need to run the state machine for every event in the queue. To do so, I need to connect my SQS queue and Step Functions state machine with EventBridge Pipes.\n\n![image.png](https://dev-media.amazoncloud.cn/009de34ba6b5432481d8c239458ef3a5_image.png)\n\nFirst, I open the [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) console. In the navigation section, I select **Pipes**. Then I select **Create pipe**.\n\n![image.png](https://dev-media.amazoncloud.cn/531bbf7d5d164bf784412c893863c441_image.png)\n\nOn this page, I can start configuring a pipe and set the [AWS Identity and Access Management](https://aws.amazon.com/cn/iam/?trk=cndc-detail) (IAM) permission, and I can navigate to the **Pipe settings** tab.\n\n\n![image.png](https://dev-media.amazoncloud.cn/1cf71eb5d4564634a3932c6b2f87c6a4_image.png)\n\nIn the **Permissions** section, I can define a new IAM role for this pipe or use an existing role. To improve developer experience, the EventBridge Pipes console will figure out the IAM role for me, so I don’t need to manually configure required permissions and let EventBridge Pipes configures least-privilege permissions for IAM role. Since this is my first time creating a pipe, I select **Create a new role for this specific resource**.\n\n![image.png](https://dev-media.amazoncloud.cn/9c797bb8644d4b0b95f84f23f24cd1d0_image.png)\n\nThen, I go back to the **Build pipe** section. On this page, I can see the available event sources supported by EventBridge Pipes.\n\n![image.png](https://dev-media.amazoncloud.cn/767ed669a6ce44b29e6d5c3718f56b6b_image.png)\n\n\nI select **SQS** and select my existing SQS queue. If I need to do batch processing, I can select **Additional setting**s to start defining **Batch size** and **Batch window**. Then, I select **Next**.\n\n![image.png](https://dev-media.amazoncloud.cn/d4de0446340c4f94916b297f592c53ae_image.png)\n\n\nOn the next page, things get even more interesting because I can define **Event filtering** from the event source that I just selected. This step is optional, but the event filtering feature makes it easy for me to process events that only need to be processed by my event-driven application. In addition, this event filtering feature also helps me to be more cost-effective, as this pipe won’t process unnecessary events. For example, if I use Step Functions as the **target**, the event filtering will only execute events that match the filter.\n\n![image.png](https://dev-media.amazoncloud.cn/32b8f6d9981b4de1afe706065cb94990_image.png)\n\nI can use **sample events** from **AWS event**s or define custom events. For example, I want to process events for returned purchased items with a value of 100 or more. The following is the sample event in JSON format:\n\n```\\n{\\n \\"event-type\\":\\"RETURN_PURCHASE\\",\\n \\"value\\":100\\n}\\n```\n\nThen, in the **event pattern** section, I can define the pattern by referring to the [Content filtering in Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html#eb-filtering-prefix-matching) documentation. I define the event pattern as follows:\n\n```\\n{\\n \\"event-type\\": [\\"RETURN_PURCHASE\\"],\\n \\"value\\": [{\\n \\"numeric\\": [\\">=\\", 100]\\n }]\\n}\\n\\n```\n\nI can also test by selecting **test pattern** to make sure this event pattern will match the custom event I’m going to use. Once I’m confident that this is the event pattern that I want, I select **Next**.\n\n\n![image.png](https://dev-media.amazoncloud.cn/0ab60da5de63464b8ceeabf8eae902eb_image.png)\n\nIn the next optional step, I can use an **Enrichment** that will augment, transform, or expand the event before sending the event to the target destination. This enrichment is useful when I need to enrich the event using an existing [AWS Lambda](https://aws.amazon.com/cn/lambda/?trk=cndc-detail) function, or external SaaS API using the Destination API. Additionally, I can shape the event using the **Enrichment Input Transformer**.\n\n![image.png](https://dev-media.amazoncloud.cn/336c38d2ba5c4b3682a941936c3d5592_image.png)\n\nThe final step is to define a **target** for processing the events delivered by this pipe.\n\n![image.png](https://dev-media.amazoncloud.cn/aa149364c2e2453690aab0eda9ce0308_image.png)\n\nHere, I can select various AWS services supported by EventBridge Pipes.\n\n![00.03.gif](https://dev-media.amazoncloud.cn/b1dae6f91ef642b98caa8d8735fa9eaf_00.03.gif)\n\nI select my existing [AWS Step Functions](https://aws.amazon.com/cn/step-functions/?trk=cndc-detail) state machine, named ```\\npipes-statemachine```.\n\n\n![image.png](https://dev-media.amazoncloud.cn/119c9cec4fcc4824b24c7ede943865be_image.png)\n\n\nIn addition, I can also use **Target Input Transformer** by referring to the [Transforming Amazon EventBridge target input](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-input-transformation.html) documentation. For my case, I need to define a high priority for events going into this target. To do that, I define a sample custom event in **Sample events/Event Payload** and add the ```priority```: ```HIGH```\n in the **Transformer** section. Then in the **Output** section, I can see the final event to be passed to the target destination service. Then, I select **Create pipe**.\n\n![image.png](https://dev-media.amazoncloud.cn/601d9b01ded0478ca90ae4c5a59ddb2e_image.png)\n\nIn less than a minute, my pipe was successfully created.\n\n![image.png](https://dev-media.amazoncloud.cn/ab9827afd6224b7da6777ebf658087ee_image.png)\n\nTo test this pipe, I need to put an event into the Amaon SQS queue.\n\n![image.png](https://dev-media.amazoncloud.cn/2a45c0bf1d9b465cbabfe62e4fc619d6_image.png)\n\nTo check if my event is successfully processed by Step Functions, I can look into my state machine in Step Functions. On this page, I see my event is successfully processed.\n\n![image.png](https://dev-media.amazoncloud.cn/71950e25804d4c279e14491ed6adf6df_image.png)\n\nI can also go to [Amazon CloudWatch](https://aws.amazon.com/cn/cloudwatch/?trk=cndc-detail) Logs to get more detailed logs.\n\n![image.png](https://dev-media.amazoncloud.cn/7bed89e887e246a08a9712f5a19a694a_image.png)\n\n\n### ++Things to Know++\n**Event Sources** – At launch, [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes supports the following services as event sources: [Amazon DynamoDB](https://aws.amazon.com/cn/dynamodb/?trk=cndc-detail), [Amazon Kinesis](https://aws.amazon.com/cn/kinesis/?trk=cndc-detail), [Amazon Managed Streaming for Apache Kafka](https://aws.amazon.com/cn/msk/?trk=cndc-detail) (Amazon MSK) alongside self-managed Apache Kafka, [Amazon SQS](https://aws.amazon.com/cn/sqs/?trk=cndc-detail) (standard and FIFO), and [Amazon MQ](https://aws.amazon.com/cn/amazon-mq/?trk=cndc-detail) (both for ActiveMQ and RabbitMQ).\n\n**Event Targets** – [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes supports 15 [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) targets, including [AWS Lambda](https://aws.amazon.com/cn/lambda/?trk=cndc-detail), [Amazon API Gateway](https://aws.amazon.com/cn/api-gateway/?trk=cndc-detail), [Amazon SNS](https://aws.amazon.com/cn/sns/?trk=cndc-detail), [Amazon SQS](https://aws.amazon.com/cn/sqs/?trk=cndc-detail), and [AWS Step Functions](https://aws.amazon.com/cn/step-functions/?trk=cndc-detail). To deliver events to any HTTPS endpoint, developers can use [API destinations](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html) as the target.\n\n**Event Ordering** – EventBridge Pipes maintains the ordering of events received from an event sources that support ordering when sending those events to a destination service.\n\n**Programmatic Access** – You can also interact with [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes and create a pipe using [AWS Command Line Interface (CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html), [AWS CloudFormation](https://aws.amazon.com/cloudformation/), and [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/).\n\n**Independent Usage** – EventBridge Pipes can be used separately from [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) bus and [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Scheduler. This flexibility helps developers to define source events from supported AWS and self-managed services as event sources without [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Event Bus.\n\n**Availability** – [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes is now generally available in all AWS commercial Regions, with the exception of Asia Pacific (Hyderabad) and Europe (Zurich).\n\nVisit the [Amazon EventBridge Pipes](https://aws.amazon.com/eventbridge/pipes/?trk=e0e18ce6-6a5b-4062-a737-24861b749633&amp;sc_channel=el) page to learn more about this feature and understand the pricing. You can also [visit the documentation page](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html) to learn more about how to get started.\n\nHappy building!\n\n— [Donnie](https://donnie.id/)\n\n![89d6442457c51c067e7be46d60afd82.png](https://dev-media.amazoncloud.cn/baa15dd8d71c4070a11634107680fa38_89d6442457c51c067e7be46d60afd82.png)\n\n### Donnie Prakoso\nDonnie Prakoso is a software engineer, self-proclaimed barista, and Principal Developer Advocate at AWS. With more than 17 years of experience in the technology industry, from telecommunications, banking to startups. He is now focusing on helping the developers to understand varieties of technology to transform their ideas into execution. He loves coffee and any discussion of any topics from microservices to AI / ML.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","render":"<p>It is increasingly common to use multiple cloud services as building blocks to assemble a modern event-driven application. Using purpose-built services to accomplish a particular task ensures developers get the best capabilities for their use case. However, communication between services can be difficult if they use different technologies to communicate, meaning that you need to learn the nuances of each service and how to integrate them with each other. We usually need to create integration code (or “glue” code) to connect and bridge communication between services. Writing glue code slows our velocity, increases the risk of bugs, and means we spend our time writing undifferentiated code rather than building better experiences for our customers.</p>\n<h3><a id=\\"Introducing_Amazon_EventBridge_Pipes_2\\"></a><ins>Introducing Amazon EventBridge Pipes</ins></h3>\\n<p>Today, I’m excited to announce <strong><a href=\\"https://aws.amazon.com/eventbridge/pipes/?trk=e0e18ce6-6a5b-4062-a737-24861b749633&amp;sc_channel=el\\" target=\\"_blank\\">Amazon EventBridge Pipes</a></strong>, a new feature of Amazon EventBridge that makes it easier for you to build event-driven applications by providing a simple, consistent, and cost-effective way to create point-to-point integrations between event producers and consumers, removing the need to write undifferentiated glue code.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/bf7f2f05dd0447eea942fb55011f7114_image.png\\" alt=\\"image.png\\" /></p>\n<p>The simplest pipe consists of a source and a target. An optional filtering step allows only specific source events to flow into the Pipe and an optional enrichment step using <a href=\\"https://aws.amazon.com/lambda/\\" target=\\"_blank\\">AWS Lambda</a>, <a href=\\"https://aws.amazon.com/step-functions\\" target=\\"_blank\\">AWS Step Functions</a>, <a href=\\"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html\\" target=\\"_blank\\">Amazon EventBridge API Destinations</a>, or <a href=\\"http://aws.amazon.com/apigateway\\" target=\\"_blank\\">Amazon API Gateway</a> enriches or transforms events before they reach the target. With [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes, you can integrate supported AWS and self-managed services as event producers and event consumers into your application in a simple, reliable, consistent and cost-effective way.</p>\\n<p>Amazon EventBridge Pipes bring the most popular features of <a href=\\"https://aws.amazon.com/eventbridge/\\" target=\\"_blank\\">Amazon EventBridge Event Bus</a>, such as event filtering, integration with more than 14 AWS services, and automatic delivery retries.</p>\\n<h3><a id=\\"How_Amazon_EventBridge_Pipes_Works_13\\"></a><ins>How Amazon EventBridge Pipes Works</ins></h3>\\n<p>Amazon EventBridge Pipes provides you a seamless means of integrating supported AWS and self-managed services, favouring configuration over code. To start integrating services with EventBridge Pipes, you need to take the following steps:</p>\n<ol>\\n<li>Choose a source that is producing your events. Supported sources include: <a href=\\"https://aws.amazon.com/dynamodb/\\" target=\\"_blank\\">Amazon DynamoDB</a>, <a href=\\"https://aws.amazon.com/kinesis/streams/\\" target=\\"_blank\\">Amazon Kinesis Data Streams</a>, <a href=\\"https://aws.amazon.com/sqs/\\" target=\\"_blank\\">Amazon SQS, Amazon Managed Streaming for Apache Kafka</a>, and <a href=\\"https://aws.amazon.com/amazon-mq/\\" target=\\"_blank\\">Amazon MQ</a> (both ActiveMQ and RabbitMQ).</li>\\n<li>(Optional) Specify an event filter to only process events that match your filter (you’re not charged for events that are filtered out).</li>\n<li>(Optional) Transform and enrich your events using built-in free transformations, or <a href=\\"https://aws.amazon.com/lambda/\\" target=\\"_blank\\">AWS Lambda</a>, <a href=\\"https://aws.amazon.com/step-functions\\" target=\\"_blank\\">AWS Step Functions</a>, <a href=\\"http://aws.amazon.com/apigateway\\" target=\\"_blank\\">Amazon API Gateway</a>, or <a href=\\"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html\\" target=\\"_blank\\">EventBridge API Destinations</a> to perform more advanced transformations and enrichments.</li>\\n<li>Choose a target destination from more than 14 AWS services, including Amazon Step Functions, Kinesis Data Streams, AWS Lambda, and third-party APIs using EventBridge API destinations.</li>\n</ol>\\n<p>Amazon EventBridge Pipes provides simplicity to accelerate development velocity by reducing the time needed to learn the services and write integration code, to get reliable and consistent integration.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/58178de2c5944a928405b7d669a7f3e2_image.png\\" alt=\\"image.png\\" /></p>\n<p>EventBridge Pipes also comes with additional features that can help in building event-driven applications. For example, with event filtering, Pipes helps event-driven applications become more cost-effective by only processing the events of interest.</p>\n<h3><a id=\\"Get_Started_with_Amazon_EventBridge_Pipes_29\\"></a><ins>Get Started with Amazon EventBridge Pipes</ins></h3>\\n<p>Let’s see how to get started with Amazon EventBridge Pipes. In this post, I will show how to integrate an Amazon SQS queue with AWS Step Functions using Amazon EventBridge Pipes.</p>\n<p>The following screenshot is my existing Amazon SQS queue and AWS Step Functions state machine. In my case, I need to run the state machine for every event in the queue. To do so, I need to connect my SQS queue and Step Functions state machine with EventBridge Pipes.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/009de34ba6b5432481d8c239458ef3a5_image.png\\" alt=\\"image.png\\" /></p>\n<p>First, I open the Amazon EventBridge console. In the navigation section, I select <strong>Pipes</strong>. Then I select <strong>Create pipe</strong>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/531bbf7d5d164bf784412c893863c441_image.png\\" alt=\\"image.png\\" /></p>\n<p>On this page, I can start configuring a pipe and set the AWS Identity and Access Management (IAM) permission, and I can navigate to the <strong>Pipe settings</strong> tab.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/1cf71eb5d4564634a3932c6b2f87c6a4_image.png\\" alt=\\"image.png\\" /></p>\n<p>In the <strong>Permissions</strong> section, I can define a new IAM role for this pipe or use an existing role. To improve developer experience, the EventBridge Pipes console will figure out the IAM role for me, so I don’t need to manually configure required permissions and let EventBridge Pipes configures least-privilege permissions for IAM role. Since this is my first time creating a pipe, I select <strong>Create a new role for this specific resource</strong>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/9c797bb8644d4b0b95f84f23f24cd1d0_image.png\\" alt=\\"image.png\\" /></p>\n<p>Then, I go back to the <strong>Build pipe</strong> section. On this page, I can see the available event sources supported by EventBridge Pipes.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/767ed669a6ce44b29e6d5c3718f56b6b_image.png\\" alt=\\"image.png\\" /></p>\n<p>I select <strong>SQS</strong> and select my existing SQS queue. If I need to do batch processing, I can select <strong>Additional setting</strong>s to start defining <strong>Batch size</strong> and <strong>Batch window</strong>. Then, I select <strong>Next</strong>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/d4de0446340c4f94916b297f592c53ae_image.png\\" alt=\\"image.png\\" /></p>\n<p>On the next page, things get even more interesting because I can define <strong>Event filtering</strong> from the event source that I just selected. This step is optional, but the event filtering feature makes it easy for me to process events that only need to be processed by my event-driven application. In addition, this event filtering feature also helps me to be more cost-effective, as this pipe won’t process unnecessary events. For example, if I use Step Functions as the <strong>target</strong>, the event filtering will only execute events that match the filter.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/32b8f6d9981b4de1afe706065cb94990_image.png\\" alt=\\"image.png\\" /></p>\n<p>I can use <strong>sample events</strong> from <strong>AWS event</strong>s or define custom events. For example, I want to process events for returned purchased items with a value of 100 or more. The following is the sample event in JSON format:</p>\\n<pre><code class=\\"lang-\\">{\\n &quot;event-type&quot;:&quot;RETURN_PURCHASE&quot;,\\n &quot;value&quot;:100\\n}\\n</code></pre>\\n<p>Then, in the <strong>event pattern</strong> section, I can define the pattern by referring to the <a href=\\"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html#eb-filtering-prefix-matching\\" target=\\"_blank\\">Content filtering in Amazon EventBridge event patterns</a> documentation. I define the event pattern as follows:</p>\\n<pre><code class=\\"lang-\\">{\\n &quot;event-type&quot;: [&quot;RETURN_PURCHASE&quot;],\\n &quot;value&quot;: [{\\n &quot;numeric&quot;: [&quot;&gt;=&quot;, 100]\\n }]\\n}\\n\\n</code></pre>\\n<p>I can also test by selecting <strong>test pattern</strong> to make sure this event pattern will match the custom event I’m going to use. Once I’m confident that this is the event pattern that I want, I select <strong>Next</strong>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/0ab60da5de63464b8ceeabf8eae902eb_image.png\\" alt=\\"image.png\\" /></p>\n<p>In the next optional step, I can use an <strong>Enrichment</strong> that will augment, transform, or expand the event before sending the event to the target destination. This enrichment is useful when I need to enrich the event using an existing [AWS Lambda](https://aws.amazon.com/cn/lambda/?trk=cndc-detail) function, or external SaaS API using the Destination API. Additionally, I can shape the event using the <strong>Enrichment Input Transformer</strong>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/336c38d2ba5c4b3682a941936c3d5592_image.png\\" alt=\\"image.png\\" /></p>\n<p>The final step is to define a <strong>target</strong> for processing the events delivered by this pipe.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/aa149364c2e2453690aab0eda9ce0308_image.png\\" alt=\\"image.png\\" /></p>\n<p>Here, I can select various AWS services supported by EventBridge Pipes.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/b1dae6f91ef642b98caa8d8735fa9eaf_00.03.gif\\" alt=\\"00.03.gif\\" /></p>\n<p>I select my existing AWS Step Functions state machine, named <code> pipes-statemachine</code>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/119c9cec4fcc4824b24c7ede943865be_image.png\\" alt=\\"image.png\\" /></p>\n<p>In addition, I can also use <strong>Target Input Transformer</strong> by referring to the <a href=\\"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-input-transformation.html\\" target=\\"_blank\\">Transforming Amazon EventBridge target input</a> documentation. For my case, I need to define a high priority for events going into this target. To do that, I define a sample custom event in <strong>Sample events/Event Payload</strong> and add the <code>priority</code>: <code>HIGH</code><br />\\nin the <strong>Transformer</strong> section. Then in the <strong>Output</strong> section, I can see the final event to be passed to the target destination service. Then, I select <strong>Create pipe</strong>.</p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/601d9b01ded0478ca90ae4c5a59ddb2e_image.png\\" alt=\\"image.png\\" /></p>\n<p>In less than a minute, my pipe was successfully created.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/ab9827afd6224b7da6777ebf658087ee_image.png\\" alt=\\"image.png\\" /></p>\n<p>To test this pipe, I need to put an event into the Amaon SQS queue.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/2a45c0bf1d9b465cbabfe62e4fc619d6_image.png\\" alt=\\"image.png\\" /></p>\n<p>To check if my event is successfully processed by Step Functions, I can look into my state machine in Step Functions. On this page, I see my event is successfully processed.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/71950e25804d4c279e14491ed6adf6df_image.png\\" alt=\\"image.png\\" /></p>\n<p>I can also go to Amazon CloudWatch Logs to get more detailed logs.</p>\n<p><img src=\\"https://dev-media.amazoncloud.cn/7bed89e887e246a08a9712f5a19a694a_image.png\\" alt=\\"image.png\\" /></p>\n<h3><a id=\\"Things_to_Know_130\\"></a><ins>Things to Know</ins></h3>\\n<p><strong>Event Sources</strong> – At launch, [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes supports the following services as event sources: [Amazon DynamoDB](https://aws.amazon.com/cn/dynamodb/?trk=cndc-detail), [Amazon Kinesis](https://aws.amazon.com/cn/kinesis/?trk=cndc-detail), [Amazon Managed Streaming for Apache Kafka](https://aws.amazon.com/cn/msk/?trk=cndc-detail) (Amazon MSK) alongside self-managed Apache Kafka, [Amazon SQS](https://aws.amazon.com/cn/sqs/?trk=cndc-detail) (standard and FIFO), and [Amazon MQ](https://aws.amazon.com/cn/amazon-mq/?trk=cndc-detail) (both for ActiveMQ and RabbitMQ).</p>\\n<p><strong>Event Targets</strong> – [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes supports 15 [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) targets, including [AWS Lambda](https://aws.amazon.com/cn/lambda/?trk=cndc-detail), [Amazon API Gateway](https://aws.amazon.com/cn/api-gateway/?trk=cndc-detail), [Amazon SNS](https://aws.amazon.com/cn/sns/?trk=cndc-detail), [Amazon SQS](https://aws.amazon.com/cn/sqs/?trk=cndc-detail), and [AWS Step Functions](https://aws.amazon.com/cn/step-functions/?trk=cndc-detail). To deliver events to any HTTPS endpoint, developers can use <a href=\\"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html\\" target=\\"_blank\\">API destinations</a> as the target.</p>\\n<p><strong>Event Ordering</strong> – EventBridge Pipes maintains the ordering of events received from an event sources that support ordering when sending those events to a destination service.</p>\\n<p><strong>Programmatic Access</strong> – You can also interact with [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes and create a pipe using <a href=\\"https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html\\" target=\\"_blank\\">AWS Command Line Interface (CLI)</a>, <a href=\\"https://aws.amazon.com/cloudformation/\\" target=\\"_blank\\">AWS CloudFormation</a>, and <a href=\\"https://aws.amazon.com/cdk/\\" target=\\"_blank\\">AWS Cloud Development Kit (AWS CDK)</a>.</p>\\n<p><strong>Independent Usage</strong> – EventBridge Pipes can be used separately from [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) bus and [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Scheduler. This flexibility helps developers to define source events from supported AWS and self-managed services as event sources without [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Event Bus.</p>\\n<p><strong>Availability</strong> – [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) Pipes is now generally available in all AWS commercial Regions, with the exception of Asia Pacific (Hyderabad) and Europe (Zurich).</p>\\n<p>Visit the <a href=\\"https://aws.amazon.com/eventbridge/pipes/?trk=e0e18ce6-6a5b-4062-a737-24861b749633&amp;sc_channel=el\\" target=\\"_blank\\">Amazon EventBridge Pipes</a> page to learn more about this feature and understand the pricing. You can also <a href=\\"https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html\\" target=\\"_blank\\">visit the documentation page</a> to learn more about how to get started.</p>\\n<p>Happy building!</p>\n<p>— <a href=\\"https://donnie.id/\\" target=\\"_blank\\">Donnie</a></p>\\n<p><img src=\\"https://dev-media.amazoncloud.cn/baa15dd8d71c4070a11634107680fa38_89d6442457c51c067e7be46d60afd82.png\\" alt=\\"89d6442457c51c067e7be46d60afd82.png\\" /></p>\n<h3><a id=\\"Donnie_Prakoso_151\\"></a>Donnie Prakoso</h3>\\n<p>Donnie Prakoso is a software engineer, self-proclaimed barista, and Principal Developer Advocate at AWS. With more than 17 years of experience in the technology industry, from telecommunications, banking to startups. He is now focusing on helping the developers to understand varieties of technology to transform their ideas into execution. He loves coffee and any discussion of any topics from microservices to AI / ML.</p>\n"}
0
目录
关闭