

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Sumber acara untuk Bus Acara Kustom
<a name="eb-custom-bus-event-sources"></a>

Sumber peristiwa menyerap peristiwa dari AWS layanan atau mitra SaaS ke Bus Acara Kustom. Anda membuatnya dengan`CreateEventSource`, menamai bus tujuan dan satu asal, misalnya`aws.s3`, dan EventBridge mengirimkan acara dari asal ke bus. Aplikasi Anda sendiri menerbitkan ke bus secara langsung, jadi Anda memerlukan sumber acara hanya untuk acara yang tidak Anda hasilkan sendiri.

Peristiwa yang dicerna tiba di bus tujuan dalam am EventBridge plop, dengan jenis konten`application/eventbridge+json`. Data acara menyimpan bidang amplop:`source`,`detail-type`,`account`,`time`,`region`,`resources`, dan`detail`. EventBridge juga mengatur bidang metadata `aws:DetailType` sistem `aws:Source` dan dari amplop `source` dan`detail-type`. Lihat [Struktur acara: data, metadata, dan metadata sistem](eb-custom-bus-addressing.md).

## Bagaimana acara dipindahkan
<a name="eb-custom-bus-event-sources-how"></a>

Saat Anda membuat sumber acara, EventBridge membuat aturan terkelola dan target di akun Anda, di Bus Acara Kustom Anda - Klasik, dan mereka membawa acara dari asal ke Bus Acara Kustom Anda. Keduanya muncul di akun Anda dengan dis `ManagedBy` etel ke`events.amazonaws.com`. Anda tidak mengelolanya; menghapus atau mencabut sumber acara menghapusnya. Oleh karena itu, peristiwa masih muncul di metrik Bus Acara Kustom - Klasik.

## AWS sumber acara layanan
<a name="eb-custom-bus-event-sources-aws"></a>

Sumber peristiwa AWS layanan menyerap peristiwa yang dipancarkan satu AWS layanan, seperti `aws.s3` atau`aws.ec2`, untuk akun Anda. Secara default setiap acara dari layanan itu tiba di bus; untuk mempersempitnya, tambahkan a`Pattern`. Contoh berikut membuat sumber peristiwa yang hanya menerima peristiwa Amazon S3 Object Created.

```
aws eventsv2 create-event-source \
    --name s3-object-created \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --configuration '{"AwsServiceEventsConfiguration":{"AwsService":"aws.s3","Pattern":"{\"detail-type\":[\"Object Created\"]}"}}'
```

Pola sumber acara menentukan apa yang melintas ke bus. Filter pelanggan menentukan apa yang diterima pelanggan dari peristiwa yang mengalir melalui bus; lihat[Memfilter acara untuk pelanggan](eb-custom-bus-filtering.md). Tulis pola dalam EventBridge event pattern syntax ([P EventBridge ola acara Amazon](eb-event-patterns.md)), dan EventBridge evaluasi terhadap amplop. Tinggalkan `source` kunci dan tingkat atas `account` dan `region` kunci di luar pola: tambahkan kondisi EventBridge itu sendiri, dari akun dan Wilayah Anda dan layanan yang Anda pilih, dan menolak pola yang memasoknya.

## Sumber peristiwa partner
<a name="eb-custom-bus-event-sources-partner"></a>

Sumber acara mitra mencerna acara yang dikirim mitra SaaS ke akun Anda. Sebelum Anda membuatnya, mitra harus menawarkan sumber acara mitra ke akun Anda (lihat[Menerima acara dari mitra SaaS dengan Amazon EventBridge](eb-saas.md)), dan sumber tersebut harus berada di `PENDING` negara bagian tersebut. Contoh berikut membuat sumber peristiwa untuk itu.

```
aws eventsv2 create-event-source \
    --name example-partner-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --configuration '{"PartnerEventsConfiguration":{"PartnerEventSourceArn":"arn:aws:events:us-east-1::event-source/aws.partner/example.com/12345"}}'
```

Saat Anda membuat sumber acara, buat EventBridge bus acara mitra terkelola (Bus Acara Kustom - Klasik) di akun Anda untuk mengaktifkan sumber mitra. Saat Anda menghapus sumber peristiwa, EventBridge menghapus bus itu dan mengembalikan sumber mitra ke`PENDING`. Untuk mengenkripsi bus tersebut dengan kunci yang dikelola pelanggan, set `PartnerBusKmsKeyIdentifier` el ke kunci di akun dan Wilayah Anda; jika tidak EventBridge , gunakan kunci yang AWS dimiliki.

## Dead-letter antrian
<a name="eb-custom-bus-event-sources-dlq"></a>

Untuk menangkap peristiwa yang gagal mencapai bus, setel `OnFailureConfiguration.Arn` ke antrian Amazon SQS standar di akun dan Wilayah Anda; antrian FIFO ditolak. Pesan tiba di antrian dari prinsi `events.amazonaws.com` pal layanan, bukan dari peran yang Anda berikan, jadi berikan prinsip tersebut `sqs:SendMessage` dalam kebijakan sumber daya antrian.

```
{
    "Effect": "Allow",
    "Principal": { "Service": "events.amazonaws.com" },
    "Action": "sqs:SendMessage",
    "Resource": "arn:aws:sqs:us-east-1:111122223333:my-event-source-dlq",
    "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } }
}
```

Sumber peristiwa mitra mengirim ke antrian di bawah dua ARN sumber: aturan terkelola, untuk kegagalan pengiriman, dan bus peristiwa mitra terkelola, untuk kegagalan enkripsi. Kebijakan yang mengkondisikan `aws:SourceArn` harus memungkinkan keduanya.

## Izin
<a name="eb-custom-bus-event-sources-access"></a>

Untuk membuat sumber acara di bus di akun lain, pemilik bus harus memberi Anda`events:CreateEventSource`, melalui AWS RAM berbagi (`AWSRAMEventBridgeEventBusV2EventSourceAccess`atau`FullAccess`) atau dengan `PutResourcePolicy` pernyataan di bus. K `events:source` unci kondisi membawa nama AWS layanan atau nama sumber acara mitra, sehingga pemilik bus dapat mengizinkan atau menolak asal tertentu. Lihat [Berbagi Bus Acara Kustom dengan akun lain](eb-custom-bus-sharing.md).

Untuk mengenkripsi bus acara mitra terkelola, kebutuhan identitas Anda `kms:DescribeKey` dan `kms:Decrypt` pada kunci yang Anda beri nama`PartnerBusKmsKeyIdentifier`; tanpanya, `CreateEventSource` gagal dengan`AccessDeniedException`.

```
{
    "Effect": "Allow",
    "Action": ["kms:DescribeKey", "kms:Decrypt"],
    "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```

Jika akun lain memiliki bus tujuan dan mengenkripsinya dengan kunci yang dikelola pelanggan, kebijakan kunci tersebut juga harus mengakui akun Anda; jika tidak, membuat, memperbarui, dan menjelaskan sumber peristiwa gagal.

## Berlangganan acara yang dicerna
<a name="eb-custom-bus-event-sources-shape"></a>

Untuk mencocokkan acara AWS layanan atau mitra pada pelanggan, filter pada bidang metadata `aws:Source` sistem. EventBridge menulis bidang ini dan tidak ada panggilan publikasi yang dapat menetapkan nilai yang dimulai dengan`aws.`, jadi kecocokan pada nilainya adalah satu-satunya kecocokan yang membuktikan asal suatu peristiwa. Untuk acara AWS layanan, cocokkan nama layanan; untuk acara mitra, cocokkan nama sumber acara mitra.

```
{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" }

{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[{\"prefix\":\"aws.partner/example.com\"}]}" }
```

Untuk memfilter konten acara, tambahkan `DATA` filter. Amplop membawa konten di bawahnya`detail`.

```
{ "Scope": "DATA", "Pattern": "{\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" }
```

Data peristiwa juga membawa `source` dan`detail-type`, dan penerbit mana pun dapat menulis nilai-nilai tersebut ke dalam payload, sehingga mereka tidak membuktikan asal. Co `aws:Source` cokkan berdasarkan nilai, bukan dengan kehadiran: `PutEvents` panggilan langsung juga ditetapkan`aws:Source`, dari miliknya sendiri`Source`, yang tidak pernah dimulai dengan`aws.`.

## Menghentikan sumber peristiwa secara permanen
<a name="eb-custom-bus-event-sources-revoke"></a>

Pemilik bus dapat secara permanen menghentikan sumber acara agar tidak menelan dengan menelepon `RevokeResource` dengan ARN-nya; lihat[Mencabut pelanggan atau sumber acara](eb-custom-bus-access-revoke.md). Sumber peristiwa yang dicabut tidak dapat dipulihkan. Pencabutan mencakup satu sumber daya yang Anda beri nama, jadi pasangkan dengan kebijakan sumber daya bus yang menghentikan akun yang sama membuat akun lain. Untuk memblokir akun agar tidak membuat sumber acara apa pun di bus:

```
{
    "Effect": "Deny",
    "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
    "Action": "events:CreateEventSource",
    "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
}
```

Untuk memblokir satu asal sambil mengizinkan yang lain, kondisikan penolakan aktif`events:source`.

```
{
    "Effect": "Deny",
    "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
    "Action": "events:CreateEventSource",
    "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
    "Condition": { "StringEquals": { "events:source": "aws.partner/example.com/12345" } }
}
```

## Mengkonfirmasi bahwa peristiwa melintas ke bus
<a name="eb-custom-bus-event-sources-troubleshooting"></a>

Dua set metrik menunjukkan apakah peristiwa yang dicerna mencapai Bus Peristiwa Kustom. Aturan terkelola melaporkan metrik aturan biasa di akun Anda, di bawah`AWS/Events`. Metrik publikasi bus tujuan membawa `EventSource` dimensi, yang memberikan rincian lalu lintas masuk per sumber peristiwa; lihat. [Pengamatan untuk Bus Peristiwa Kustom: metrik, log, dan CloudTrail](eb-custom-bus-observability.md)

Ketika pelanggan membawa acara dari satu Bus Acara Kustom ke yang lain di seluruh akun, acara AWS layanan `aws:Source` dan mitra akan `aws:DetailType` tetap terjaga selama struktur dan konten acara tetap utuh. EventBridge mengotorisasi kedatangan mereka di bus tujuan dengan`events:PutEvents`, sehingga kebijakan sumber daya bus tujuan harus memberikan tindakan itu ke peran penerusan. Acara yang dipublikasikan aplikasi Anda dilakukan`events:PutRawEvents`, jadi aliran yang menggabungkan keduanya membutuhkan kedua tindakan tersebut; lihat[Target bus acara: bus ke bus](eb-custom-bus-target-bus.md).