Buat pipeline di Wilayah AWS yang tidak mendukung AWS CodePipeline - AWS Prescriptive Guidance

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

Buat pipeline di Wilayah AWS yang tidak mendukung AWS CodePipeline

Anand Krishna Varanasi, 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

AWS CodePipeline adalah layanan orkestrasi pengiriman berkelanjutan (CD) yang merupakan bagian dari seperangkat DevOps alat dari Amazon Web Services (AWS). Ini terintegrasi dengan berbagai macam sumber (seperti sistem kontrol versi dan solusi penyimpanan), produk dan layanan integrasi berkelanjutan (CI) dari AWS dan AWS Partners, dan produk sumber terbuka untuk menyediakan layanan end-to-end alur kerja untuk penerapan aplikasi dan infrastruktur yang cepat.

Namun, CodePipeline tidak didukung di semua Wilayah AWS, dan berguna untuk memiliki orkestrator tak terlihat yang menghubungkan layanan AWS. CI/CD Pola ini menjelaskan cara menerapkan end-to-end alur kerja di Wilayah AWS yang CodePipeline belum didukung dengan menggunakan CI/CD layanan AWS seperti AWS CodeCommit, AWS CodeBuild, dan AWS CodeDeploy.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • AWS Cloud Development Kit (AWS CDK) CLI versi 2.28 atau yang lebih baru

Arsitektur

Tumpukan teknologi target

Diagram berikut menunjukkan pipa yang dibuat di Wilayah yang tidak mendukung CodePipeline, seperti Wilayah Afrika (Cape Town). Pengembang mendorong file CodeDeploy konfigurasi (juga disebut skrip hook siklus hidup penerapan) ke repositori Git yang di-host oleh. CodeCommit (Lihat GitHub repositori yang disediakan dengan pola ini.) EventBridge Aturan Amazon secara otomatis dimulai. CodeBuild

File CodeDeploy konfigurasi diambil dari CodeCommit sebagai bagian dari tahap sumber pipa dan ditransfer ke CodeBuild. 

Pada fase berikutnya, CodeBuild melakukan tugas-tugas ini: 

  1. Mengunduh file TAR kode sumber aplikasi. Anda dapat mengonfigurasi nama file ini dengan menggunakan Parameter Store, kemampuan AWS Systems Manager.

  2. Mengunduh file CodeDeploy konfigurasi.

  3. Membuat arsip gabungan kode sumber aplikasi dan file CodeDeploy konfigurasi yang khusus untuk jenis aplikasi.

  4. Memulai CodeDeploy penerapan ke instans Amazon Elastic Compute Cloud (Amazon EC2) dengan menggunakan arsip gabungan.

Pembuatan saluran pipa di Wilayah AWS yang tidak didukung

Alat

Layanan AWS

  • AWS CodeBuild adalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

  • AWS CodeCommit adalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.

  • AWS CodeDeploy mengotomatiskan penerapan ke Amazon EC2 atau instans lokal, fungsi AWS Lambda, atau layanan Amazon Elastic Container Service (Amazon ECS).

  • AWS CodePipeline membantu Anda memodelkan dan mengonfigurasi berbagai tahapan rilis perangkat lunak dengan cepat dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.

  • AWS Cloud Development Kit (AWS CDK) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.

Kode

Kode untuk pola ini tersedia di repositori Wilayah GitHub CodePipeline Tidak Didukung.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Instal AWS CDK CLI.

Untuk petunjuk, lihat dokumentasi AWS CDK.

AWS DevOps

Instal klien Git.

Untuk membuat commit, Anda dapat menggunakan klien Git yang diinstal pada komputer lokal Anda, dan kemudian mendorong commit Anda ke repositori. CodeCommit Untuk mengatur CodeCommit dengan klien Git Anda, lihat CodeCommit dokumentasinya.

AWS DevOps

Instal npm.

Instal manajer paket npm. Untuk informasi selengkapnya, lihat dokumentasi npm.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori kode.

Kloning repositori Wilayah GitHub CodePipeline Tidak Didukung ke mesin lokal Anda dengan menjalankan perintah berikut.

git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions
DevOps insinyur

Tetapkan parameter di cdk.json.

Buka cdk.json file dan berikan nilai untuk parameter berikut:

"pipeline_account":"XXXXXXXXXXXX", "pipeline_region":"us-west-2", "repo_name": "app-dev-repo", "ec2_tag_key": "test-vm", "configName" : "cbdeployconfig", "deploymentGroupName": "cbdeploygroup", "applicationName" : "cbdeployapplication", "projectName" : "CodeBuildProject"

di mana:

  • pipeline_accountadalah akun AWS tempat pipeline akan dibangun.

  • pipeline_regionadalah Wilayah AWS tempat pipa akan dibangun.

  • repo_nameadalah nama CodeCommit repositori.

  • ec2_tag_keyadalah tag yang dilampirkan pada EC2 instance yang ingin Anda gunakan kodenya.

  • configNameadalah nama file CodeDeploy konfigurasi.

  • deploymentGroupNameadalah nama grup CodeDeploy penyebaran.

  • applicationNameadalah nama CodeDeploy aplikasi.

  • projectNameadalah nama CodeBuild proyek.

AWS DevOps

Siapkan pustaka konstruksi AWS CDK.

Di GitHub repositori kloning, gunakan perintah berikut untuk menginstal pustaka konstruksi AWS CDK, membangun aplikasi Anda, dan mensintesis untuk menghasilkan template AWS CloudFormation untuk aplikasi.

npm i aws-cdk-lib npm run build cdk synth
AWS DevOps

Terapkan contoh aplikasi AWS CDK.

Menyebarkan kode dengan menjalankan perintah berikut di Wilayah yang tidak didukung (sepertiaf-south-1).

cdk deploy
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Siapkan CI/CD untuk aplikasi.

Kloning CodeCommit repositori yang Anda tentukan dalam cdk.json file (ini disebut secara app-dev-repo default) untuk mengatur CI/CD pipeline untuk aplikasi.

git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo

di mana nama repositori dan Wilayah bergantung pada nilai yang Anda berikan dalam file. cdk.json

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Uji pipa dengan instruksi penerapan.

CodeDeploy_FilesFolder repositori Wilayah GitHub CodePipeline Tidak Didukung menyertakan file sampel yang menginstruksikan CodeDeploy untuk menyebarkan aplikasi. appspec.ymlFile adalah file CodeDeploy konfigurasi yang berisi kait untuk mengontrol aliran penerapan aplikasi. Anda dapat menggunakan file sampelindex.html,, start_server.shstop_server.sh, dan install_dependencies.sh untuk memperbarui situs web yang di-host di Apache. Ini adalah contoh—Anda dapat menggunakan kode di GitHub repositori untuk menyebarkan semua jenis aplikasi. Ketika file didorong ke CodeCommit repositori, pipeline tak terlihat dimulai secara otomatis. Untuk hasil penerapan, periksa hasil fase individu di CodeBuild dan CodeDeploy konsol.

AWS DevOps

Sumber daya terkait