

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>

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

**Prasyarat**
+ Aktif Akun AWS
+ 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>

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

**AWS layanan**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)adalah layanan build yang dikelola sepenuhnya yang membantu Anda mengkompilasi 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, AWS Lambda fungsi, atau layanan Amazon Elastic Container Service (Amazon ECS) atau lokal.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)membantu 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)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)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](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 instruksi, lihat [AWS CDK dokumentasi](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><br />di mana:+ `pipeline_account`adalah di Akun AWS mana pipa akan dibangun.<br />+ `pipeline_region`adalah di Wilayah AWS mana pipa akan dibangun.<br />+ `repo_name`adalah nama CodeCommit repositori.<br />+ `ec2_tag_key`adalah tag yang dilampirkan ke instans Amazon EC2 yang ingin Anda gunakan kodenya.<br />+ `configName`adalah nama file CodeDeploy konfigurasi.<br />+ `deploymentGroupName`adalah nama grup CodeDeploy penyebaran.<br />+ `applicationName`adalah nama CodeDeploy aplikasi.<br />+ `projectName`adalah 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 <pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Menyebarkan AWS CDK aplikasi sampel. | 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-acc-repository-for-acd"></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><br />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) (AWS CDK dokumentasi)
+ [Pengantar AWS Cloud Development Kit (AWS CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (Studio AWS Lokakarya)
+ [AWS CDK Lokakarya](https://cdkworkshop.com/)