Share
Embed
Amazon EventBridge: AWS re:Invent Serverless London Recap Day
Introduction to Amazon EventBridge
Julian Wood
February 18, 2020
Transcript
29 slides
-
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Julian Wood Ben Smith @julian_wood @benjamin_l_s Senior Developer Advocates, AWS Serverless -
© 2020, Amazon Web Services, Inc. or its Affiliates. Events
are observable, not directed Directed Commands Observable Events -
© 2020, Amazon Web Services, Inc. or its Affiliates. Event
bus Abstracts producers and consumers Selects and filters events -
© 2020, Amazon Web Services, Inc. or its Affiliates. •
Fully managed, pay-as-you-go • Native integration with SaaS providers • 90+ AWS services as sources • 17 AWS services as targets • $1 per million events put into the bus • No additional cost for delivery Amazon EventBridge A serverless event bus service for SaaS and AWS services -
© 2020, Amazon Web Services, Inc. or its Affiliates. Key
benefits of Amazon EventBridge Decoupling Simplified event routing Improved availability Third party integration -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } Example rule: { "source": ["custom.myATMapp"] } -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } Example rule: { "detail": { “action": [“withdrawal", “deposit"] } } -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } Example rule: { "detail-type": [“balance"] } -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } Example rule = over $300: { "source": [ "custom.myATMapp" ], "detail-type": [ "transaction" ], "detail": { “action": ”withdrawal", "amount": [ { "numeric": [ ">", 300 ] } ] } } -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } Example rule = ATMs in NYC: { "source": [ "custom.myATMapp" ], "detail-type": [ "transaction" ], "detail": { “action": ”withdrawal", "location": [ { "prefix": "NY-NYC-" } ] ] } } -
© 2020, Amazon Web Services, Inc. or its Affiliates. Amazon
EventBridge Example event: { "source": "custom.myATMapp", "detail-type": “transaction", "detail": { “action": ”withdrawal", “result": “approved", "location": "NY-NYC-001", "amount": 350, "partnerBank": "Example Bank", ... } } Example rule = combined: { "source": [ "custom.myATMapp" ], "detail-type": [ "transaction" ], "detail": { “action": ”withdrawal", "partnerBank": [ { "exists": false } ], "location": [{"anything-but":"NY-NYC- 002"}]] } } -
© 2020, Amazon Web Services, Inc. or its Affiliates. EventBridge
Comparison Operators Comparison Example Rule syntax Null UserID is null “UserID”: [ null ] Empty LastName is empty “LastName”: [“”] Equals Name is “Alice” “Name”: [ “Alice” ] And Location is “New York” and Day is “Monday” “Location”: [ “New York” ], “Day”: [“Monday”] Or PaymentType is “Credit” or “Debit” “PaymentType”: [ “Credit”, “Debit”] Not Weather is anything but “Raining” “Weather”: [ { “anything-but”: [ “Raining” ] } ] Numeric (equals) Price is 100 “Price”: [ { “numeric”: [ “=”, 100 ] } ] Numeric (range) Price is more than 10, and less than or equal to 20 “Price”: [ { “numeric”: [ “>”, 10, “<=”, 20 ] } ] Exists ProductName exists “ProductName”: [ { “exists”: true } ] Does not exist ProductName does not exist “ProductName”: [ { “exists”: false } ] Begins with Region is in the US “Region”: [ {“prefix”: “us-“ } ] -
© 2020, Amazon Web Services, Inc. or its Affiliates. Schema
registry and discovery -
© 2020, Amazon Web Services, Inc. or its Affiliates. •
Source of truth for sharing schema • Explicitly published and auto- discovered • Integrations for VS Code and JetBrains • Language bindings for Java, Python, and TypeScript Schema registry and discovery -
© 2020, Amazon Web Services, Inc. or its Affiliates. ZenDesk
AWS Lambda Amazon EventBridge User Writes Review Amazon Comprehend MongoDB Atlas Negative Demo : Schema registry and discovery -
© 2020, Amazon Web Services, Inc. or its Affiliates. •
Fully managed, pay-as-you-go • Native integration with SaaS providers • 90+ AWS services as sources • 17 AWS services as targets • $1 per million events put into the bus • No additional cost for delivery Amazon EventBridge A serverless event bus service for SaaS and AWS services -
© 2020, Amazon Web Services, Inc. or its Affiliates. Thank
you Julian Wood Ben Smith @julian_wood @benjamin_l_s Senior Developer Advocates, AWS Serverless