EventBridge: Bas Peristiwa dan Peraturan
Terbitkan peristiwa ke bas EventBridge tersuai, tulis peraturan corak peristiwa untuk menapis dan menghalakan peristiwa ke sasaran Lambda, SQS atau Step Functions.
EventBridge: Bas Peristiwa dan Peraturan ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah Amazon EventBridge?
Amazon EventBridge (dahulunya CloudWatch Events) ialah bas acara tanpa pelayan yang memudahkan penyambungan aplikasi menggunakan acara daripada perkhidmatan AWS, aplikasi anda sendiri dan penyedia SaaS. Acara ialah objek JSON; EventBridge menghalakannya kepada satu atau lebih sasaran berdasarkan peraturan corak acara. Tidak seperti SQS (titik ke titik), EventBridge ialah lapisan penghalaan terbitan/langganan — satu acara boleh dihantar serentak kepada banyak sasaran.
Bas Acara: Default, Tersuai dan Rakan Kongsi
EventBridge mempunyai tiga jenis bas acara. Bas Default menerima acara daripada perkhidmatan AWS (perubahan keadaan EC2, acara S3, panggilan API CloudTrail dan sebagainya). Bas tersuai ialah bas yang anda cipta untuk acara aplikasi anda sendiri — bas ini mengasingkan acara aplikasi anda daripada acara perkhidmatan AWS. Bas rakan kongsi menerima acara secara terus daripada penyedia SaaS (Zendesk, Datadog, GitHub, Shopify) melalui penyepaduan siap bina, tanpa memerlukan Lambda untuk melakukan pengundian.
# Create a custom event bus for your application
aws events create-event-bus --name my-app-bus
# Put a custom event onto the bus
aws events put-events --entries '[{
"Source": "com.myapp.orders",
"DetailType": "OrderPlaced",
"Detail": "{\"orderId\": \"ORD-123\", \"total\": 99.99}",
"EventBusName": "my-app-bus"
}]'Peraturan Corak Acara
Peraturan corak acara mentakrifkan acara yang hendak dipadankan menggunakan corak JSON yang menapis berdasarkan apa-apa gabungan medan acara (sumber, jenis perincian, account, rantau atau medan di dalam objek detail). EventBridge menilai setiap acara terhadap semua peraturan pada bas. Acara yang sepadan akan dihantar kepada sasaran yang dikonfigurasikan untuk peraturan tersebut. Peraturan menggunakan OR pada peringkat peraturan dan AND dalam objek corak.
# Create a rule that matches EC2 instance state changes to 'stopped'
aws events put-rule \
--name ec2-stopped-alert \
--event-bus-name default \
--event-pattern '{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["stopped"]
}
}' \
--state ENABLEDMengkonfigurasi Sasaran
EventBridge boleh menghalakan acara yang sepadan kepada lebih daripada 20 jenis sasaran, termasuk fungsi Lambda, baris gilir SQS, topik SNS, mesin keadaan Step Functions, strim data Kinesis, titik akhir API Gateway, tugas ECS dan juga bas EventBridge yang lain (untuk penghalaan merentas akaun). Setiap peraturan boleh mempunyai sehingga 5 sasaran. EventBridge memanggil sasaran secara tak segerak dan mencuba semula dengan pengunduran eksponen apabila berlaku kegagalan.
# Add an SNS topic and Lambda function as targets for the rule
aws events put-targets \
--rule ec2-stopped-alert \
--event-bus-name default \
--targets '[{
"Id": "notify-ops",
"Arn": "arn:aws:sns:us-east-1:123456789012:ops-alerts"
}, {
"Id": "auto-remediate",
"Arn": "arn:aws:lambda:us-east-1:123456789012:function:RestartEC2"
}]'Transformasi Input
Secara lalai, EventBridge menghantar keseluruhan JSON acara kepada sasaran. Gunakan Transformasi Input untuk membentuk semula acara sebelum penghantaran — mengekstrak medan tertentu, membina objek JSON baharu atau mencipta rentetan tersuai. Ini berguna apabila fungsi Lambda atau titik akhir API menjangka bentuk muatan tertentu dan bukannya sampul acara EventBridge penuh, sekali gus mengelakkan keperluan menggunakan Lambda perantara hanya untuk membentuk semula data.
# Input transformer: extract orderId and total from detail
# InputPathsMap extracts values by JSON path
{
'InputPathsMap': {
'orderId': '$.detail.orderId',
'total': '$.detail.total'
},
'InputTemplate': '{
"message": "New order <orderId> for $<total>",
"channel": "ops"
}'
}Peraturan Berjadual (Cron/Rate)
Peraturan EventBridge juga boleh dicetuskan mengikut jadual, bukannya dengan memadankan acara. Gunakan ungkapan kadar (contohnya, rate(5 minutes)) untuk pencetus dengan selang tetap, atau ungkapan cron untuk penjadualan berasaskan kalendar. Peraturan berjadual amat sesuai untuk mencetuskan fungsi Lambda bagi kerja pembersihan kelompok, menghantar laporan berkala atau menjalankan tugas DMS setiap malam — menggantikan keperluan terhadap kerja cron berasaskan EC2.
# Create a scheduled rule that fires every day at midnight UTC
aws events put-rule \
--name nightly-cleanup \
--schedule-expression 'cron(0 0 * * ? *)' \
--state ENABLED
aws events put-targets \
--rule nightly-cleanup \
--targets '[{
"Id": "cleanup-lambda",
"Arn": "arn:aws:lambda:us-east-1:123456789012:function:NightlyCleanup"
}]'Arkib dan Main Semula Acara
EventBridge boleh mengarkibkan semua acara (atau subset yang ditapis) daripada bas ke arkib acara dan menyimpannya untuk tempoh yang boleh dikonfigurasikan. Anda kemudiannya boleh memainkan semula acara yang diarkibkan kembali ke bas pada bila-bila masa — berguna untuk memainkan semula acara bagi menguji versi Lambda baharu, memulihkan keadaan selepas pepijat menyebabkan sasaran terlepas acara atau mengisi semula perkhidmatan baharu dengan acara sejarah. Ini ialah jaring keselamatan operasi yang berkuasa dan unik kepada EventBridge berbanding sistem terbitan/langganan yang lain.
# Create an event archive for the custom bus
aws events create-archive \
--archive-name my-app-archive \
--event-source-arn arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus \
--retention-days 30
# Replay archived events from a specific time window
aws events start-replay \
--replay-name replay-missed-orders \
--event-source-arn arn:aws:events:us-east-1:123456789012:archive/my-app-archive \
--event-start-time 2024-01-10T00:00:00Z \
--event-end-time 2024-01-10T06:00:00Z \
--destination '{"Arn": "arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus"}'Penghalaan Merentas Akaun dan Rantau
EventBridge menyokong penghalaan acara merentas akaun dengan mencipta dasar berasaskan sumber pada bas sasaran dalam akaun lain yang membenarkan akaun sumber meletakkan acara. Ini membolehkan akaun pemantauan berpusat menerima acara daripada semua akaun beban kerja, atau seni bina bas perkhidmatan dikongsi yang membolehkan pasukan platform menghalakan acara kepada bas pasukan pengguna. Penghalaan merentas rantau berfungsi dengan cara yang sama menggunakan sasaran bas acara merentas rantau yang dinyatakan secara jelas.
# Allow a source account (111111111111) to send events to this bus
aws events put-permission \
--event-bus-name my-central-bus \
--action events:PutEvents \
--principal 111111111111 \
--statement-id allow-source-accountEventBridge Pipes
EventBridge Pipes mencipta penyepaduan titik ke titik antara sumber (SQS, Kinesis, DynamoDB Streams, Kafka) dan sasaran, dengan penapisan serta pengayaan pilihan di antaranya (melalui Lambda, Step Functions atau API Gateway). Pipes lebih mudah daripada menulis pengguna Lambda yang melakukan pengundian — ia mengendalikan pengundian, pengelompokan, penapisan dan penghalaan secara automatik. Gunakan Pipes apabila anda memerlukan sambungan terus daripada sumber kepada sasaran tanpa bas terbitan/langganan penuh.
# Create an EventBridge Pipe from SQS to Lambda
aws pipes create-pipe \
--name sqs-to-processor \
--source arn:aws:sqs:us-east-1:123456789012:incoming-orders \
--target arn:aws:lambda:us-east-1:123456789012:function:ProcessOrder \
--role-arn arn:aws:iam::123456789012:role/PipeRole \
--source-parameters '{
"SqsQueueParameters": {"BatchSize": 10}
}' \
--filter-criteria '{
"Filters": [{"Pattern": "{\"body\": {\"orderType\": [\"PRIORITY\"]}}"}]
}'EventBridge berbanding SNS berbanding SQS
Ketiga-tiga perkhidmatan ini mempunyai fungsi yang bertindih, tetapi digunakan untuk kes yang berbeza. SNS: penghantaran serentak berasaskan tolakan kepada pelanggan (e-mel, HTTP, SQS, Lambda) — terbitan/langganan mudah tanpa penapisan. SQS: baris gilir mesej tahan lama untuk penyahgandingan titik ke titik dengan semantik pengambilan oleh pengguna. EventBridge: bas penghalaan berasaskan kandungan dengan daftar skema, arkib/main semula, rakan kongsi SaaS dan penghantaran merentas akaun — paling sesuai untuk penghalaan acara kompleks merentas banyak perkhidmatan. Gunakan EventBridge apabila anda memerlukan peraturan penghalaan yang canggih, bukan sekadar penghantaran serentak yang mudah.
Daftar Skema EventBridge
Daftar Skema EventBridge mengesan dan mengkatalogkan struktur acara yang mengalir melalui bas acara anda secara automatik. Ia menyimpan skema dalam format OpenAPI 3.0 supaya pembangun boleh mengetahui acara yang tersedia dan menjana pengikatan kod (Java, Python, TypeScript) yang menyahsiri acara menjadi objek bertip. Ini menghapuskan kod penghuraian JSON manual dan memastikan keselamatan jenis merentas perkhidmatan dipacu acara. Anda juga boleh mendaftarkan skema acara tersuai secara manual untuk acara yang dihasilkan oleh aplikasi anda sendiri.
# Enable schema discovery on a custom event bus
aws schemas create-discoverer \
--source-arn arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus \
--description 'Auto-discover schemas from app bus'
# List discovered schemas
aws schemas list-schemas \
--registry-name discovered-schemasSemakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Ulang Kaji Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa: EventBridge menghalakan acara menggunakan peraturan corak berasaskan kandungan kepada berbilang sasaran secara serentak, pengarkiban dan main semula membolehkan anda mengekalkan serta memproses semula acara sejarah tanpa perubahan kod, dan EventBridge Pipes menyediakan saluran paip terurus daripada sumber penstriman kepada sasaran. Seterusnya, kita akan meneroka Step Functions untuk mengatur aliran kerja tanpa pelayan yang mempunyai berbilang langkah.
Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “EventBridge: Bas Peristiwa dan Peraturan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “EventBridge: Bas Peristiwa dan Peraturan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “EventBridge: Bas Peristiwa dan Peraturan”?
Terbitkan peristiwa ke bas EventBridge tersuai, tulis peraturan corak peristiwa untuk menapis dan menghalakan peristiwa ke sasaran Lambda, SQS atau Step Functions. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “EventBridge: Bas Peristiwa dan Peraturan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- EventBridge: Bas Peristiwa dan Peraturan
- Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan
- Kinesis Data Streams untuk Pemprosesan Peristiwa Masa Nyata
- Corak Koreografi berbanding Orkestrasi