

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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

## Ringkasan
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

**Pemberitahuan**: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. [Pelajari selengkapnya](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)

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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ AWS Cloud Development Kit (AWS CDK) CLI versi 2.28 atau yang lebih baru

## Arsitektur
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

**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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) 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.

1. Mengunduh file CodeDeploy konfigurasi.

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

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

![\[Pembuatan saluran pipa di Wilayah AWS yang tidak didukung\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## Alat
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-tools"></a>

**Layanan AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) adalah layanan build terkelola penuh yang membantu Anda mengompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) adalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) mengotomatiskan penerapan ke Amazon EC2 atau instans lokal, fungsi AWS Lambda, atau layanan Amazon Elastic Container Service (Amazon ECS).
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 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)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) 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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

## Epik
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### Siapkan workstation pengembang Anda
<a name="set-up-your-developer-workstation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS CDK CLI. | Untuk petunjuk, lihat [dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | 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](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html). | AWS DevOps | 
| Instal npm. | Instal manajer paket **npm**. Untuk informasi selengkapnya, lihat [dokumentasi npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Siapkan pipa
<a name="set-up-the-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori kode. | Kloning repositori [Wilayah GitHub CodePipeline Tidak Didukung](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) ke mesin lokal Anda dengan menjalankan perintah berikut.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps insinyur | 
| Tetapkan parameter di cdk.json. | Buka `cdk.json` file dan berikan nilai untuk parameter berikut:<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre>di mana:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | 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.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Terapkan contoh aplikasi AWS CDK. | Menyebarkan kode dengan menjalankan perintah berikut di Wilayah yang tidak didukung (seperti`af-south-1`).<pre>cdk deploy</pre> | AWS DevOps | 

### Siapkan CodeCommit repositori untuk CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Tugas | Deskripsi | Keterampilan 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.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>di mana nama repositori dan Wilayah bergantung pada nilai yang Anda berikan dalam file. `cdk.json` | AWS DevOps | 

### Uji pipa
<a name="test-the-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji pipa dengan instruksi penerapan. | `CodeDeploy_Files`Folder repositori [Wilayah GitHub CodePipeline Tidak Didukung](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) menyertakan file sampel yang menginstruksikan CodeDeploy untuk menyebarkan aplikasi. `appspec.yml`File adalah file CodeDeploy konfigurasi yang berisi kait untuk mengontrol aliran penerapan aplikasi. Anda dapat menggunakan file sampel`index.html`,, `start_server.sh``stop_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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Memulai](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (dokumentasi AWS CDK)
+ [Pengantar Cloud Development Kit (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Lokakarya AWS CDK](https://cdkworkshop.com/)