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

AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”

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

Contoh: Membuat AWS CodeCommit pemicu untuk SNS topik Amazon

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

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

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

Membuat pemicu ke SNS topik Amazon 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 Acara, pilih peristiwa repositori yang memicu SNS topik Amazon 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 CodeCommit pemicu. Anda harus memilih SNS topik Amazon yang jenisnya disetel ke Standar.

    • Di Data kustom, berikan informasi opsional apa pun yang ingin Anda sertakan dalam notifikasi yang dikirim oleh SNS topik Amazon (misalnya, nama IRC saluran yang digunakan pengembang saat mendiskusikan 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 SNS topik Amazon. Ini menggunakan SNS topik Amazon untuk mengirim pemberitahuan pengujian 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.

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

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

Untuk membuat pemicu untuk SNS topik Amazon
  1. Buka editor teks biasa dan buat JSON file yang menentukan:

    • Nama SNS topik Amazon.

      catatan

      Topik Amazon SNS FIFO (masuk pertama, keluar pertama) tidak didukung untuk CodeCommit pemicu. Anda harus memilih SNS topik Amazon yang jenisnya disetel ke Standar.

    • 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 untuk repositori bernama MyDemoRepo yang menerbitkan semua acara repositori ke topik Amazon bernama SNS MySNSTopic untuk dua cabang, main and 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 repositori. Untuk membuat lebih dari satu pemicu untuk repositori, sertakan 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 satu file. JSON Misalnya, jika Anda ingin membuat dua pemicu untuk repositori, Anda dapat membuat JSON file 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 string customData (misalnya, nama IRC saluran yang digunakan pengembang saat mendiskusikan pengembangan di repositori ini). Bidang ini adalah string. Ini tidak dapat digunakan untuk melewati parameter dinamis. String ini ditambahkan sebagai atribut ke yang CodeCommit JSON dikembalikan sebagai respons terhadap pemicu.

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

    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 JSON file 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 akan melihat tanggapan dari SNS topik Amazon. Misalnya, jika Anda mengonfigurasi SNS topik Amazon 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 sebagai SNS tanggapan terhadap push ke CodeCommit repositori:

    { "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", } ] }