View a markdown version of this page

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

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 dan AWS Mitra, AWS dan produk sumber terbuka untuk menyediakan layanan alur kerja ujung ke ujung untuk penerapan aplikasi dan infrastruktur yang cepat.

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

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS

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

Arsitektur

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 mengkonfigurasi 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

AWS layanan

  • AWS CodeBuildadalah layanan build yang dikelola sepenuhnya yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

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

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

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

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

Kode

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

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Instal AWS CDK CLI.

Untuk instruksi, lihat AWS CDK dokumentasi.

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 di Akun AWS mana pipa akan dibangun.

  • pipeline_regionadalah di Wilayah AWS mana pipa akan dibangun.

  • repo_nameadalah nama CodeCommit repositori.

  • ec2_tag_keyadalah tag yang dilampirkan ke instans Amazon EC2 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 perpustakaan AWS CDK konstruksi.

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

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

Menyebarkan AWS CDK aplikasi sampel.

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