

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

# Buat contoh notifikasi untuk CodeBuild
<a name="sample-build-notifications"></a>

Amazon CloudWatch Events memiliki dukungan bawaan untuk AWS CodeBuild. CloudWatch Peristiwa adalah aliran peristiwa sistem yang menggambarkan perubahan dalam AWS sumber daya Anda. Dengan CloudWatch Acara, Anda menulis aturan deklaratif untuk mengaitkan peristiwa yang menarik dengan tindakan otomatis yang akan diambil. Sampel ini menggunakan Amazon CloudWatch Events dan Amazon Simple Notification Service (Amazon SNS) untuk mengirim pemberitahuan build kepada pelanggan setiap kali build berhasil, gagal, beralih dari satu fase build ke fase build lainnya, atau kombinasi apa pun dari peristiwa ini.

**penting**  
Menjalankan sampel ini dapat mengakibatkan tagihan ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk CodeBuild dan untuk AWS sumber daya dan tindakan yang terkait dengan Amazon CloudWatch dan Amazon SNS. Untuk informasi selengkapnya, lihat [ CodeBuild harga](https://aws.amazon.com/codebuild/pricing), CloudWatch harga [ Amazon](https://aws.amazon.com/cloudwatch/pricing), dan harga [https://aws.amazon.com/sns/pricing](https://aws.amazon.com/sns/pricing) Amazon SNS.

**Topics**
+ [Jalankan contoh pemberitahuan build](#sample-build-notifications-running)
+ [Buat referensi format input notifikasi](sample-build-notifications-ref.md)

## Jalankan contoh pemberitahuan build
<a name="sample-build-notifications-running"></a>

Gunakan prosedur berikut untuk menjalankan contoh pemberitahuan build.

**Untuk menjalankan sampel ini**

1. Jika Anda sudah menyiapkan topik dan berlangganan di Amazon SNS yang ingin Anda gunakan untuk sampel ini, lanjutkan ke langkah 4. Jika tidak, jika Anda menggunakan pengguna IAM alih-alih akun AWS root atau pengguna administrator untuk bekerja dengan Amazon SNS, tambahkan pernyataan berikut (antara {{\#\#\# BEGIN ADDING STATEMENT HERE \#\#\#}} dan{{\#\#\# END ADDING STATEMENT HERE \#\#\#}}) ke pengguna (atau grup IAM yang dikaitkan dengan pengguna). Menggunakan akun AWS root tidak disarankan. Pernyataan ini memungkinkan melihat, membuat, berlangganan, dan menguji pengiriman notifikasi ke topik di Amazon SNS. Ellipses (`...`) digunakan untuk singkatnya dan untuk membantu Anda menemukan tempat menambahkan pernyataan. Jangan menghapus pernyataan apa pun, dan jangan mengetikkan elips ini ke dalam kebijakan yang ada.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sns:CreateTopic",
                   "sns:GetTopicAttributes",
                   "sns:List*",
                   "sns:Publish",
                   "sns:SetTopicAttributes",
                   "sns:Subscribe"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------
**catatan**  
Entitas IAM yang mengubah kebijakan ini harus memiliki izin di IAM untuk mengubah kebijakan.  
Untuk informasi selengkapnya, lihat Meng [ edit kebijakan ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#edit-managed-policy-console) yang dikelola pelanggan atau bagian “Mengedit atau menghapus kebijakan sebaris untuk grup, pengguna, atau peran” di Bek [ erja dengan kebijakan sebaris (konsol) ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html#AddingPermissions_Console) di Panduan * * Pengguna IAM.

1. Buat atau identifikasi topik di Amazon SNS. AWS CodeBuild menggunakan CloudWatch Events untuk mengirim pemberitahuan build ke topik ini melalui Amazon SNS. 

   Untuk membuat topik:

   1. Buka konsol Amazon SNS di [https://console.aws.amazon.com/sns](https://console.aws.amazon.com/sns).

   1. Pilih **Buat topik**. 

   1. Di ** Buat topik baru**, untuk ** Nama ** Topik, masukkan nama untuk topik (misalnya,**CodeBuildDemoTopic**). (Jika Anda memilih nama yang berbeda, gantilah di seluruh sampel ini.) 

   1. Pilih **Buat topik**.

   1. Pada CodeBuildDemoTopic ** halaman ** Topik detail:, salin ** nilai ** Topik ARN. Anda memerlukan nilai ini untuk langkah berikutnya. 

        
![Nilai Topik ARN.](https://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/topic-arn.png)

      

   Untuk informasi selengkapnya, lihat [ Membuat topik ](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) di Panduan * Pengembang * Amazon SNS.

1. Berlangganan satu atau lebih penerima ke topik untuk menerima pemberitahuan email. 

   Untuk berlangganan penerima ke topik:

   1. Dengan konsol Amazon SNS terbuka dari langkah sebelumnya, di panel navigasi, pilih Lang ** ganan**, lalu pilih ** Buat langganan**.

   1. Di ** Buat langganan**, untuk Top ** ik ARN**, tempel topik ARN yang Anda salin dari langkah sebelumnya.

   1. Untuk **Protokol**, pilih **Email**.

   1. Untuk ** Endpoint**, masukkan alamat email lengkap penerima. 

        
![Konfigurasi langganan.](https://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/create-subscription.png)

      

   1. Pilih **Buat Langganan**.

   1. Amazon SNS mengirimkan email konfirmasi langganan ke penerima. Untuk mulai menerima pemberitahuan email, penerima harus memilih ** tautan Kon ** firmasi langganan di email konfirmasi langganan. Setelah penerima mengklik tautan, jika berhasil berlangganan, Amazon SNS menampilkan pesan konfirmasi di browser web penerima.

   Untuk informasi selengkapnya, lihat Ber [ langganan topik ](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html) di Panduan * Pengembang * Amazon SNS.

1. Jika Anda menggunakan pengguna alih-alih akun AWS root atau pengguna administrator untuk bekerja dengan A CloudWatch cara, tambahkan pernyataan berikut (antara {{\#\#\# BEGIN ADDING STATEMENT HERE \#\#\#}} dan{{\#\#\# END ADDING STATEMENT HERE \#\#\#}}) ke pengguna (atau grup IAM yang dikaitkan dengan pengguna). Menggunakan akun AWS root tidak disarankan. Pernyataan ini digunakan untuk memungkinkan pengguna bekerja dengan A CloudWatch cara. Ellipses (`...`) digunakan untuk singkatnya dan untuk membantu Anda menemukan tempat menambahkan pernyataan. Jangan menghapus pernyataan apa pun, dan jangan mengetikkan elips ini ke dalam kebijakan yang ada.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "events:*",
                   "iam:PassRole"
               ],
               "Resource": "{{arn:aws:iam::*:role/Service*}}"
           }
       ]
   }
   ```

------
**catatan**  
Entitas IAM yang mengubah kebijakan ini harus memiliki izin di IAM untuk mengubah kebijakan.  
Untuk informasi selengkapnya, lihat Meng [ edit kebijakan ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#edit-managed-policy-console) yang dikelola pelanggan atau bagian “Mengedit atau menghapus kebijakan sebaris untuk grup, pengguna, atau peran” di Bek [ erja dengan kebijakan sebaris (konsol) ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html#AddingPermissions_Console) di Panduan * * Pengguna IAM.

1. Buat aturan di A CloudWatch cara. Untuk melakukan ini, buka CloudWatch konsol, di [ https://console.aws.amazon.com/cloudwatch](https://console.aws.amazon.com/cloudwatch).

1. Di panel navigasi, di bawah ** A ** cara, pilih ** A ** turan, lalu pilih ** Buat aturan**. 

1. Pada ** Langkah 1: Buat halaman aturan**, Pola Per ** istiwa ** dan Mem ** bangun pola acara untuk mencocokkan peristiwa ** berdasarkan layanan seharusnya sudah dipilih. 

1. Untuk Nama ** Layanan**, pilih ** CodeBuild**. Untuk ** Jenis A ** cara, ** Semua A ** cara seharusnya sudah dipilih.

1. Kode berikut harus ditampilkan di Pratinjau P ** ola Peristiwa**:

   ```
   {
     "source": [ 
       "aws.codebuild"
     ]
   }
   ```

1. Pilih ** Edit ** dan ganti kode di Prat ** injau Pola ** Peristiwa dengan salah satu dari dua pola aturan berikut.

   Pola aturan pertama ini memicu peristiwa ketika build dimulai atau selesai untuk proyek build yang ditentukan di AWS CodeBuild.

   ```
   {
     "source": [ 
       "aws.codebuild"
     ], 
     "detail-type": [
       "CodeBuild Build State Change"
     ],
     "detail": {
       "build-status": [
         "IN_PROGRESS",
         "SUCCEEDED", 
         "FAILED",
         "STOPPED" 
       ],
       "project-name": [
         "{{my-demo-project-1}}",
         "{{my-demo-project-2}}"
       ]
     }  
   }
   ```

   Dalam aturan sebelumnya, buat perubahan kode berikut sesuai kebutuhan.
   + Untuk memicu peristiwa ketika build dimulai atau selesai, tinggalkan semua nilai seperti yang ditunjukkan dalam `build-status` array, atau hapus `build-status` array sama sekali. 
   + Untuk memicu peristiwa hanya ketika build selesai, hapus `IN_PROGRESS` dari `build-status` array. 
   + Untuk memicu peristiwa hanya ketika build dimulai, hapus semua nilai kecuali `IN_PROGRESS` dari `build-status` array.
   + Untuk memicu peristiwa untuk semua proyek build, hapus `project-name` array sama sekali.
   + Untuk memicu peristiwa hanya untuk proyek build individual, tentukan nama setiap proyek build dalam `project-name` array. 

   Pola aturan kedua ini memicu peristiwa setiap kali build berpindah dari satu fase build ke fase build lainnya untuk proyek build yang ditentukan di AWS CodeBuild.

   ```
   {
     "source": [ 
       "aws.codebuild"
     ], 
     "detail-type": [
       "CodeBuild Build Phase Change" 
     ],
     "detail": {
       "completed-phase": [
         "SUBMITTED",
         "PROVISIONING",
         "DOWNLOAD_SOURCE",
         "INSTALL",
         "PRE_BUILD",
         "BUILD",
         "POST_BUILD",
         "UPLOAD_ARTIFACTS",
         "FINALIZING"
       ],
       "completed-phase-status": [
         "TIMED_OUT",
         "STOPPED",
         "FAILED", 
         "SUCCEEDED",
         "FAULT",
         "CLIENT_ERROR"
       ],
       "project-name": [
         "{{my-demo-project-1}}",
         "{{my-demo-project-2}}"
       ]
     }  
   }
   ```

   Dalam aturan sebelumnya, buat perubahan kode berikut sesuai kebutuhan.
   + Untuk memicu peristiwa untuk setiap perubahan fase build (yang mungkin mengirim hingga sembilan pemberitahuan untuk setiap build), tinggalkan semua nilai seperti yang ditunjukkan dalam `completed-phase` array, atau hapus `completed-phase` array sama sekali.
   + Untuk memicu peristiwa hanya untuk perubahan fase build individual, hapus nama setiap fase build dalam `completed-phase` array yang tidak ingin Anda picu peristiwa.
   + Untuk memicu peristiwa untuk setiap perubahan status fase build, tinggalkan semua nilai seperti yang ditunjukkan dalam `completed-phase-status` array, atau hapus `completed-phase-status` array sama sekali.
   + Untuk memicu peristiwa hanya untuk perubahan status fase build individual, hapus nama setiap status fase build dalam `completed-phase-status` array yang tidak ingin Anda picu peristiwa.
   + Untuk memicu peristiwa untuk semua proyek build, hapus `project-name` array.
   + Untuk memicu peristiwa untuk proyek build individual, tentukan nama setiap proyek build dalam `project-name` array. 

   Untuk informasi selengkapnya tentang pola peristiwa, lihat [ Pola ](https://docs.aws.amazon.com/eventbridge/latest/userguide/filtering-examples-structure.html) Peristiwa di Panduan EventBridge Pengguna Amazon.

   Untuk informasi selengkapnya tentang pemfilteran dengan pola peristiwa, lihat [ Content-based Memfilter dengan P ](https://docs.aws.amazon.com/eventbridge/latest/userguide/content-filtering-with-event-patterns.html) ola Peristiwa di Panduan EventBridge Pengguna Amazon.
**catatan**  
Jika Anda ingin memicu peristiwa untuk perubahan status build dan perubahan fase build, Anda harus membuat dua aturan terpisah: satu untuk perubahan status build dan satu lagi untuk perubahan fase build. Jika Anda mencoba menggabungkan kedua aturan menjadi satu aturan, aturan gabungan mungkin menghasilkan hasil yang tidak terduga atau berhenti bekerja sama sekali.

   Setelah selesai mengganti kode, pilih S ** impan**.

1. Untuk **Targets** (Target), pilih **Add target** (Tambahkan target). 

1. Dalam daftar target, pilih topik ** ** SNS. 

1. Untuk ** Top ** ik, pilih topik yang Anda identifikasi atau buat sebelumnya. 

1. Perluas ** Konfigurasi input**, lalu pilih ** Input Transformer**. 

1. Di ** kotak Path ** Input, masukkan salah satu jalur input berikut.

   Untuk aturan dengan `detail-type` nilai`CodeBuild Build State Change`, masukkan yang berikut ini.

   ```
   {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}
   ```

   Untuk aturan dengan `detail-type` nilai`CodeBuild Build Phase Change`, masukkan yang berikut ini.

   ```
   {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}
   ```

   Untuk mendapatkan jenis informasi lainnya, lihat[Buat referensi format input notifikasi](sample-build-notifications-ref.md).

1. Di ** kotak Template ** Input, masukkan salah satu templat input berikut.

   Untuk aturan dengan `detail-type` nilai`CodeBuild Build State Change`, masukkan yang berikut ini.

   ```
   "Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."
   ```

   Untuk aturan dengan `detail-type` nilai`CodeBuild Build Phase Change`, masukkan yang berikut ini.

   ```
   "Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."
   ```

1. Pilih **Konfigurasikan detail**.

1. Pada ** halaman ** Langkah 2: Konfigurasikan detail aturan, masukkan nama dan deskripsi opsional. Untuk ** Status**, biarkan Di ** aktifkan ** dipilih.

1. Pilih **Buat aturan**. 

1. Buat proyek build, jalankan build, dan lihat informasi build.

1. Konfirmas CodeBuild ikan bahwa sekarang berhasil mengirim pemberitahuan build. Misalnya, periksa untuk melihat apakah email pemberitahuan build sekarang ada di kotak masuk Anda.

Untuk mengubah perilaku aturan, di CloudWatch konsol, pilih aturan yang ingin Anda ubah, pilih Tind ** akan**, lalu pilih ** Edit**. Buat perubahan pada aturan, pilih ** Konfigurasikan detail**, lalu pilih Per ** barui aturan**.

Untuk berhenti menggunakan aturan untuk mengirim pemberitahuan build, di CloudWatch konsol, pilih aturan yang ingin Anda berhenti gunakan, pilih Tindakan ****, lalu pilih Non ** aktifkan**.

Untuk menghapus aturan sama sekali, di CloudWatch konsol, pilih aturan yang ingin Anda hapus, pilih Tind ** akan**, lalu pilih H ** apus**.