Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penggunaan AWS Serverless Application Model template untuk menyebarkan EventBridge sumber daya Amazon
Anda dapat membuat dan menguji aturan secara manual di EventBridge konsol, yang dapat membantu dalam proses pengembangan saat Anda menyempurnakan pola peristiwa. Namun, setelah Anda siap untuk menerapkan aplikasi Anda, lebih mudah untuk menggunakan kerangka kerja seperti AWS SAM meluncurkan semua sumber daya tanpa server Anda secara konsisten.
Kami akan menggunakan contoh aplikasi ini
Untuk panduan aplikasi contoh ini, lihatTutorial: Buat contoh EventBridge aplikasi Amazon.
Ada dua pendekatan untuk menggunakan EventBridge dan AWS SAM template. Untuk integrasi sederhana di mana satu fungsi Lambda dipanggil oleh satu aturan, pendekatan template Gab ungan direkomendasikan. Jika Anda memiliki logika routing yang kompleks, atau Anda terhubung ke sumber daya di luar AWS SAM template Anda, pendekatan Template Separated adalah pilihan yang lebih baik.
Pendekatan:
Template gabungan
Pendekatan pertama menggunakan Events properti untuk mengkonfigurasi EventBridge aturan. Kode contoh berikut mendefinisikan peristiwa yang memanggil fungsi Lambda Anda.
catatan
Contoh ini secara otomatis membuat aturan pada bus acara default, yang ada di setiap AWS akun. Untuk mengaitkan aturan dengan bus acara khusus, Anda dapat menambah EventBusName kannya ke template.
atmConsumerCase3Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case3Handler Runtime: nodejs12.x Events: Trigger: Type: CloudWatchEvent Properties: Pattern: source: - custom.myATMapp detail-type: - transaction detail: result: - "anything-but": "approved"
Kode YAML ini setara dengan pola peristiwa di EventBridge konsol. Di YAML, Anda hanya perlu menentukan pola peristiwa, dan AWS SAM secara otomatis membuat peran IAM dengan izin yang diperlukan.
Template terpisah
Dalam pendekatan kedua untuk mendefinisikan EventBridge konfigurasi di AWS SAM, sumber daya dipisahkan lebih jelas dalam template.
-
Pertama, Anda mendefinisikan fungsi Lambda:
atmConsumerCase1Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case1Handler Runtime: nodejs12.x -
Selanjutnya, tentukan aturan menggunakan
AWS::Events::Rulesumber daya. Properti menentukan pola peristiwa dan juga dapat menentukan target. Anda dapat secara eksplisit menentukan beberapa target.EventRuleCase1: Type: AWS::Events::Rule Properties: Description: "Approved transactions" EventPattern: source: - "custom.myATMapp" detail-type: - transaction detail: result: - "approved" State: "ENABLED" Targets: - Arn: Fn::GetAtt: - "atmConsumerCase1Fn" - "Arn" Id: "atmConsumerTarget1" -
Terakhir, tent
AWS::Lambda::Permissionukan sumber daya yang memberikan izin EventBridge untuk memanggil target.PermissionForEventsToInvokeLambda: Type: AWS::Lambda::Permission Properties: FunctionName: Ref: "atmConsumerCase1Fn" Action: "lambda:InvokeFunction" Principal: "events.amazonaws.com" SourceArn: Fn::GetAtt: - "EventRuleCase1" - "Arn"