Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat sumber daya Bus Acara Kustom dengan CloudFormation
Anda dapat membuat bus, pelanggannya, sumber acaranya, dan kebijakan sumber dayanya dari CloudFormation
template. Jenis sumber daya ada di AWS::EventsV2 namespace. AWS::EventsJenis milik Bus Acara Kustom - Klasik dan tidak dapat mengonfigurasi Bus Acara Kustom.
Jenis sumber daya
-
AWS::EventsV2::EventBusadalah satu bus, termasuk periode retensi dan kunci enkripsinya. Itu membutuhkanName. -
AWS::EventsV2::Subscriberadalah satu pelanggan di bus: filternya, transformasinya, kebijakan coba ulang, dan target tunggalnya. Itu membutuhkanName,EventBusArn, danInvokeConfiguration, yang dengan sendirinya membutuhkanTargetArndanRoleArn. -
AWS::EventsV2::EventSourceadalah salah satu umpan terkelola dari acara AWS layanan atau acara mitra ke dalam bus. Itu membutuhkanName,EventBusArn, danConfiguration. Lihat Sumber acara untuk Bus Acara Kustom. -
AWS::EventsV2::ResourcePolicyadalah kebijakan sumber daya bus yang sudah ada. Itu membutuhkanEventBusArndanPolicyDocument. Lihat Kontrol akses untuk Bus Acara Kustom.
Pelanggan RoleArn harus menyebutkan peran dalam akun yang sama dengan pelanggan. Jadi bus yang dibagikan di seluruh akun lebih dari satu tumpukan: bus di akun pemilik, dan target, peran pengiriman, dan pelanggan di setiap akun yang dikonsumsi.
Contoh: bus, antrian, dan pelanggan
Template berikut membuat bus yang menyimpan peristiwa selama tujuh hari, antrian Amazon SQS, antrian surat mati, peran pengiriman, dan pelanggan yang mengirimkan pesanan lebih dari 500 ke antrian. CloudFormation menciptakan peran dan antrian sebelum pelanggan, karena pelanggan merujuk kepada mereka. Fn::GetAtt Periode retensi menentukan seberapa jauh pelanggan dapat mulai membaca; lihatMemutar ulang peristiwa yang disimpan ke pelanggan.
AWSTemplateFormatVersion: '2010-09-09' Resources: OrdersBus: Type: AWS::EventsV2::EventBus Properties: Name: orders Description: Order events for the fulfillment platform StorageConfiguration: RetentionPeriodInDays: 7 OrdersQueue: Type: AWS::SQS::Queue Properties: QueueName: large-orders OrdersDeadLetterQueue: Type: AWS::SQS::Queue Properties: QueueName: large-orders-dlq DeliveryRole: Type: AWS::IAM::Role Properties: RoleName: EventBusDeliveryRole AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: events.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: DeliverToQueues PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: sqs:SendMessage Resource: - !GetAtt OrdersQueue.Arn - !GetAtt OrdersDeadLetterQueue.Arn LargeOrders: Type: AWS::EventsV2::Subscriber Properties: Name: large-orders EventBusArn: !Ref OrdersBus FilterConfiguration: Filters: - Scope: DATA Pattern: '{"detail":{"total":[{"numeric":[">",500]}]}}' InvokeConfiguration: TargetArn: !GetAtt OrdersQueue.Arn RoleArn: !GetAtt DeliveryRole.Arn RetryPolicy: MaxRetryAttempts: 10 MaxEventAgeInSeconds: 3600 OnFailureConfiguration: Arn: !GetAtt OrdersDeadLetterQueue.Arn Outputs: OrdersBusArn: Value: !Ref OrdersBus Export: Name: orders-bus-arn
Peran pengiriman mempercayai prinsipal events.amazonaws.com layanan dan memberikan sqs:SendMessage pada kedua antrian. Tanpa hibah pada antrian surat mati, pengiriman yang gagal tidak dapat dicatat dan tidak ada yang dapat diamati. Identitas yang menerapkan tumpukan juga perlu iam:PassRole pada peran pengiriman.
Nilai yang dikembalikan
Refmengembalikan pengidentifikasi utama sumber daya, sebuah ARN. Fn::GetAttmengembalikan properti read-only. Tabel berikut mencantumkan nilai untuk setiap jenis sumber daya.
| Tipe sumber daya | Refpengembalian |
atribut Fn::GetAtt |
|---|---|---|
AWS::EventsV2::EventBus |
EventBusArn |
EventBusArn, State, CreationTime,
LastModifiedTime |
AWS::EventsV2::Subscriber |
SubscriberArn |
SubscriberArn, BusName, CreationTime,
LastModifiedTime |
AWS::EventsV2::EventSource |
EventSourceArn |
EventSourceArn, State, Revoked,
CreationTime, LastModifiedTime |
AWS::EventsV2::ResourcePolicy |
EventBusArn |
RevisionId |
Subscriber's State adalah properti yang Anda tetapkan, bukan atribut yang Anda baca. Setel ke STOPPED untuk menjeda pengiriman dan kembali RUNNING ke melanjutkan. Bus State bersifat read-only, dan nilainya yang ditetapkan adalah. ACTIVE
Properti yang menggantikan sumber daya
Enam properti pelanggan hanya dibuat, jadi mengubah salah satu dari mereka dalam template menggantikan pelanggan:Name,,,EventBusArn, InvokeConfiguration.TargetArn TypeStartingPosition, dan. PointInTimeConfiguration Setiap properti pelanggan lainnya, termasuk filter, transformasi, kebijakan coba ulang, dan antrian huruf mati, diperbarui di tempat.
penting
Pengganti pelanggan menghapus pelanggan lama sebelum membuat yang baru. Tidak ada pelanggan di antara dua langkah. Pelanggan baru kemudian memulai dari dirinya sendiriStartingPosition, dan LATEST mulai dari acara terbaru, sehingga tidak pernah mengirimkan acara yang diterbitkan selama jendela itu. Oleh karena itu, mengubah ARN target, jenis pemesanan, atau posisi awal akan menurunkan peristiwa kecuali jika Anda merencanakan celah tersebut.
Untuk menghindari celah, gunakan dua kali. Pertama tambahkan pelanggan pengganti di bawah id logis baru dan tunggu State sampai mencapaiRUNNING. Kemudian hapus pelanggan lama dalam penerapan kedua. Kedua pelanggan mengirimkan selama tumpang tindih, sehingga target menerima setiap acara pencocokan dua kali; gunakan pendekatan ini hanya jika duplikat dapat diterima.
Jika Anda tidak dapat menerapkan dua kali, setel pelanggan baru StartingPosition ke POINT_IN_TIME dan PointInTimeConfiguration berikan a PointType TIMESTAMP dengan aStartingPoint, dalam hitungan detik sejak zaman Unix, dari sebelum penerapan. Pelanggan kemudian membaca peristiwa yang terlewatkan, asalkan mereka masih dalam periode retensi bus.
Pada bus, hanya Name dibuat saja, sehingga periode retensi, deskripsi, kunci enkripsi, dan tag semuanya diperbarui di tempatnya. Pada sumber peristiwa, Name dan hanya EventBusArn dibuat, dan pada kebijakan sumber daya, EventBusArn adalah.
Mengacu pada bus dari tumpukan lain
Pelanggan membutuhkan ARN bus lengkap, yang mencakup pengenal yang dihasilkan layanan setelah nama bus. Simpan dan berikan ARN, bukan namanya. Lihat Nama, titik akhir, dan izin IAM untuk Bus Peristiwa Kustom.
Dalam satu akun dan Wilayah, ekspor ARN dari tumpukan yang memiliki bus, seperti contoh, dan impor denganEventBusArn: !ImportValue orders-bus-arn. CloudFormation tidak mengizinkan Anda mengubah atau menghapus nilai yang diekspor sementara tumpukan lain mengimpornya. Mengganti nama bus menggantikannya dan mengubah ARN-nya, sehingga penggantian nama gagal saat impor ada. Hapus pelanggan yang mengimpor terlebih dahulu, atau ekspor dengan nama baru.
Ekspor tidak dapat diimpor dari akun lain atau Wilayah lain. Masukkan bus ARN ke tumpukan konsumsi sebagai parameter template sebagai gantinya. Pemilik bus juga harus memberikan izin akun lain di bus, yang Anda lakukan dengan kebijakan sumber daya atau dengan AWS Resource Access Manager (AWS RAM). Lihat Kontrol akses untuk Bus Acara Kustom.