Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan repositori sumber Git pihak ketiga di AWS CodePipeline
Kirankumar Chandrashekar, Amazon Web Services
Ringkasan
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pola ini menjelaskan cara menggunakan AWS CodePipeline dengan repositori sumber Git pihak ketiga.
AWS CodePipeline adalah layanan pengiriman berkelanjutan yang mengotomatiskan tugas untuk membangun, menguji, dan menerapkan perangkat lunak Anda. Layanan saat ini mendukung repositori Git yang dikelola oleh CodeCommit, GitHub AWS
Webhook adalah notifikasi HTTP yang mendeteksi peristiwa di alat lain, seperti GitHub repositori, dan menghubungkan peristiwa eksternal tersebut ke pipeline. Saat Anda membuat webhook di CodePipeline, layanan mengembalikan URL yang dapat Anda gunakan di webhook repositori Git Anda. Jika Anda mendorong kode ke cabang tertentu dari repositori Git, webhook Git memulai CodePipeline webhook melalui URL ini, dan menetapkan tahap sumber pipeline ke In Progress. Ketika pipeline dalam keadaan ini, seorang pekerja pekerjaan melakukan polling CodePipeline untuk pekerjaan khusus, menjalankan pekerjaan, dan mengirimkan status keberhasilan atau kegagalan ke CodePipeline. Dalam hal ini, karena pipeline berada dalam tahap sumber, job worker mendapatkan konten repositori Git, membuat zip konten, dan mengunggahnya ke bucket Amazon Simple Storage Service (Amazon S3) tempat artefak untuk pipeline disimpan, menggunakan kunci objek yang disediakan oleh job yang disurvei. Anda juga dapat mengaitkan transisi untuk tindakan kustom dengan peristiwa di Amazon CloudWatch, dan memulai pekerja pekerjaan berdasarkan peristiwa tersebut. Penyiapan ini memungkinkan Anda untuk menggunakan repositori Git pihak ketiga yang tidak didukung oleh layanan secara native sebagai sumbernya. CodePipeline
Prasyarat dan batasan
Prasyarat
Arsitektur
Polanya melibatkan langkah-langkah ini:
Pengguna melakukan kode ke repositori Git.
Webhook Git disebut.
CodePipeline Webhook disebut.
Pipeline diatur ke In Progress, dan tahap sumber diatur ke status In Progress.
Tindakan tahap sumber memulai aturan CloudWatch Peristiwa, yang menunjukkan bahwa itu dimulai.
CloudWatch Acara ini memulai fungsi Lambda.
Fungsi Lambda mendapatkan detail pekerjaan tindakan kustom.
Fungsi Lambda memulai CodeBuild AWS dan meneruskan semua informasi terkait pekerjaan.
CodeBuild mendapatkan kunci SSH publik atau kredensyal pengguna untuk akses HTTPS Git dari Secrets Manager.
CodeBuild mengkloning repositori Git untuk cabang tertentu.
CodeBuild zip arsip dan mengunggahnya ke bucket S3 yang berfungsi sebagai toko artefak. CodePipeline

Alat
AWS CodePipeline
— AWS CodePipeline adalah layanan pengiriman berkelanjutan yang dikelola sepenuhnya yang membantu Anda mengotomatiskan saluran pipa rilis untuk pembaruan aplikasi dan infrastruktur yang cepat dan andal. CodePipeline mengotomatiskan fase build, test, dan deployment dari proses rilis Anda untuk setiap perubahan kode, berdasarkan model rilis yang Anda tentukan. Ini memungkinkan Anda untuk dengan cepat dan andal memberikan fitur dan pembaruan. Anda dapat mengintegrasikan AWS CodePipeline dengan layanan pihak ketiga seperti GitHub atau dengan plugin kustom Anda sendiri. AWS Lambda
— AWS Lambda memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. Dengan Lambda, Anda dapat menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend tanpa administrasi yang diperlukan. Anda mengunggah kode Anda dan Lambda menangani semua yang diperlukan untuk menjalankan dan menskalakan kode Anda dengan ketersediaan tinggi. Anda dapat mengatur kode untuk memulai secara otomatis dari layanan AWS lain atau memanggilnya langsung dari web atau aplikasi seluler apa pun. AWS CodeBuild
— AWS CodeBuild adalah layanan integrasi berkelanjutan yang dikelola sepenuhnya yang mengkompilasi kode sumber, menjalankan pengujian, dan menghasilkan paket perangkat lunak yang siap digunakan. Dengan CodeBuild, Anda tidak perlu menyediakan, mengelola, dan menskalakan server build Anda sendiri. CodeBuild menskalakan terus menerus dan memproses beberapa build secara bersamaan, sehingga build Anda tidak dibiarkan menunggu dalam antrian. Anda dapat memulai dengan cepat menggunakan lingkungan build yang dikemas sebelumnya, atau Anda dapat membuat lingkungan build kustom yang menggunakan alat build Anda sendiri. AWS Secrets Manager
— AWS Secrets Manager membantu Anda melindungi rahasia yang diperlukan untuk mengakses aplikasi, layanan, dan sumber daya TI Anda. Layanan ini memungkinkan Anda untuk memutar, mengelola, dan mengambil kredensyal database, kunci API, dan rahasia lainnya sepanjang siklus hidupnya. Pengguna dan aplikasi mengambil rahasia dengan memanggil Secrets Manager APIs, tanpa harus hardcode informasi sensitif dalam teks biasa. Secrets Manager menawarkan rotasi rahasia dengan integrasi bawaan untuk Amazon Relational Database Service (Amazon RDS), Amazon Redshift, dan Amazon DocumentDB. Layanan ini dapat diperluas untuk mendukung jenis rahasia lainnya, termasuk kunci API dan OAuth token. Selain itu, Secrets Manager memungkinkan Anda mengontrol akses ke rahasia dengan menggunakan izin berbutir halus, dan mengaudit rotasi rahasia secara terpusat untuk sumber daya di AWS Cloud, layanan pihak ketiga, dan lingkungan lokal. Amazon CloudWatch
- Amazon CloudWatch adalah layanan pemantauan dan observasi yang dibangun untuk DevOps insinyur, pengembang, insinyur keandalan situs (SREs), dan manajer TI. CloudWatch memberi Anda data dan wawasan yang dapat ditindaklanjuti untuk memantau aplikasi Anda, menanggapi perubahan kinerja di seluruh sistem, mengoptimalkan pemanfaatan sumber daya, dan mendapatkan pandangan terpadu tentang kesehatan operasional. CloudWatch mengumpulkan data pemantauan dan operasional dalam bentuk log, metrik, dan peristiwa, memberi Anda tampilan terpadu tentang sumber daya, aplikasi, dan layanan AWS yang berjalan di AWS dan server lokal. Anda dapat menggunakannya CloudWatch untuk mendeteksi perilaku anomali di lingkungan Anda, menyetel alarm, memvisualisasikan log dan metrik secara berdampingan, mengambil tindakan otomatis, memecahkan masalah, dan menemukan wawasan agar aplikasi Anda berjalan lancar. Amazon S3
- Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang memungkinkan Anda menyimpan dan melindungi sejumlah data untuk berbagai kasus penggunaan, seperti situs web, aplikasi seluler, pencadangan dan pemulihan, arsip, aplikasi perusahaan, perangkat IoT, dan analitik data besar. Amazon S3 menyediakan fitur easy-to-use manajemen untuk membantu Anda mengatur data dan mengonfigurasi kontrol akses yang disetel dengan baik untuk memenuhi persyaratan bisnis, organisasi, dan kepatuhan spesifik Anda.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat tindakan kustom menggunakan AWS CLI atau AWS. CloudFormation | Langkah ini melibatkan pembuatan tindakan sumber khusus yang dapat digunakan dalam tahap sumber pipeline di akun AWS Anda di wilayah tertentu. Anda harus menggunakan AWS CLI atau AWS CloudFormation (bukan konsol) untuk membuat tindakan sumber kustom. Untuk informasi selengkapnya tentang perintah dan langkah yang dijelaskan dalam epos ini dan epos lainnya, lihat bagian “Sumber daya terkait” di akhir pola ini. Di AWS CLI, gunakan perintah. create-custom-action-type Gunakan --configuration-properties untuk menyediakan semua parameter yang diperlukan agar pekerja pekerjaan dapat diproses saat melakukan polling CodePipeline untuk suatu pekerjaan. Pastikan untuk mencatat nilai yang diberikan ke opsi --provider dan --action-version, sehingga Anda dapat menggunakan nilai yang sama saat membuat pipeline dengan tahap sumber kustom ini. Anda juga dapat membuat tindakan sumber kustom di AWS CloudFormation dengan menggunakan jenis sumber daya AWS::CodePipeline::CustomActionType. | AWS Umum |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat key pair SSH. | Buat key pair Secure Shell (SSH). Untuk instruksi, lihat GitHub dokumentasi. | Sistem/insinyur DevOps |
Buat rahasia di AWS Secrets Manager. | Salin konten kunci pribadi dari key pair SSH dan buat rahasia di AWS Secrets Manager. Rahasia ini digunakan untuk otentikasi saat mengakses repositori Git. | AWS Umum |
Tambahkan kunci publik ke repositori Git. | Tambahkan kunci publik dari key pair SSH ke pengaturan akun repositori Git, untuk otentikasi terhadap kunci pribadi. | Sistem/insinyur DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat pipeline yang menyertakan tindakan sumber kustom. | Buat pipeline di CodePipeline. Saat Anda mengonfigurasi tahap sumber, pilih tindakan sumber kustom yang Anda buat sebelumnya. Anda dapat melakukan ini di CodePipeline konsol AWS atau di AWS CLI. CodePipeline meminta Anda untuk properti konfigurasi yang Anda tetapkan pada tindakan kustom. Informasi ini diperlukan bagi pekerja kerja untuk memproses pekerjaan untuk tindakan kustom. Ikuti wizard dan buat tahap selanjutnya untuk pipeline. | AWS Umum |
Buat CodePipeline webhook. | Buat webhook untuk pipeline yang Anda buat dengan aksi sumber kustom. Anda harus menggunakan AWS CLI atau AWS CloudFormation (bukan konsol) untuk membuat webhook. Di AWS CLI, jalankan perintah put-webhook dan berikan nilai yang sesuai untuk opsi webhook. Catat URL webhook yang dikembalikan perintah. Jika Anda menggunakan AWS CloudFormation untuk membuat webhook, gunakan jenis AWS::CodePipeline::Webhook sumber daya. Pastikan untuk menampilkan URL webhook dari sumber daya yang dibuat, dan catat itu. | AWS Umum |
Buat fungsi dan proyek Lambda. CodeBuild | Pada langkah ini, Anda menggunakan Lambda dan CodeBuild untuk membuat pekerja pekerjaan yang akan melakukan polling CodePipeline untuk permintaan pekerjaan untuk tindakan kustom, menjalankan pekerjaan, dan mengembalikan hasil status ke. CodePipeline Buat fungsi Lambda yang diprakarsai oleh aturan Amazon CloudWatch Events saat tahap tindakan sumber kustom dari pipeline bertransisi ke “Sedang Berlangsung.” Ketika fungsi Lambda dimulai, itu harus mendapatkan detail pekerjaan tindakan khusus dengan melakukan polling untuk pekerjaan. Anda dapat menggunakan PollForJobs API untuk mengembalikan informasi ini. Setelah informasi pekerjaan yang disurvei diperoleh, fungsi Lambda harus mengembalikan pengakuan, dan kemudian memproses informasi dengan data yang diperolehnya dari properti konfigurasi untuk tindakan kustom. Ketika pekerja siap untuk berbicara dengan repositori Git, Anda dapat memulai sebuah CodeBuild proyek, karena akan lebih mudah untuk menangani tugas Git dengan menggunakan klien SSH. | AWS Umum, pengembang kode |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat aturan CloudWatch Acara. | Buat aturan CloudWatch Peristiwa yang memulai fungsi Lambda sebagai target setiap kali tahap tindakan kustom pipeline bertransisi ke “Sedang Berlangsung.” | AWS Umum |
Sumber daya terkait
Membuat tindakan kustom di CodePipeline
Menyiapkan otentikasi
Membuat pipeline dan webhook
Membuat acara
Referensi tambahan