

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

# Tutorial: Buat pipeline sederhana (ember S3)
<a name="tutorials-simple-s3"></a>

Cara termudah untuk membuat pipeline adalah dengan menggunakan wizard **Create pipeline** di AWS CodePipeline konsol. 

Dalam tutorial ini, Anda membuat pipeline dua tahap yang menggunakan bucket sumber S3 berversi dan CodeDeploy untuk merilis contoh aplikasi. 

**catatan**  
Jika Amazon S3 adalah penyedia sumber untuk pipeline Anda, Anda dapat mem-zip file sumber atau file ke dalam satu .zip dan mengunggah.zip ke bucket sumber Anda. Anda juga dapat mengunggah satu file yang tidak di-zip; namun, tindakan hilir yang mengharapkan file.zip akan gagal.

**penting**  
Sebagai bagian dari pembuatan pipa, ember artefak S3 yang disediakan oleh pelanggan akan digunakan CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS yang aman dan dapat diandalkan.

Setelah Anda membuat pipeline sederhana ini, Anda menambahkan tahap lain dan kemudian menonaktifkan dan mengaktifkan transisi antar tahapan.

**penting**  
Banyak tindakan yang Anda tambahkan ke pipeline dalam prosedur ini melibatkan AWS sumber daya yang perlu Anda buat sebelum membuat pipeline. AWS sumber daya untuk tindakan sumber Anda harus selalu dibuat di AWS Wilayah yang sama tempat Anda membuat pipeline. Misalnya, jika Anda membuat pipeline di Wilayah AS Timur (Ohio), CodeCommit repositori Anda harus berada di Wilayah AS Timur (Ohio).   
Anda dapat menambahkan tindakan lintas wilayah saat membuat pipeline. AWS sumber daya untuk tindakan lintas wilayah harus berada di AWS Wilayah yang sama di mana Anda berencana untuk menjalankan tindakan. Untuk informasi selengkapnya, lihat [Menambahkan tindakan Lintas wilayah di CodePipeline](actions-create-cross-region.md).

Sebelum Anda mulai, Anda harus menyelesaikan prasyarat di. [Memulai dengan CodePipeline](getting-started-codepipeline.md)

**Topics**
+ [Langkah 1: Buat bucket sumber S3 untuk aplikasi Anda](#s3-create-s3-bucket)
+ [Langkah 2: Buat instans Windows Amazon EC2 dan instal agen CodeDeploy](#S3-create-instances)
+ [Langkah 3: Buat aplikasi di CodeDeploy](#S3-create-deployment)
+ [Langkah 4: Buat pipeline pertama Anda di CodePipeline](#s3-create-pipeline)
+ [(Opsional) Langkah 5: Tambahkan tahap lain ke pipeline Anda](#s3-add-stage)
+ [(Opsional) Langkah 6: Nonaktifkan dan aktifkan transisi antar tahapan CodePipeline](#s3-configure-transitions)
+ [Langkah 7: Bersihkan sumber daya](#s3-clean-up)

## Langkah 1: Buat bucket sumber S3 untuk aplikasi Anda
<a name="s3-create-s3-bucket"></a>

Anda dapat menyimpan file sumber atau aplikasi Anda di lokasi berversi apa pun. Dalam tutorial ini, Anda membuat bucket S3 untuk file aplikasi sampel dan mengaktifkan pembuatan versi pada bucket itu. Setelah mengaktifkan pembuatan versi, Anda menyalin contoh aplikasi ke bucket tersebut. 

**Untuk membuat bucket S3**

1. Masuk ke konsol di Konsol Manajemen AWS. Buka konsol S3.

1. Pilih **Buat bucket**.

1. Dalam **nama Bucket**, masukkan nama untuk bucket Anda (misalnya,**awscodepipeline-demobucket-example-date**).
**catatan**  
Karena semua nama bucket di Amazon S3 harus unik, gunakan salah satu nama Anda sendiri, bukan nama yang ditunjukkan pada contoh. Anda dapat mengubah nama contoh hanya dengan menambahkan tanggal ke dalamnya. Catat nama ini karena Anda membutuhkannya untuk sisa tutorial ini.

   Di **Wilayah**, pilih Wilayah tempat Anda ingin membuat pipeline, seperti **US West (Oregon)**, lalu pilih **Buat bucket**.

1. Setelah ember dibuat, spanduk sukses ditampilkan. Pilih **Buka detail ember**.

1. Pada tab **Properties**, pilih **Versioning**. **Pilih **Aktifkan pembuatan versi**, lalu pilih Simpan.**

   Saat pembuatan versi diaktifkan, Amazon S3 menyimpan setiap versi dari setiap objek di bucket.

1. Pada tab **Izin**, biarkan default. Untuk informasi selengkapnya tentang izin bucket dan objek S3, lihat [Menentukan Izin dalam Kebijakan](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html).

1. Selanjutnya, unduh sampel dan simpan ke folder atau direktori di komputer lokal Anda.

   1. Pilih salah satu dari berikut ini. Pilih `SampleApp_Windows.zip` apakah Anda ingin mengikuti langkah-langkah dalam tutorial ini untuk instance Windows Server.
      + [Jika Anda ingin menyebarkan ke instans Amazon Linux menggunakan CodeDeploy, unduh contoh aplikasi di sini: SampleApp \$1Linux.zip.](samples/SampleApp_Linux.zip)
      + [Jika Anda ingin menyebarkan ke instance Windows Server menggunakan CodeDeploy, unduh contoh aplikasi di sini: SampleApp \$1Windows.zip.](samples/SampleApp_Windows.zip)

      Aplikasi sampel berisi file-file berikut untuk digunakan dengan CodeDeploy: 
      + `appspec.yml`— File spesifikasi aplikasi (AppSpecfile) adalah file berformat [YAMM](http://www.yaml.org) yang digunakan oleh CodeDeploy untuk mengelola penyebaran. Untuk informasi selengkapnya tentang AppSpec file, lihat [Referensi CodeDeploy AppSpec file](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html) di *Panduan AWS CodeDeploy Pengguna*.
      + `index.html`— File indeks berisi halaman beranda untuk aplikasi sampel yang digunakan.
      + `LICENSE.txt`— File lisensi berisi informasi lisensi untuk aplikasi sampel.
      + File untuk skrip — Aplikasi sampel menggunakan skrip untuk menulis file teks ke lokasi pada instance Anda. Satu file ditulis untuk masing-masing dari beberapa peristiwa siklus hidup CodeDeploy penerapan sebagai berikut:
        + (Hanya sampel Linux) `scripts` folder - Folder berisi skrip shell berikut untuk menginstal dependensi dan memulai dan menghentikan aplikasi sampel untuk penerapan otomatis:`install_dependencies`,, dan. `start_server` `stop_server`
        + (Hanya sampel Windows) `before-install.bat` - Ini adalah skrip batch untuk peristiwa siklus hidup `BeforeInstall` penerapan, yang akan berjalan untuk menghapus file lama yang ditulis selama penerapan sampel ini sebelumnya dan membuat lokasi pada instance Anda untuk menulis file baru.

   1. Unduh file terkompresi (zip). Jangan unzip file.

1. Di konsol Amazon S3, untuk bucket Anda, unggah file:  

   1. Pilih **Unggah**. 

   1. Seret dan lepas file atau pilih **Tambahkan file** dan telusuri file tersebut.

   1. Pilih **Unggah**.

## Langkah 2: Buat instans Windows Amazon EC2 dan instal agen CodeDeploy
<a name="S3-create-instances"></a>

**catatan**  
Tutorial ini memberikan contoh langkah-langkah untuk membuat instans Windows Amazon EC2. Untuk contoh langkah untuk membuat instans Amazon EC2 Linux, lihat. [Langkah 3: Buat instans Amazon EC2 Linux dan instal agen CodeDeploy](tutorials-simple-codecommit.md#codecommit-create-deployment) Saat diminta jumlah instance yang akan dibuat, tentukan **2** instance.

Pada langkah ini, Anda membuat instance Windows Server Amazon EC2 yang akan Anda gunakan aplikasi sampel. Sebagai bagian dari proses ini, Anda membuat peran instans dengan kebijakan yang memungkinkan penginstalan dan pengelolaan CodeDeploy agen pada instans. CodeDeploy Agen adalah paket perangkat lunak yang memungkinkan instance untuk digunakan dalam CodeDeploy penerapan. Anda juga melampirkan kebijakan yang memungkinkan instance mengambil file yang digunakan CodeDeploy agen untuk menyebarkan aplikasi Anda dan mengizinkan instance dikelola oleh SSM.

**Untuk membuat peran instance**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).

1. Dari dasbor konsol, pilih **Peran**.

1. Pilih **Buat peran**.

1. Di bawah **Pilih jenis entitas tepercaya**, pilih **Layanan AWS**. Di bawah **Pilih kasus penggunaan**, pilih **EC2**, lalu pilih **Berikutnya: Izin**.

1. Cari dan pilih kebijakan bernama **`AmazonEC2RoleforAWSCodeDeploy`**.

1. Cari dan pilih kebijakan bernama **`AmazonSSMManagedInstanceCore`**. Pilih **Berikutnya: Tanda**.

1. Pilih **Berikutnya: Tinjau**. Masukkan nama untuk peran (misalnya,**EC2InstanceRole**).
**catatan**  
Catat nama peran Anda untuk langkah selanjutnya. Anda memilih peran ini saat membuat instance Anda.

   Pilih **Buat peran**.

**Untuk meluncurkan instance**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Dari navigasi samping, pilih **Instans**, dan pilih **Luncurkan instance** dari bagian atas halaman.

1. Di bawah **Nama dan tag**, di **Nama**, masukkan**MyCodePipelineDemo**. Ini menetapkan instance **kunci** tag **Name** dan **nilai** tag dari. **MyCodePipelineDemo** Kemudian, Anda membuat CodeDeploy aplikasi yang menyebarkan aplikasi sampel ke instance. CodeDeploymemilih instance untuk menyebarkan berdasarkan tag.

1. Di bawah **Application and OS Images (Amazon Machine Image)**, pilih opsi **Windows**. (AMI ini digambarkan sebagai **Pangkalan Microsoft Windows Server 2019** dan diberi label “Tingkat gratis memenuhi syarat” dan dapat ditemukan di bawah **Mulai Cepat**..)

1. Di bawah **Jenis instans**, pilih `t2.micro` tipe yang memenuhi syarat tingkat gratis sebagai konfigurasi perangkat keras untuk instans Anda.

1. Di bawah **Key pair (login)**, pilih key pair atau buat satu. 

   Anda juga dapat memilih **Proceed without a key pair**.
**catatan**  
Untuk keperluan tutorial ini, Anda dapat melanjutkan tanpa key pair. Untuk menggunakan SSH untuk terhubung ke instance Anda, buat atau gunakan key pair.

1. Di bawah **Pengaturan jaringan**, lakukan hal berikut.

   **Di **Auto-assign IP Publik**, pastikan statusnya Aktifkan.**
   + Di samping **Menetapkan grup keamanan**, pilih **Buat grup keamanan baru**.
   + Di baris untuk **SSH**, di bawah **Jenis sumber**, pilih **IP Saya**.
   + Pilih **Tambahkan grup keamanan**, pilih **HTTP**, lalu di bawah **Jenis sumber**, pilih **IP Saya**.

1. Perluas **Detail lanjutan**. Di **profil instans IAM**, pilih peran IAM yang Anda buat di prosedur sebelumnya (misalnya,**EC2InstanceRole**).

1. Di bawah **Ringkasan**, di bawah **Jumlah instance**, masukkan.. `2`

1. Pilih **Luncurkan instans**.

1. Pilih **Lihat semua instans** untuk menutup halaman konfirmasi dan kembali ke konsol.

1. Anda dapat melihat status peluncuran di halaman **Instans**. Saat Anda meluncurkan instans, status awalnya adalah `pending`. Setelah instans dimulai, statusnya berubah menjadi `running`, dan ia menerima nama DNS publik. (Jika kolom **DNS Publik** tidak ditampilkan, pilih ikon **Tampilkan/Sembunyikan**, lalu pilih DNS **Publik**.)

1. Diperlukan waktu beberapa menit sampai instans siap untuk terhubung dengan DNS tersebut. Periksa apakah pesan Anda telah lulus pemeriksaan statusnya. Anda dapat melihat informasi ini di kolom **Pemeriksaan Status**.

## Langkah 3: Buat aplikasi di CodeDeploy
<a name="S3-create-deployment"></a>

Dalam CodeDeploy, *aplikasi* adalah pengidentifikasi, dalam bentuk nama, untuk kode yang ingin Anda terapkan. CodeDeploy menggunakan nama ini untuk memastikan kombinasi yang benar dari revisi, konfigurasi penerapan, dan grup penyebaran direferensikan selama penerapan. Anda memilih nama CodeDeploy aplikasi yang Anda buat dalam langkah ini ketika Anda membuat pipeline Anda nanti dalam tutorial ini.

Anda pertama kali membuat peran layanan CodeDeploy untuk digunakan. Jika Anda telah membuat peran layanan, Anda tidak perlu membuat yang lain.

**Untuk membuat peran CodeDeploy layanan**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).

1. Dari dasbor konsol, pilih **Peran**.

1. Pilih **Buat peran**.

1. Di bawah **Pilih entitas tepercaya**, pilih **Layanan AWS**. Di bawah **Kasus penggunaan**, pilih **CodeDeploy**. Pilih **CodeDeploy**dari opsi yang tercantum. Pilih **Berikutnya**. Kebijakan yang `AWSCodeDeployRole` dikelola sudah melekat pada peran tersebut.

1. Pilih **Berikutnya**.

1. Masukkan nama untuk peran (misalnya,**CodeDeployRole**), lalu pilih **Buat peran**.

**Untuk membuat aplikasi di CodeDeploy**

1. Buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).

1. Jika halaman **Aplikasi** tidak muncul, pada AWS CodeDeploy menu, pilih **Aplikasi**.

1. Pilih **Create application** (Buat aplikasi).

1. Dalam **nama Aplikasi**, masukkan`MyDemoApplication`. 

1. Di **Compute Platform**, pilih **EC2/On-premise**.

1. Pilih **Create application** (Buat aplikasi).

**Untuk membuat grup penyebaran di CodeDeploy**

1. Pada halaman yang menampilkan aplikasi Anda, pilih **Buat grup penyebaran**.

1. Dalam **nama grup Deployment**, masukkan**MyDemoDeploymentGroup**.

1. Di **peran Layanan**, pilih peran layanan yang Anda buat sebelumnya. Anda harus menggunakan peran layanan yang mempercayai AWS CodeDeploy , setidaknya, kepercayaan dan izin yang dijelaskan dalam [Membuat Peran Layanan](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html) untuk. CodeDeploy Untuk mendapatkan ARN peran layanan, lihat [Mendapatkan Peran Layanan ARN (Konsol](https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-create-service-role.html#getting-started-get-service-role-console)).

1. Di bawah **Jenis Deployment**, pilih **In-place**.

1. Di bawah **Konfigurasi lingkungan**, pilih **Instans Amazon EC2**. Pilih **Nama** di bidang **Kunci**, dan di bidang **Nilai**, masukkan**MyCodePipelineDemo**. 
**penting**  
Anda harus memilih nilai yang sama untuk kunci **Nama** di sini yang Anda tetapkan ke instans EC2 saat Anda membuatnya. Jika Anda menandai instance Anda dengan sesuatu selain**MyCodePipelineDemo**, pastikan untuk menggunakannya di sini.

1. Di bawah **Konfigurasi Agen dengan AWS Systems Manager**, pilih **Sekarang dan jadwalkan pembaruan**. Ini menginstal agen pada instance. Instans Windows sudah dikonfigurasi dengan agen SSM dan sekarang akan diperbarui dengan CodeDeploy agen.

1. Di bawah **Pengaturan Deployment**, pilih`CodeDeployDefault.OneAtaTime`.

1. Di bawah **Load Balancer**, pastikan kotak **Aktifkan load balancing** tidak dipilih. Anda tidak perlu mengatur penyeimbang beban atau memilih grup target untuk contoh ini. Setelah Anda membatalkan pilihan kotak centang, opsi penyeimbang beban tidak ditampilkan.

1. Di bagian **Advanced**, tinggalkan default.

1. Pilih **Buat grup penyebaran**.

## Langkah 4: Buat pipeline pertama Anda di CodePipeline
<a name="s3-create-pipeline"></a>

Di bagian tutorial ini, Anda membuat pipeline. Sampel berjalan secara otomatis melalui pipa.

**Untuk membuat proses rilis CodePipeline otomatis**

1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Pipelines**, pilih **Buat pipeline**.

1. Pada **Langkah 1: Pilih halaman opsi pembuatan**, di bawah **Opsi pembuatan**, pilih opsi **Build custom pipeline**. Pilih **Berikutnya**.

1. Pada **Langkah 2: Pilih pengaturan pipeline**, dalam **nama Pipeline**, masukkan**MyFirstPipeline**. 
**catatan**  
Jika Anda memilih nama lain untuk pipeline Anda, pastikan untuk menggunakan nama itu alih-alih **MyFirstPipeline** untuk sisa tutorial ini. Setelah Anda membuat pipeline, Anda tidak dapat mengubah namanya. Nama pipa tunduk pada beberapa batasan. Untuk informasi selengkapnya, lihat [Kuota di AWS CodePipeline](limits.md). 

1. CodePipeline menyediakan pipa tipe V1 dan V2, yang berbeda dalam karakteristik dan harga. Jenis V2 adalah satu-satunya jenis yang dapat Anda pilih di konsol. Untuk informasi selengkapnya, lihat [jenis pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Untuk informasi tentang harga CodePipeline, lihat [Harga](https://aws.amazon.com/codepipeline/pricing/).

1. Dalam **peran Layanan**, lakukan salah satu hal berikut:
   + Pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan baru di IAM.
   + Pilih **Peran layanan yang ada** untuk menggunakan peran layanan yang sudah dibuat di IAM. Di **Nama peran**, pilih peran layanan Anda dari daftar.

1. **Biarkan pengaturan di bawah **Pengaturan lanjutan** pada defaultnya, lalu pilih Berikutnya.**

1. Pada **Langkah 3: Tambahkan tahap sumber**, di **penyedia Sumber**, pilih **Amazon S3**. Di **Bucket**, masukkan nama bucket S3 yang Anda buat. [Langkah 1: Buat bucket sumber S3 untuk aplikasi Anda](#s3-create-s3-bucket) Dalam **kunci objek S3**, masukkan kunci objek dengan atau tanpa jalur file, dan ingat untuk menyertakan ekstensi file. Misalnya, untuk`SampleApp_Windows.zip`, masukkan nama file contoh seperti yang ditunjukkan dalam contoh ini:

   ```
   SampleApp_Windows.zip
   ```

   Pilih **Langkah selanjutnya**.

   Di bawah **Ubah opsi deteksi**, biarkan default. Hal ini CodePipeline memungkinkan Anda menggunakan Amazon CloudWatch Events untuk mendeteksi perubahan di bucket sumber Anda.

    Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, pilih **Lewati tahap build**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

1. Pada **Langkah 5: Tambahkan tahap pengujian**, pilih **Lewati tahap pengujian**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. 

   Pilih **Berikutnya**.

1. Pada **Langkah 6: Tambahkan tahap penerapan**, di **Penyedia penyebaran, pilih**. **CodeDeploy ** Bidang **Region** default sama Wilayah AWS dengan pipeline Anda. Di **Nama aplikasi**, masukkan`MyDemoApplication`, atau pilih tombol **Refresh**, lalu pilih nama aplikasi dari daftar. Di **grup Deployment****MyDemoDeploymentGroup**, masukkan, atau pilih dari daftar, lalu pilih **Berikutnya**. 
**catatan**  
Nama Deploy adalah nama yang diberikan secara default ke tahap yang dibuat di **Langkah 4: Tambahkan langkah tahap penerapan**, sama seperti Source adalah nama yang diberikan ke tahap pertama pipeline. 

1. Pada **Langkah 7: Tinjau**, tinjau informasinya, lalu pilih **Buat pipeline**.

1. Pipa mulai berjalan. Anda dapat melihat pesan kemajuan dan keberhasilan dan kegagalan saat CodePipeline sampel menyebarkan halaman web ke setiap instans Amazon EC2 dalam penerapan. CodeDeploy

Selamat\$1 Anda baru saja membuat pipa sederhana di CodePipeline. Pipa memiliki dua tahap:
+ Tahap **sumber bernama Source**, yang mendeteksi perubahan dalam aplikasi sampel berversi yang disimpan dalam bucket S3 dan menarik perubahan tersebut ke dalam pipeline.
+ Tahap **Deploy** yang menyebarkan perubahan tersebut ke instans EC2 dengan. CodeDeploy 

Sekarang, verifikasi hasilnya.

**Untuk memverifikasi pipeline Anda berjalan dengan sukses**

1. Lihat kemajuan awal pipa. **Status setiap tahap berubah dari **Tidak ada eksekusi yang belum** ada **dalam proses**, dan kemudian menjadi **Berhasil atau Gagal**.** Pipa harus menyelesaikan proses pertama dalam beberapa menit.

1. **Setelah **Berhasil** ditampilkan untuk status tindakan, di area status untuk tahap **Deploy**, pilih Detail.** Ini membuka CodeDeploy konsol.

1. Di tab **grup Deployment**, di bawah **peristiwa siklus hidup Deployment**, pilih ID instance. Ini membuka konsol EC2.

1. Pada tab **Deskripsi**, di **DNS Publik**, salin alamatnya, lalu tempelkan ke bilah alamat browser web Anda. Lihat halaman indeks untuk contoh aplikasi yang Anda unggah ke bucket S3 Anda.

   Halaman web ditampilkan untuk contoh aplikasi yang Anda unggah ke bucket S3 Anda.

Untuk informasi selengkapnya tentang tahapan, tindakan, dan cara kerja saluran pipa, lihat[CodePipeline konsep ](concepts.md).

## (Opsional) Langkah 5: Tambahkan tahap lain ke pipeline Anda
<a name="s3-add-stage"></a>

Sekarang tambahkan tahap lain dalam pipeline untuk menyebarkan dari server pementasan ke server produksi menggunakan. CodeDeploy Pertama, Anda membuat grup penerapan lain di CodePipelineDemoApplication dalam CodeDeploy. Kemudian Anda menambahkan tahapan yang menyertakan tindakan yang menggunakan grup penyebaran ini. Untuk menambahkan tahap lain, Anda menggunakan CodePipeline konsol atau AWS CLI untuk mengambil dan mengedit struktur pipeline secara manual dalam file JSON, lalu jalankan **update-pipeline** perintah untuk memperbarui pipeline dengan perubahan Anda.

**Topics**
+ [Buat grup penerapan kedua di CodeDeploy](#s3-add-stage-part-1)
+ [Tambahkan grup penerapan sebagai tahap lain dalam pipeline Anda](#s3-add-stage-part-2)

### Buat grup penerapan kedua di CodeDeploy
<a name="s3-add-stage-part-1"></a>

**catatan**  
Di bagian tutorial ini, Anda membuat grup penyebaran kedua, tetapi menyebarkan ke instans Amazon EC2 yang sama seperti sebelumnya. Ini hanya untuk tujuan demonstrasi. Ini sengaja dirancang untuk gagal menunjukkan kepada Anda bagaimana kesalahan ditampilkan. CodePipeline

**Untuk membuat grup penyebaran kedua di CodeDeploy**

1. Buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).

1. Pilih **Aplikasi**, dan dalam daftar aplikasi, pilih`MyDemoApplication`.

1. Pilih tab **grup Deployment**, lalu pilih **Create deployment** group.

1. Pada halaman **Buat grup penyebaran**, dalam **nama grup Deployment**, masukkan nama untuk grup penyebaran kedua (misalnya,). **CodePipelineProductionFleet**

1. Di **Peran Layanan**, pilih peran CodeDeploy layanan yang sama yang Anda gunakan untuk penerapan awal (bukan peran CodePipeline layanan).

1. Di bawah **Jenis Deployment**, pilih **In-place**.

1. Di bawah **Konfigurasi lingkungan**, pilih **Instans Amazon EC2**. Pilih **Nama** di kotak **Kunci**, dan di kotak **Nilai**, pilih `MyCodePipelineDemo` dari daftar. Tinggalkan konfigurasi default untuk **pengaturan Deployment**. 

1. Di bawah **konfigurasi Deployment**, pilih`CodeDeployDefault.OneAtaTime`.

1. Di bawah **Load Balancer**, hapus **Aktifkan penyeimbangan beban**.

1.  Pilih **Buat grup penyebaran**.

### Tambahkan grup penerapan sebagai tahap lain dalam pipeline Anda
<a name="s3-add-stage-part-2"></a>

Sekarang setelah Anda memiliki grup penyebaran lain, Anda dapat menambahkan tahapan yang menggunakan grup penerapan ini untuk menyebarkan ke instans EC2 yang sama dengan yang Anda gunakan sebelumnya. Anda dapat menggunakan CodePipeline konsol atau AWS CLI untuk menambahkan tahap ini. 

**Topics**
+ [Buat tahap ketiga (konsol)](#s3-add-stage-part-2-console)
+ [Buat tahap ketiga (CLI)](#s3-add-stage-part-2-cli)

#### Buat tahap ketiga (konsol)
<a name="s3-add-stage-part-2-console"></a>

Anda dapat menggunakan CodePipeline konsol untuk menambahkan tahap baru yang menggunakan grup penyebaran baru. Karena grup penerapan ini menerapkan ke instans EC2 yang telah Anda gunakan, tindakan penerapan pada tahap ini gagal. 

1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Di **Nama**, pilih nama pipeline yang Anda buat, MyFirstPipeline. 

1. Pada halaman detail pipeline, pilih **Edit**. 

1. Pada halaman **Edit**, pilih **\$1 Tambah tahap** untuk menambahkan tahap segera setelah tahap Deploy.   
![\[Gambar yang menunjukkan tombol+Tambahkan panggung di layar edit\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/edit-pipeline-console-pol.png)

1. Di **Tambahkan tahap**, dalam **nama Panggung**, masukkan**Production**. Pilih **Tambahkan tahap**.

1. Di tahap baru, pilih **\$1 Tambahkan grup tindakan**.

1. Dalam **Edit tindakan**, dalam **nama Tindakan**, masukkan**Deploy-Second-Deployment**. Di **Penyedia tindakan**, di bawah **Deploy**, pilih **CodeDeploy**.

1. Di CodeDeploy bagian, di **Nama aplikasi**, pilih `MyDemoApplication` dari daftar drop-down, seperti yang Anda lakukan saat membuat pipeline. Di **grup Deployment**, pilih grup penyebaran yang baru saja Anda buat. **CodePipelineProductionFleet** Di **artefak Input**, pilih artefak input dari aksi sumber. Pilih **Simpan**.

1. Pada halaman **Edit**, pilih **Simpan**. Di **Simpan perubahan pipeline**, pilih **Simpan**.

1. Meskipun tahap baru telah ditambahkan ke pipeline Anda, status **Tidak ada eksekusi belum** ditampilkan karena tidak ada perubahan yang memicu proses pipeline lainnya. Anda harus menjalankan ulang revisi terakhir secara manual untuk melihat bagaimana pipeline yang diedit berjalan. Pada halaman detail pipeline, pilih **Rilis ubah**, lalu pilih **Rilis** saat diminta. Ini menjalankan revisi terbaru yang tersedia di setiap lokasi sumber yang ditentukan dalam aksi sumber melalui pipeline. 

   Atau, untuk menggunakan AWS CLI untuk menjalankan kembali pipeline, dari terminal di Linux, macOS, atau mesin Unix lokal Anda, atau prompt perintah pada mesin Windows lokal Anda, jalankan perintah, **start-pipeline-execution** dengan menentukan nama pipeline. Ini menjalankan aplikasi di bucket sumber Anda melalui pipeline untuk kedua kalinya.

   ```
   aws codepipeline start-pipeline-execution --name MyFirstPipeline
   ```

   Perintah ini mengembalikan `pipelineExecutionId` objek.

1. Kembali ke CodePipeline konsol dan dalam daftar pipeline, pilih **MyFirstPipeline**untuk membuka halaman tampilan.

   Pipa menunjukkan tiga tahap dan keadaan artefak yang berjalan melalui tiga tahap tersebut. Mungkin diperlukan waktu hingga lima menit agar pipa berjalan melalui semua tahapan. Anda melihat penerapan berhasil pada dua tahap pertama, seperti sebelumnya, tetapi tahap **Produksi** menunjukkan tindakan **Deploy-Second-Deployment** gagal.

1. **Dalam tindakan **Deploy-Second-Deployment**, pilih Detail.** Anda diarahkan ke halaman untuk CodeDeploy penyebaran. Dalam kasus ini, kegagalan adalah hasil dari penyebaran grup instans pertama ke semua instans EC2, sehingga tidak ada instance untuk grup penerapan kedua.
**catatan**  
Kegagalan ini dirancang, untuk menunjukkan apa yang terjadi ketika ada kegagalan dalam tahap pipa.

#### Buat tahap ketiga (CLI)
<a name="s3-add-stage-part-2-cli"></a>

Meskipun menggunakan AWS CLI untuk menambahkan tahap ke pipeline Anda lebih kompleks daripada menggunakan konsol, ini memberikan lebih banyak visibilitas ke dalam struktur pipa.

**Untuk membuat tahap ketiga untuk pipeline Anda**

1. Buka sesi terminal di Linux, macOS, atau mesin Unix lokal Anda, atau prompt perintah di mesin Windows lokal Anda, dan jalankan **get-pipeline** perintah untuk menampilkan struktur pipeline yang baru saja Anda buat. Untuk**MyFirstPipeline**, Anda akan mengetik perintah berikut: 

   ```
   aws codepipeline get-pipeline --name "MyFirstPipeline"
   ```

   Perintah ini mengembalikan struktur MyFirstPipeline. Bagian pertama dari output harus terlihat mirip dengan yang berikut:

   ```
   {
       "pipeline": {
           "roleArn": "arn:aws:iam::80398EXAMPLE:role/AWS-CodePipeline-Service",
           "stages": [
       ...
   ```

   Bagian akhir dari output mencakup metadata pipa dan akan terlihat mirip dengan yang berikut:

   ```
       ...
           ],
           "artifactStore": {
               "type": "S3"
               "location": "amzn-s3-demo-bucket",
           },
           "name": "MyFirstPipeline",
           "version": 4
       },
       "metadata": {
           "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline",
           "updated": 1501626591.112,
           "created": 1501626591.112
       }
   }
   ```

1. Salin dan tempel struktur ini ke editor teks biasa, dan simpan file sebagai. **pipeline.json** Untuk kenyamanan, simpan file ini di direktori yang sama tempat Anda menjalankan **aws codepipeline** perintah.
**catatan**  
Anda dapat menyalurkan JSON langsung ke file dengan **get-pipeline** perintah sebagai berikut:  

   ```
   aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
   ```

1. Salin bagian tahap **Deploy** dan tempel setelah dua tahap pertama. Karena ini adalah tahap penerapan, seperti tahap **Deploy**, Anda menggunakannya sebagai template untuk tahap ketiga. 

1. Ubah nama panggung dan detail grup penyebaran. 

   **Contoh berikut menunjukkan JSON yang Anda tambahkan ke file pipeline.json setelah tahap Deploy.** Edit elemen yang ditekankan dengan nilai-nilai baru. Ingatlah untuk menyertakan koma untuk memisahkan definisi tahap **Deploy** dan **Produksi**.

   ```
   ,
   {
       "name": "Production",
        "actions": [
           {
            "inputArtifacts": [
                {
                 "name": "MyApp"
                }
              ],
             "name": "Deploy-Second-Deployment",
             "actionTypeId": {
                 "category": "Deploy",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "CodeDeploy"
                 },
            "outputArtifacts": [],
            "configuration": {
                 "ApplicationName": "CodePipelineDemoApplication",
                 "DeploymentGroupName": "CodePipelineProductionFleet"
                  },
            "runOrder": 1
           }
       ]
   }
   ```

1. Jika Anda bekerja dengan struktur pipa yang diambil menggunakan **get-pipeline** perintah, Anda harus menghapus `metadata` baris dari file JSON. Jika tidak, **update-pipeline** perintah tidak dapat menggunakannya. Hapus `"metadata": { }` garis dan`"created"`,`"pipelineARN"`, dan `"updated"` bidang.

   Misalnya, hapus baris berikut dari struktur:

   ```
   "metadata": {  
     "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name",
     "created": "date",
     "updated": "date"
     }
   ```

   Simpan file tersebut.

1. Jalankan **update-pipeline** perintah, tentukan file JSON pipeline, mirip dengan yang berikut ini:

   ```
   aws codepipeline update-pipeline --cli-input-json file://pipeline.json
   ```

   Perintah ini mengembalikan seluruh struktur pipa yang diperbarui.
**penting**  
Pastikan untuk menyertakan `file://` sebelum nama file. Diperlukan dalam perintah ini.

1.  Jalankan **start-pipeline-execution** perintah, tentukan nama pipa. Ini menjalankan aplikasi di bucket sumber Anda melalui pipeline untuk kedua kalinya.

   ```
   aws codepipeline start-pipeline-execution --name MyFirstPipeline
   ```

   Perintah ini mengembalikan `pipelineExecutionId` objek.

1. Buka CodePipeline konsol dan pilih **MyFirstPipeline**dari daftar saluran pipa.

   Pipa menunjukkan tiga tahap dan keadaan artefak yang berjalan melalui tiga tahap tersebut. Mungkin diperlukan waktu hingga lima menit agar pipa berjalan melalui semua tahapan. Meskipun penerapan berhasil pada dua tahap pertama, seperti sebelumnya, tahap **Produksi** menunjukkan bahwa tindakan **Deploy-Second-Deployment** gagal. 

1. Dalam tindakan **Deploy-Second-Deployment**, pilih **Detail untuk melihat detail** kegagalan. Anda diarahkan ke halaman detail untuk CodeDeploy penyebaran. Dalam kasus ini, kegagalan adalah hasil dari penyebaran grup instans pertama ke semua instans EC2, sehingga tidak ada instance untuk grup penerapan kedua. 
**catatan**  
Kegagalan ini dirancang, untuk menunjukkan apa yang terjadi ketika ada kegagalan dalam tahap pipa.

## (Opsional) Langkah 6: Nonaktifkan dan aktifkan transisi antar tahapan CodePipeline
<a name="s3-configure-transitions"></a>

Anda dapat mengaktifkan atau menonaktifkan transisi antar tahapan dalam pipeline. Menonaktifkan transisi antar tahapan memungkinkan Anda mengontrol transisi secara manual antara satu tahap dan tahap lainnya. Misalnya, Anda mungkin ingin menjalankan dua tahap pertama dari pipeline, tetapi menonaktifkan transisi ke tahap ketiga hingga Anda siap untuk menerapkan ke produksi, atau saat Anda memecahkan masalah atau kegagalan dengan tahap itu.

**Untuk menonaktifkan dan mengaktifkan transisi antar tahapan dalam pipeline CodePipeline**

1. Buka CodePipeline konsol dan pilih **MyFirstPipeline**dari daftar saluran pipa.

1. Pada halaman detail untuk pipeline, pilih tombol **Nonaktifkan transisi** antara tahap kedua (**Deploy**) dan tahap ketiga yang Anda tambahkan di bagian sebelumnya (**Produksi**).

1. **Di **Nonaktifkan transisi**, masukkan alasan untuk menonaktifkan transisi antar tahapan, lalu pilih Nonaktifkan.**

   Panah di antara tahapan menampilkan ikon dan perubahan warna, dan tombol **Aktifkan transisi**.  
![\[Gambar yang menunjukkan alasan yang dimasukkan untuk menonaktifkan transisi sebagai “Menonaktifkan transisi saat saya memecahkan masalah kegagalan”\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/codepipeline-disabled-transition-pol.png)

1. Unggah sampel Anda lagi ke bucket S3. Karena bucket berversi, perubahan ini memulai pipeline. 

1. Kembali ke halaman detail untuk pipeline Anda dan perhatikan status tahapannya. Tampilan pipeline berubah untuk menunjukkan kemajuan dan keberhasilan pada dua tahap pertama, tetapi tidak ada perubahan yang terjadi pada tahap ketiga. Proses ini mungkin memakan waktu beberapa menit.

1. Aktifkan transisi dengan memilih tombol **Aktifkan transisi** antara dua tahap. Dalam kotak dialog **Aktifkan transisi**, pilih **Aktifkan**. Tahap mulai berjalan dalam beberapa menit dan mencoba untuk memproses artefak yang telah dijalankan melalui dua tahap pertama dari pipa.
**catatan**  
Jika Anda ingin tahap ketiga ini berhasil, edit grup CodePipelineProductionFleet penyebaran sebelum Anda mengaktifkan transisi, dan tentukan kumpulan instans EC2 yang berbeda di mana aplikasi digunakan. Untuk informasi selengkapnya tentang cara melakukannya, lihat [Mengubah setelan grup penerapan](https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-change-deployment-group-settings.html). Jika Anda membuat lebih banyak instans EC2, Anda mungkin dikenakan biaya tambahan. 

## Langkah 7: Bersihkan sumber daya
<a name="s3-clean-up"></a>

Anda dapat menggunakan beberapa sumber daya yang Anda buat dalam tutorial ini untuk[Tutorial: Buat pipeline empat tahap](tutorials-four-stage-pipeline.md). Misalnya, Anda dapat menggunakan kembali CodeDeploy aplikasi dan penyebaran. Anda dapat mengonfigurasi tindakan build dengan penyedia seperti CodeBuild, yang merupakan layanan build yang dikelola sepenuhnya di cloud. Anda juga dapat mengonfigurasi tindakan build yang menggunakan penyedia dengan server atau sistem build, seperti Jenkins.

Namun, setelah Anda menyelesaikan ini dan tutorial lainnya, Anda harus menghapus pipeline dan sumber daya yang digunakannya, sehingga Anda tidak dikenakan biaya untuk terus menggunakan sumber daya tersebut. Pertama, hapus pipeline, lalu CodeDeploy aplikasi dan instans Amazon EC2 yang terkait, dan terakhir, bucket S3.

**Untuk membersihkan sumber daya yang digunakan dalam tutorial ini**

1. Untuk membersihkan CodePipeline sumber daya Anda, ikuti petunjuk di [Hapus pipeline di AWS CodePipeline](pipelines-delete.md).

1. Untuk membersihkan CodeDeploy sumber daya Anda, ikuti petunjuk di [Untuk membersihkan sumber daya (konsol)](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-wordpress-clean-up.html#tutorials-wordpress-clean-up-console).

1. Untuk menghapus bucket S3, ikuti petunjuk di [Menghapus atau mengosongkan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) ember. Jika Anda tidak bermaksud membuat lebih banyak saluran pipa, hapus bucket S3 yang dibuat untuk menyimpan artefak pipa Anda. Untuk informasi lebih lanjut tentang ember ini, lihat[CodePipeline konsep ](concepts.md).