Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otomatiskan CodeGuru ulasan Amazon untuk aplikasi AWS CDK Python dengan menggunakan Tindakan GitHub
Vanitha Dontireddy dan Sarat Chandra Pothula, Amazon Web Services
Ringkasan
Pola ini menampilkan integrasi tinjauan kode CodeGuru otomatis Amazon untuk aplikasi AWS Cloud Development Kit (AWS CDK) Python, yang diatur GitHub melalui Tindakan. Solusinya menerapkan arsitektur tanpa server yang didefinisikan dengan Python. AWS CDK Dengan mengotomatiskan analisis kode ahli dalam pipeline pengembangan, pendekatan ini dapat melakukan hal berikut untuk proyek AWS CDK Python:
Tingkatkan kualitas kode.
Merampingkan alur kerja.
Maksimalkan manfaat komputasi tanpa server.
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS.
AWS Command Line Interface (AWS CLI) versi 2.9.11 atau yang lebih baru, diinstal dan dikonfigurasi.
GitHub Akun aktif dan GitHub repositori dengan izin alur kerja baca dan tulis serta pembuatan permintaan tarik (PR) oleh GitHub Tindakan untuk memastikan alur kerja PR beroperasi dengan benar.
Peran OpenID Connect (OIDC) dalam GitHub Actions untuk menerapkan solusi di file. Akun AWS Untuk membuat peran, gunakan AWS CDK konstruksi
.
Batasan
Amazon CodeGuru Profiler mendukung aplikasi yang ditulis dalam semua bahasa Java virtual machine (JVM) (seperti Scala dan Kotlin) dan runtime dan Python 3.6 atau yang lebih baru.
Amazon CodeGuru Reviewer mendukung asosiasi dengan repositori kode Java dan Python hanya dari penyedia sumber berikut AWS CodeCommit:, Bitbucket GitHub,, Enterprise Cloud, dan Enterprise GitHub Server. GitHub Selain itu, repositori Amazon Simple Storage Service (Amazon S3) hanya didukung melalui Actions. GitHub
Tidak ada cara otomatis untuk mencetak temuan selama pipeline integrasi berkelanjutan dan penerapan berkelanjutan (CI/CD). Sebaliknya, pola ini menggunakan GitHub Actions sebagai metode alternatif untuk menangani dan menampilkan temuan.
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat layanan AWS menurut Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Arsitektur
Diagram berikut menunjukkan arsitektur untuk solusi ini.

Seperti yang ditunjukkan dalam diagram, ketika pengembang membuat permintaan tarik (PR) untuk ditinjau, GitHub Tindakan memicu langkah-langkah berikut:
Asumsi peran IAM — Pipeline menggunakan peran IAM yang ditentukan dalam GitHub Rahasia untuk melakukan tugas penerapan.
Analisis kode
CodeGuru Reviewer menganalisis kode yang disimpan di bucket Amazon S3. Ini mengidentifikasi cacat dan memberikan rekomendasi untuk perbaikan dan pengoptimalan.
CodeGuru Pemindaian keamanan untuk pelanggaran kebijakan dan kerentanan.
Tinjauan temuan
Pipeline mencetak tautan ke dasbor temuan di output konsol.
Jika temuan kritis terdeteksi, pipa segera gagal.
Untuk temuan tingkat keparahan tinggi, normal, atau rendah, pipa berlanjut ke langkah berikutnya.
Persetujuan PR
Seorang pengulas harus menyetujui PR secara manual.
Jika PR ditolak, pipeline gagal dan menghentikan langkah penerapan lebih lanjut.
Penyebaran CDK — Setelah persetujuan PR, proses penyebaran CDK dimulai. Ini mengatur yang berikut Layanan AWS dan sumber daya:
CodeGuru Profiler
AWS Lambda fungsi
Antrean Amazon Simple Queue Service (Amazon SQS)
Pembuatan data pembuatan profil — Untuk menghasilkan data profil yang cukup untuk CodeGuru Profiler:
Pipeline memanggil fungsi Lambda beberapa kali dengan mengirim pesan ke antrean Amazon SQS secara berkala.
Alat
Layanan AWS
AWS Cloud Development Kit (AWS CDK)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.
CDK Toolkit adalah kit pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi Anda AWS CDK .
Amazon CodeGuru Profiler mengumpulkan data performa runtime dari aplikasi live Anda, dan memberikan rekomendasi yang dapat membantu Anda menyempurnakan performa aplikasi.
Amazon CodeGuru Reviewer menggunakan analisis program dan pembelajaran mesin untuk mendeteksi potensi cacat yang sulit ditemukan oleh pengembang. Kemudian, CodeGuru Profiler menawarkan saran untuk meningkatkan kode Java dan Python Anda.
Amazon CodeGuru Security adalah alat keamanan aplikasi statis yang menggunakan pembelajaran mesin untuk mendeteksi pelanggaran dan kerentanan kebijakan keamanan. Ini memberikan saran untuk mengatasi risiko keamanan dan menghasilkan metrik sehingga Anda dapat melacak postur keamanan aplikasi Anda.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
Amazon Simple Queue Service (Amazon Simple Queue Service) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Alat lainnya
GitHub Actions
adalah platform integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang terintegrasi erat dengan GitHub repositori. Anda dapat menggunakan GitHub Actions untuk mengotomatiskan pipeline build, test, dan deployment.
Repositori kode
Kode untuk pola ini tersedia di repositori GitHub amazon-codeguru-suite-cdk-python
Praktik terbaik
Patuhi Praktik Terbaik untuk mengembangkan dan menerapkan infrastruktur cloud dengan. AWS CDK
Ikuti praktik terbaik Keamanan di IAM saat menggunakan Layanan AWS dalam alur kerja GitHub Tindakan, termasuk:
Jangan menyimpan kredensi dalam kode repositori Anda.
Asumsikan peran IAM untuk menerima kredensil sementara, dan gunakan kredenal sementara jika memungkinkan.
Berikan hak istimewa paling sedikit untuk peran IAM yang digunakan dalam alur kerja GitHub Tindakan. Berikan hanya izin yang diperlukan untuk melakukan tindakan dalam alur kerja GitHub Tindakan Anda.
Pantau aktivitas peran IAM yang digunakan dalam alur kerja GitHub Tindakan.
Putar kredenal jangka panjang apa pun yang Anda gunakan secara berkala.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Siapkan AWS kredensil. | Untuk mengekspor variabel yang menentukan Akun AWS dan Wilayah AWS di mana Anda menerapkan tumpukan, jalankan perintah berikut:
AWS Kredensi untuk AWS CDK disediakan melalui variabel lingkungan. | AWS DevOps, DevOps insinyur |
Kloning repositori. | Untuk mengkloning repositori pada mesin lokal Anda, jalankan perintah berikut:
| AWS DevOps, DevOps insinyur |
Instal Toolkit CDK. | Untuk mengonfirmasi bahwa CDK Toolkit diinstal dan untuk memeriksa versi, jalankan perintah berikut:
Jika versi CDK Toolkit lebih awal dari 2.27.0, masukkan perintah berikut untuk memperbaruinya ke versi 2.27.0:
Jika CDK Toolkit tidak diinstal, jalankan perintah berikut untuk menginstalnya:
| AWS DevOps, DevOps insinyur |
Instal dependensi yang diperlukan. | Untuk menginstal dependensi proyek yang diperlukan, jalankan perintah berikut:
| AWS DevOps, DevOps insinyur |
Bootstrap lingkungan CDK. | Untuk mem-bootstrap lingkungan AWS CDK, jalankan perintah berikut:
Setelah Anda berhasil mem-bootstrap lingkungan, output berikut akan ditampilkan:
| AWS DevOps, DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Sintesis AWS CDK aplikasi. | Untuk mensintesis AWS CDK aplikasi, jalankan perintah berikut:
Untuk informasi selengkapnya tentang perintah ini, lihat cdk synthesize dalam dokumentasi. AWS CDK | AWS DevOps, DevOps insinyur |
Menyebarkan sumber daya. | Untuk menyebarkan sumber daya, jalankan perintah berikut:
catatan
| AWS DevOps, DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat rahasia yang diperlukan di GitHub. | Untuk memungkinkan alur kerja GitHub Actions mengakses AWS sumber daya dengan aman tanpa mengekspos informasi sensitif dalam kode repositori Anda, buat rahasia. Untuk membuat rahasia GitHub untuk Berikut ini adalah informasi lebih lanjut tentang variabel:
| AWS DevOps, DevOps insinyur |
Buat token akses GitHub pribadi. | Untuk menyiapkan cara aman agar alur kerja GitHub Tindakan Anda mengautentikasi dan berinteraksi GitHub, lakukan hal berikut:
| AWS DevOps, DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Pembersihan sumber daya | Untuk membersihkan aplikasi AWS CDK Python Anda, jalankan perintah berikut:
| DevOps insinyur |
Pemecahan Masalah
Isu | Solusi |
---|---|
Tampilkan tautan ke temuan dasbor. | Tidak ada cara untuk mencetak temuan selama CI/CD pipa. Sebaliknya, pola ini menggunakan GitHub Actions sebagai metode alternatif untuk menangani dan menampilkan temuan. |
Sumber daya terkait
AWS sumber daya
GitHub dokumentasi