View a markdown version of this page

Buat contoh notifikasi untuk CodeBuild - AWS CodeBuild

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

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, CloudWatch harga Amazon, dan harga https://aws.amazon.com/sns/pricing Amazon SNS.

Jalankan contoh pemberitahuan build

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 yang dikelola pelanggan atau bagian “Mengedit atau menghapus kebijakan sebaris untuk grup, pengguna, atau peran” di Bek erja dengan kebijakan sebaris (konsol) di Panduan Pengguna IAM.

  2. 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.

    2. Pilih Buat topik.

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

    4. Pilih Buat topik.

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

      Nilai Topik ARN.

    Untuk informasi selengkapnya, lihat Membuat topik di Panduan Pengembang Amazon SNS.

  3. 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.

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

    3. Untuk Protokol, pilih Email.

    4. Untuk Endpoint, masukkan alamat email lengkap penerima.

      Konfigurasi langganan.

    5. Pilih Buat Langganan.

    6. 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 di Panduan Pengembang Amazon SNS.

  4. 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 yang dikelola pelanggan atau bagian “Mengedit atau menghapus kebijakan sebaris untuk grup, pengguna, atau peran” di Bek erja dengan kebijakan sebaris (konsol) di Panduan Pengguna IAM.

  5. Buat aturan di A CloudWatch cara. Untuk melakukan ini, buka CloudWatch konsol, di https://console.aws.amazon.com/cloudwatch.

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

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

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

  9. Kode berikut harus ditampilkan di Pratinjau P ola Peristiwa:

    { "source": [ "aws.codebuild" ] }
  10. 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 Peristiwa di Panduan EventBridge Pengguna Amazon.

    Untuk informasi selengkapnya tentang pemfilteran dengan pola peristiwa, lihat Content-based Memfilter dengan P 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.

  11. Untuk Targets (Target), pilih Add target (Tambahkan target).

  12. Dalam daftar target, pilih topik SNS.

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

  14. Perluas Konfigurasi input, lalu pilih Input Transformer.

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

    Untuk aturan dengan detail-type nilaiCodeBuild 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 nilaiCodeBuild 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, lihatBuat referensi format input notifikasi.

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

    Untuk aturan dengan detail-type nilaiCodeBuild 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 nilaiCodeBuild 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>'."
  17. Pilih Konfigurasikan detail.

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

  19. Pilih Buat aturan.

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

  21. 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.