Contoh: Buat AWS CodeCommit pemicu untuk topik Amazon SNS - AWS CodeCommit

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

Contoh: Buat AWS CodeCommit pemicu untuk topik Amazon SNS

Anda dapat membuat pemicu untuk CodeCommit repositori sehingga peristiwa di repositori tersebut memicu notifikasi dari topik Amazon Simple Notification Service (Amazon SNS). Anda mungkin ingin membuat pemicu untuk topik Amazon SNS untuk memungkinkan pengguna untuk berlangganan notifikasi tentang peristiwa repositori, seperti penghapusan cabang. Anda juga dapat memanfaatkan integrasi topik Amazon SNS dengan layanan lain, seperti Amazon Simple Queue Service (Amazon Simple Queue Service) dan. AWS Lambda

catatan
  • Anda harus mengarahkan pemicu ke topik Amazon SNS yang ada yang tindakan yang diambil dalam menanggapi peristiwa repositori. Untuk informasi selengkapnya tentang membuat dan berlangganan topik Amazon SNS, lihat Memulai Amazon Simple Notification Service.

  • Topik Amazon SNS FIFO (masuk pertama, keluar pertama) tidak didukung untuk pemicu. CodeCommit

Buat pemicu ke topik Amazon SNS untuk CodeCommit repositori (konsol)

  1. Buka CodeCommit konsol di https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Di Repositori, pilih repositori tempat Anda ingin membuat pemicu untuk peristiwa repositori.

  3. Di panel navigasi untuk repositori, pilih Pengaturan, lalu pilih Pemicu.

  4. Pilih Buat pemicu, dan kemudian lakukan hal berikut:.

    • Di nama Pemicu, masukkan nama untuk pemicu (misalnya, MyFirstTrigger).

    • Di Peristiwa, pilih peristiwa repositori yang memicu topik Amazon SNS untuk mengirim notifikasi.

      Jika Anda memilih Semua peristiwa repositori, Anda tidak dapat memilih peristiwa lainnya. Untuk memilih sebuah subset peristiwa, hapus Semua peristiwa repositori, lalu pilih satu atau lebih peristiwa dari daftar. Misalnya, jika Anda ingin pemicu berjalan hanya ketika pengguna membuat cabang atau tag di CodeCommit repositori, hapus Semua peristiwa repositori, lalu pilih Buat cabang atau tag.

    • Jika Anda ingin pemicu untuk diterapkan ke semua cabang repositori, di Cabang, biarkan pilihan kosong, karena opsi default ini berlaku pemicu untuk semua cabang secara otomatis. Jika Anda ingin pemicu ini berlaku untuk cabang tertentu saja, pilih hingga 10 nama cabang dari daftar cabang repositori.

    • Di Pilih layanan yang akan digunakan, pilih Amazon SNS.

    • Di Amazon SNS, pilih nama topik dari daftar atau masukkan ARN untuk topik tersebut.

      catatan

      Topik Amazon SNS FIFO (masuk pertama, keluar pertama) tidak didukung untuk pemicu. CodeCommit Anda harus memilih topik Amazon SNS yang jenisnya telah ditetapkan untuk Standar. Jika Anda ingin menggunakan topik Amazon SNS FIFO, Anda harus mengonfigurasi aturan Amazon Eventbridge untuk CodeCommit acara yang memiliki topik SNS FIFO yang dikonfigurasi sebagai targetnya.

    • Di Data khusus, berikan informasi opsional yang ingin Anda sertakan dalam notifikasi yang dikirim oleh topik Amazon SNS (misalnya, developer nama saluran IRC digunakan saat membahas pengembangan di repositori ini). Bidang ini adalah string. Ini tidak dapat digunakan untuk melewati parameter dinamis.

  5. (Opsional) Pilih Pemicu uji. Langkah ini membantu Anda mengonfirmasi telah mengonfigurasi akses dengan benar antara CodeCommit dan topik Amazon SNS. Menggunakan topik Amazon SNS untuk mengirim notifikasi uji menggunakan data dari repositori Anda, jika tersedia. Jika tidak ada data nyata yang tersedia, notifikasi uji berisi data sampel.

  6. Pilih Buat pemicu untuk menyelesaikan pembuatan pemicu.

Buat pemicu ke topik Amazon SNS untuk CodeCommit repositori ()AWS CLI

Anda juga dapat menggunakan baris perintah untuk membuat pemicu untuk topik Amazon SNS dalam menanggapi peristiwa CodeCommit repositori, seperti ketika seseorang mendorong komit ke repositori Anda.

Buatlah sebuah pemicu untuk topik Amazon SNS
  1. Buka editor teks biasa dan buatlah file JSON yang menentukan:

    • Nama topik Amazon SNS.

      catatan

      Topik Amazon SNS FIFO (masuk pertama, keluar pertama) tidak didukung untuk pemicu. CodeCommit Anda harus memilih topik Amazon SNS yang jenisnya telah ditetapkan untuk Standar. Jika Anda ingin menggunakan topik Amazon SNS FIFO, Anda harus mengonfigurasi aturan Amazon Eventbridge untuk CodeCommit acara yang memiliki topik SNS FIFO yang dikonfigurasi sebagai targetnya.

    • Repositori dan cabang yang ingin Anda pantau dengan pemicu ini. (Jika Anda tidak menentukan cabang apa pun, pemicu berlaku untuk semua cabang di repositori.)

    • Peristiwa yang mengaktifkan pemicu ini.

    Simpan file tersebut.

    Misalnya, untuk membuat pemicu repositori bernama MyDemoRepoyang menerbitkan semua peristiwa repositori ke topik Amazon SNS bernama MySnstopic untuk dua cabang, main dan preprod:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] } ] }

    Harus ada blok pemicu di JSON untuk setiap pemicu untuk sebuah repositori. Untuk membuat lebih dari satu pemicu untuk repositori, termasuk lebih dari satu blok pemicu di JSON. Ingat bahwa semua pemicu yang dibuat dalam file ini adalah untuk repositori yang telah ditentukan. Anda tidak dapat membuat pemicu untuk beberapa repositori dalam file JSON tunggal. Misalnya, jika Anda ingin membuat dua pemicu untuk repositori, Anda dapat membuat file JSON dengan dua blok pemicu. Pada contoh berikut, tidak ada cabang yang ditentukan untuk pemicu kedua, sehingga pemicu berlaku untuk semua cabang:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] }, { "name": "MySecondTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic2", "customData": "", "branches": [], "events": [ "updateReference", "deleteReference" ] } ] }

    Anda dapat membuat pemicu untuk peristiwa yang Anda tentukan, seperti ketika commmit didorong ke repositori. Jenis-jenis peristiwa meliputi:

    • all untuk semua peristiwa di repositori dan cabang yang telah ditentukan.

    • updateReference untuk ketika commit didorong ke repositori dan cabang yang ditentukan.

    • createReference untuk ketika cabang baru atau tag dibuat dalam repositori yang ditentukan.

    • deleteReference untuk ketika cabang atau tag dihapus dalam repositori yang ditentukan.

    catatan

    Anda dapat menggunakan lebih dari satu jenis peristiwa di sebuah pemicu. Namun, jika Anda menentukan all, Anda tidak dapat menentukan peristiwa lainnya.

    Untuk menampilkan daftar lengkap jenis peristiwa yang valid, pada terminal atau prompt perintah, masukkan aws codecommit put-repository-triggers help.

    Selain itu, Anda dapat menyertakan sebuah string dalam customData (misalnya, developer nama saluran IRC digunakan saat membahas pengembangan di repositori ini). Bidang ini adalah string. Ini tidak dapat digunakan untuk melewati parameter dinamis. String ini ditambahkan sebagai atribut ke CodeCommit JSON yang dikembalikan sebagai respons terhadap pemicu.

  2. (Opsional) Pada terminal atau prompt perintah, jalankan perintah test-repository-triggers. Uji ini menggunakan data sampel dari repositori (atau menghasilkan data sampel jika tidak ada data yang tersedia) untuk mengirim notifikasi kepada pelanggan topik Amazon SNS. Misalnya, berikut ini digunakan untuk menguji bahwa JSON dalam file pemicu bernama trigger.json valid dan yang CodeCommit dapat mempublikasikan ke topik Amazon SNS:

    aws codecommit test-repository-triggers --cli-input-json file://trigger.json

    Jika berhasil, perintah ini menampilkan informasi yang serupa dengan yang berikut:

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. Pada terminal atau command prompt, jalankan put-repository-triggers perintah untuk membuat pemicu di CodeCommit. Misalnya, untuk menggunakan file JSON yang bernama trigger.json untuk membuat pemicu:

    aws codecommit put-repository-triggers --cli-input-json file://trigger.json

    Perintah ini mengembalikan ID konfigurasi, yang serupa dengan yang berikut ini:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. Untuk menampilkan konfigurasi pemicu, jalankan perintah get-repository-triggers, dengan menentukan nama repositori:

    aws codecommit get-repository-triggers --repository-name MyDemoRepo

    Perintah ini mengembalikan struktur semua pemicu dikonfigurasi untuk repositori, yang serupa dengan berikut ini:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE", "triggers": [ { "events": [ "all" ], "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "branches": [ "main", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. Untuk menguji fungsi dari pemicu itu sendiri, buat dan doronglah commit ke repositori di mana Anda mengkonfigurasi pemicu. Anda harus melihat respons dari topik Amazon SNS. Misalnya, jika Anda mengkonfigurasi topik Amazon SNS untuk mengirim email, Anda akan melihat email dari Amazon SNS di akun email yang berlangganan topik tersebut.

    Berikut ini adalah contoh output dari email yang dikirim dari Amazon SNS sebagai tanggapan terhadap push ke repositori: CodeCommit

    { "Records":[ { "awsRegion":"us-east-2", "codecommit":{ "references" : [ { "commit":"317f8570EXAMPLE", "created":true, "ref":"refs/heads/NewBranch" }, { "commit":"4c925148EXAMPLE", "ref":"refs/heads/preprod", } ] }, "eventId":"11111-EXAMPLE-ID", "eventName":"ReferenceChange", "eventPartNumber":1, "eventSource":"aws:codecommit", "eventSourceARN":"arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "eventTime":"2016-02-09T00:08:11.743+0000", "eventTotalParts":1, "eventTriggerConfigId":"0123456-I-AM-AN-EXAMPLE", "eventTriggerName":"MyFirstTrigger", "eventVersion":"1.0", "customData":"Project ID 12345", "userIdentityARN":"arn:aws:iam::111122223333:user/JaneDoe-CodeCommit", } ] }