

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

# CodePipeline tutorial
<a name="tutorials"></a>

Setelah Anda menyelesaikan langkah-langkahnya[Memulai dengan CodePipeline](getting-started-codepipeline.md), Anda dapat mencoba salah satu AWS CodePipeline tutorial di panduan pengguna ini.

**Topics**
+ [Tutorial: Terapkan ke instans Amazon EC2 dengan CodePipeline](tutorials-ec2-deploy.md)
+ [Tutorial: Buat dan dorong gambar Docker ke Amazon ECR dengan CodePipeline (tipe V2)](tutorials-ecr-build-publish.md)
+ [Tutorial: Terapkan ke Amazon EKS dengan CodePipeline](tutorials-eks-deploy.md)
+ [Tutorial: Buat pipeline yang menjalankan perintah dengan komputasi (tipe V2)](tutorials-commands.md)
+ [Tutorial: Gunakan tag Git untuk memulai pipeline Anda](tutorials-github-tags.md)
+ [Tutorial: Filter nama cabang untuk permintaan tarik untuk memulai pipeline Anda (tipe V2)](tutorials-github-featurebranches.md)
+ [Tutorial: Gunakan variabel tingkat pipa](tutorials-pipeline-variables.md)
+ [Tutorial: Buat pipeline sederhana (ember S3)](tutorials-simple-s3.md)
+ [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ [Tutorial: Buat pipeline empat tahap](tutorials-four-stage-pipeline.md)
+ [Tutorial: Menyiapkan aturan CloudWatch Acara untuk menerima pemberitahuan email untuk perubahan status pipeline](tutorials-cloudwatch-sns-notifications.md)
+ [Tutorial: Membuat pipeline yang membangun dan menguji aplikasi Android Anda AWS Device Farm](tutorials-codebuild-devicefarm.md)
+ [Tutorial: Buat pipeline yang menguji aplikasi iOS Anda AWS Device Farm](tutorials-codebuild-devicefarm-S3.md)
+ [Tutorial: Buat pipeline yang di-deploy ke Service Catalog](tutorials-S3-servicecatalog.md)
+ [Tutorial: Buat pipeline dengan AWS CloudFormation](tutorials-cloudformation.md)
+ [Tutorial: Buat pipeline yang menggunakan variabel dari AWS CloudFormation tindakan penerapan](tutorials-cloudformation-action.md)
+ [Tutorial: Penerapan Standar Amazon ECS dengan CodePipeline](ecs-cd-pipeline.md)
+ [Tutorial: Membuat pipeline dengan sumber dan ECS-to-CodeDeploy penerapan Amazon ECR](tutorials-ecs-ecr-codedeploy.md)
+ [Tutorial: Buat pipeline yang menerapkan keterampilan Amazon Alexa](tutorials-alexa-skills-kit.md)
+ [Tutorial: Membuat pipeline yang menggunakan Amazon S3 sebagai penyedia penerapan](tutorials-s3deploy.md)
+ [Tutorial: Buat pipeline yang menerbitkan aplikasi tanpa server Anda ke AWS Serverless Application Repository](tutorials-serverlessrepo-auto-publish.md)
+ [Tutorial: Penerapan fungsi Lambda dengan CodePipeline](tutorials-lambda-deploy.md)
+ [Tutorial: Menggunakan variabel dengan tindakan panggilan Lambda](tutorials-lambda-variables.md)
+ [Tutorial: Gunakan AWS Step Functions tindakan pemanggilan dalam pipeline](tutorials-step-functions.md)
+ [Tutorial: Buat pipeline yang digunakan AWS AppConfig sebagai penyedia penyebaran](tutorials-AppConfig.md)
+ [Tutorial: Gunakan klon lengkap dengan sumber GitHub pipa](tutorials-github-gitclone.md)
+ [Tutorial: Gunakan klon lengkap dengan sumber CodeCommit pipa](tutorials-codecommit-gitclone.md)
+ [Tutorial: Buat pipeline dengan AWS CloudFormation StackSets tindakan penerapan](tutorials-stackset-deployment.md)
+ [Tutorial: Buat aturan pemeriksaan variabel untuk pipeline sebagai kondisi entri](tutorials-varcheckrule.md)

# Tutorial: Terapkan ke instans Amazon EC2 dengan CodePipeline
<a name="tutorials-ec2-deploy"></a>

Tutorial ini membantu Anda membuat tindakan penerapan CodePipeline yang menyebarkan kode Anda ke instance yang telah Anda konfigurasi di Amazon EC2.

**catatan**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 akan digunakan oleh 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.

**catatan**  
Tindakan `EC2` penerapan hanya tersedia untuk saluran pipa tipe V2.

## Prasyarat
<a name="tutorials-ec2-deploy-prereqs"></a>

Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai:

**catatan**  
Semua sumber daya ini harus dibuat dalam AWS Wilayah yang sama.
+ Sebuah repositori kontrol sumber (tutorial ini menggunakan GitHub) di mana Anda akan menambahkan file sampel`script.sh`.
+ Anda harus menggunakan peran CodePipeline layanan yang ada yang telah diperbarui dengan izin untuk tindakan ini. Untuk memperbarui peran layanan Anda, lihat[Izin kebijakan peran layanan untuk tindakan penerapan EC2](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action).

Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.

## Langkah 1: Buat instans Amazon EC2 Linux
<a name="tutorials-ec2-deploy-instances"></a>

Pada langkah ini, Anda membuat instans Amazon EC2 di mana Anda akan menerapkan aplikasi sampel. Sebagai bagian dari proses ini, buat peran instance di IAM, jika Anda belum membuat peran instance di Wilayah tempat Anda ingin membuat sumber daya.

**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**. Di bawah **Pilih kasus penggunaan Anda**, pilih **EC2**. Pilih **Berikutnya**.

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

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.
**catatan**  
Anda akan menambahkan izin ke peran ini untuk memungkinkan akses ke bucket artefak S3 untuk pipeline Anda setelah pembuatan pipeline.

   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 **Nama**, masukkan **MyInstances**. Ini memberikan contoh tag **Key** dari **Name** dan tag **Nilai** dari. **MyInstances** 

1. Di bawah **Application and OS Images (Amazon Machine Image)****, cari opsi Amazon Linux** AMI dengan AWS logo, dan pastikan itu dipilih. (AMI ini digambarkan sebagai Amazon Linux 2 AMI (HVM) dan diberi label “Memenuhi syarat tingkat gratis”.)

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. 

1. Di bawah **Pengaturan jaringan**, pastikan statusnya **Aktifkan**.

1. Perluas **Detail lanjutan**. Di **profil instans IAM**, pilih peran IAM yang Anda buat di prosedur sebelumnya (misalnya,**EC2InstanceRole**).
**catatan**  
Jangan biarkan peran instance kosong karena ini menciptakan peran default dan tidak memilih peran yang Anda buat.

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

1. Pilih **Luncurkan instans**. 

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**.)

## Langkah 2: Tambahkan izin bucket artefak ke peran instans EC2
<a name="tutorials-ec2-deploy-role-s3"></a>

Anda harus memperbarui peran instans EC2 yang Anda buat untuk instans Anda agar dapat mengaksesnya ke bucket artefak pipeline Anda. 

**catatan**  
Saat membuat instance, Anda membuat atau menggunakan peran instans EC2 yang ada. Untuk menghindari `Access Denied` kesalahan, Anda harus menambahkan izin bucket S3 ke peran instance untuk memberikan izin instance ke bucket artefak CodePipeline . Buat peran default atau perbarui peran yang ada dengan `s3:GetObject` izin yang tercakup ke bucket artefak untuk Wilayah pipeline Anda.

1. Arahkan ke pipeline Anda di CodePipeline konsol. Pilih **Pengaturan**. Lihat nama dan lokasi penyimpanan artefak untuk pipa yang ada. Catat ember artefak Amazon Resource Name (ARN) dan salin.

1. Arahkan ke konsol IAM dan pilih **Peran**. Pilih peran instance yang Anda buat di Langkah 1 dari tutorial ini.

1. Pada tab **Izin**, pilih **Tambahkan kebijakan inline**.

1. Tambahkan JSON berikut ke dokumen kebijakan, ganti nilai di `Resource` bidang dengan bucket ARN.

   ```
   {
       "Effect": "Allow",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Resource": "arn:aws:s3:::BucketName"
   }
   ```

1. Pilih **Perbarui**.

## Langkah 3: Tambahkan file skrip ke repositori Anda
<a name="tutorials-ec2-deploy-file"></a>

Rekatkan teks contoh ini untuk membuat `script.sh` file Anda untuk langkah pasca-skrip dalam penerapan.

```
echo "Hello World!" 
```

**Untuk menambahkan `script.sh` file ke repositori sumber Anda**

1. Buka editor teks lalu salin dan tempel file di atas ke file baru.

1. Komit dan dorong `script.sh` file Anda ke repositori sumber Anda.

   1. Tambahkan file.

      ```
      git add .
      ```

   1. Lakukan perubahan.

      ```
      git commit -m "Adding script.sh."
      ```

   1. Dorong komit.

      ```
      git push
      ```

   Catat jalur di repositori Anda.

   ```
   /MyDemoRepo/test/script.sh
   ```

## Langkah 4: Membuat pipeline Anda
<a name="tutorials-ec2-deploy-pipeline"></a>

Gunakan CodePipeline wizard untuk membuat tahapan pipeline dan menghubungkan repositori sumber Anda.

**Untuk membuat alur Anda**

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

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**MyPipeline**.

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. Di **peran Layanan**, pilih **Gunakan peran layanan yang ada**, lalu pilih peran CodePipeline layanan yang telah diperbarui dengan izin yang diperlukan untuk tindakan ini. Untuk mengonfigurasi peran CodePipeline layanan Anda untuk tindakan ini, lihat[Izin kebijakan peran layanan untuk tindakan penerapan EC2](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action).

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Dalam nama **Repositori, pilih nama** repositori Anda GitHub .

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan halaman tahap build**, pilih **Lewati**.

1. Pada **Langkah 5: Tambahkan halaman tahap penerapan**, pilih **EC2**.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ec2deploy-action.png)

   1. Untuk **direktori Target**, masukkan direktori pada instance yang ingin Anda gunakan, seperti`/home/ec2-user/testhelloworld`.
**catatan**  
Tentukan direktori penyebaran yang Anda inginkan untuk digunakan tindakan pada instance. Tindakan akan mengotomatiskan pembuatan direktori yang ditentukan pada instance sebagai bagian dari penerapan.

   1. Untuk **PostScript**, masukkan jalur dan nama file untuk skrip Anda, seperti`test/script.sh`.

   1. Pilih **Berikutnya**.

1. Pada halaman **Langkah 6: Tinjau**, tinjau konfigurasi pipeline Anda dan pilih **Buat pipeline** untuk membuat pipeline.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ec2deploy-pipeline.png)

1. Setelah pipeline berhasil berjalan, pilih **Lihat detail** untuk melihat log pada tindakan untuk melihat keluaran tindakan komputasi terkelola.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ec2deploy-logs.png)  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ec2deploy-logs2.png)

## Langkah 5: Uji Pipa Anda
<a name="tutorials-ec2-deploy-test"></a>

Pipeline Anda harus memiliki segalanya untuk menjalankan penerapan AWS berkelanjutan end-to-end asli. Sekarang, uji fungsinya dengan mendorong perubahan kode ke repositori sumber Anda.

**Untuk menguji pipa Anda**

1. Buat perubahan kode ke repositori sumber yang dikonfigurasi, komit, dan dorong perubahan.

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

1. Pilih pipeline Anda dari daftar.

1. Perhatikan kemajuan pipa melalui tahapannya. Pipeline Anda harus selesai dan tindakan Anda menerapkan skrip pada instance Anda.

1. Untuk informasi pemecahan masalah selengkapnya, lihat [Tindakan Penerapan EC2 gagal dengan pesan kesalahan `No such file`](troubleshooting.md#troubleshooting-ec2-deploy).

# Tutorial: Buat dan dorong gambar Docker ke Amazon ECR dengan CodePipeline (tipe V2)
<a name="tutorials-ecr-build-publish"></a>

Tutorial ini membantu Anda membuat tindakan build CodePipeline yang berjalan dan mendorong image Docker Anda ke Amazon ECR setelah perubahan pada kode sumber Anda. Tutorial ini juga menunjukkan kepada Anda cara menambahkan tindakan penerapan Amazon ECS yang menyebarkan gambar yang Anda dorong.

**penting**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 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.

**catatan**  
Tutorial ini adalah untuk tindakan ECRBuild AndPublish build untuk CodePipeline pipeline dengan repositori GitHub sumber dan tindakan standar Amazon ECS untuk menerapkan ke cluster Amazon ECS. Untuk tutorial yang menggunakan pipeline dengan repositori gambar ECR sebagai sumber untuk tindakan penerapan Amazon ECS ke CodeDeploy biru/hijau, lihat. CodePipeline [Tutorial: Membuat pipeline dengan sumber dan ECS-to-CodeDeploy penerapan Amazon ECR](tutorials-ecs-ecr-codedeploy.md)

**penting**  
Tindakan ini menggunakan CodeBuild komputasi CodePipeline terkelola untuk menjalankan perintah di lingkungan build. Menjalankan tindakan perintah akan dikenakan biaya terpisah di AWS CodeBuild.

## Prasyarat
<a name="tutorials-ecr-build-publish-prereqs"></a>

Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai:

**catatan**  
Semua sumber daya ini harus dibuat dalam AWS Wilayah yang sama.
+ Sebuah repositori kontrol sumber (tutorial ini menggunakan GitHub) di mana Anda akan menambahkan berikut untuk tutorial ini:
  + Pada Langkah 1, Anda akan menambahkan contoh Dockerfile ke repositori sumber Anda sebagai artefak input untuk tindakan build di. ECRBuild AndPublish CodePipeline
  + Pada Langkah 2, Anda akan menambahkan contoh file imagedefinitions.json ke repositori sumber Anda sebagai persyaratan untuk tindakan penerapan standar Amazon ECS di. CodePipeline
+ Repositori gambar Amazon ECR yang berisi gambar yang telah Anda buat dari Dockerfile Anda. Untuk informasi selengkapnya, lihat [Membuat Repositori](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html) dan [Mendorong Gambar](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) di *Panduan Pengguna Amazon Elastic Container Registry*.
+ Cluster dan layanan Amazon ECS yang dibuat di Wilayah yang sama dengan repositori gambar. Untuk informasi selengkapnya, lihat [Membuat Cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) dan [Membuat Layanan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html) di *Panduan Pengembang Layanan Amazon Elastic Container*.

Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.

## Langkah 1: Tambahkan Dockerfile ke repositori sumber Anda
<a name="tutorials-ecr-build-publish-file"></a>

Tutorial ini menggunakan ECRBuild AndPublish tindakan untuk membangun gambar Docker Anda dan mendorong gambar ke Amazon ECR. Tindakan komputasi terkelola CodePipeline digunakan CodeBuild untuk menjalankan perintah untuk login ECR dan push gambar. Anda tidak perlu menambahkan `buildspec.yml` file ke repositori kode sumber Anda untuk memberi tahu CodeBuild cara melakukannya. Anda hanya menyediakan Dockerfile di repositori Anda sebagai berikut untuk contoh ini.

Tempel teks contoh ini untuk membuat `Dockerfile` file Anda. Sampel Dockerfile ini sama dengan sampel yang digunakan dalam instruksi gambar ECR dalam prasyarat.

```
FROM public.ecr.aws/amazonlinux/amazonlinux:latest

# Install dependencies
RUN yum update -y && \
 yum install -y httpd

# Install apache and write hello world message
RUN echo 'Hello World!' > /var/www/html/index.html

# Configure apache
RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \
 echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \
 echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \
 chmod 755 /root/run_apache.sh

EXPOSE 80

CMD /root/run_apache.sh
```

**Untuk menambahkan `Dockerfile` file ke repositori sumber Anda**

1. Buka editor teks dan kemudian salin dan tempel Dockerfile di atas ke file baru.

1. Komit dan dorong `Dockerfile` file Anda ke repositori sumber Anda.

   1. Tambahkan file.

      ```
      git add .
      ```

   1. Lakukan perubahan.

      ```
      git commit -m "Adding Dockerfile."
      ```

   1. Dorong komit.

      ```
      git push
      ```

   Pastikan untuk menempatkan file di tingkat root repositori Anda.

   ```
   / Dockerfile
   ```

## Langkah 2: Tambahkan file imagedefinitions.json ke repositori sumber Anda
<a name="w2aac13b9c15"></a>

Tutorial ini menggunakan tindakan penerapan standar Amazon ECS untuk menyebarkan container Anda CodePipeline ke cluster Amazon ECS Anda. Tindakan penerapan standar Amazon ECS memerlukan file imagedefinitions.json yang berisi nama gambar dan URI Anda. Untuk informasi selengkapnya tentang file imagedefinitions.json, lihat. [file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS](file-reference.md#pipelines-create-image-definitions)

Tempel teks contoh ini untuk membuat `imagedefinitions.json` file Anda. Gunakan nama di Dockerfile Anda, seperti`hello-world`, dan gunakan URI dari repositori Amazon ECR tempat gambar disimpan.

```
[
  {
    "name": "hello-world",
    "imageUri": "ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/actions/image-repo"
  }
]
```

**Untuk menambahkan `imagedefinitions.json` file ke repositori sumber Anda**

1. Buka editor teks lalu salin dan tempel contoh di atas ke file baru.

1. Komit dan dorong `imagedefinitions.json` file Anda ke repositori sumber Anda.

   1. Tambahkan file.

      ```
      git add .
      ```

   1. Lakukan perubahan.

      ```
      git commit -m "Adding imagedefinitions.json."
      ```

   1. Dorong komit.

      ```
      git push
      ```

   Pastikan untuk menempatkan file di tingkat root repositori Anda.

   ```
   / imagedefinitions.json
   ```

## Langkah 3: Membuat pipeline Anda
<a name="tutorials-ecr-build-publish-pipeline"></a>

Gunakan CodePipeline wizard untuk membuat tahapan pipeline dan menghubungkan repositori sumber Anda.

**Untuk membuat alur Anda**

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

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**MyPipeline**.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Dalam nama **Repositori, pilih nama** repositori Anda GitHub .

   1. Di **cabang Default**, pilih cabang yang ingin Anda tentukan saat pipeline dimulai secara manual atau dengan peristiwa sumber yang bukan tag Git. Jika sumber perubahan bukan pemicu atau jika eksekusi pipeline dimulai secara manual, maka perubahan yang digunakan akan menjadi komit HEAD dari cabang default.

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan halaman tahap build**, pilih **Penyedia build lain** pilih **ECRBuildAndPublish**.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ecrbuild-wizard.png)

   1. Untuk **nama repositori ECR, pilih repositori** gambar Anda.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**. Anda akan menambahkan tindakan ECS pada langkah berikut.

1. Pada halaman **Langkah 7: Tinjau**, tinjau konfigurasi pipeline Anda dan pilih **Buat pipeline** untuk membuat pipeline.

1. Edit pipeline Anda untuk menambahkan tindakan penerapan Amazon ECS ke pipeline Anda:

   1. Di kanan atas, pilih **Edit**.

   1. Di bagian bawah diagram, pilih **\$1 Tambahkan tahap**. Dalam **nama Panggung**, masukkan nama, seperti**Deploy**.

   1. Pilih **\$1 Tambahkan grup tindakan**.

   1. Di **Nama tindakan**, masukkan nama. 

   1. Di **penyedia Action**, pilih Amazon ECS. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Dalam **artefak Input**, pilih artefak input dari tahap sumber, seperti. `SourceArtifact` 

   1. Untuk **nama Cluster**, pilih klaster Amazon ECS tempat layanan Anda berjalan.

   1. Untuk **nama Layanan**, pilih layanan yang akan diperbarui.

   1. Pilih **Simpan**.

   1. Di panggung yang Anda edit, pilih **Selesai**. Di AWS CodePipeline panel, pilih **Simpan**, lalu pilih **Simpan** pada pesan peringatan.

   1. Untuk mengirimkan perubahan dan memulai pembuatan pipeline, pilih **Rilis perubahan**, lalu pilih **Rilis**.

1. Setelah pipa berjalan, lihat struktur dan status pipa.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ecrbuild-ecsaction.png)

1. Setelah pipeline berhasil berjalan, pilih **Lihat detail** untuk melihat log pada tindakan untuk melihat keluaran tindakan komputasi terkelola.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ecrbuild-logs.png)

1. Memecahkan masalah tindakan yang gagal. Misalnya, tindakan penerapan ECS dapat gagal jika file imagedefinitions.json tidak ada di repositori sumber. Berikut ini adalah contoh pesan kesalahan yang ditampilkan ketika file imagedefinitions.json hilang.   
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ecrbuild-ecsdebug.png)

## Langkah 4: Uji Pipa Anda
<a name="tutorials-ecr-build-publish-test"></a>

Pipeline Anda harus memiliki segalanya untuk menjalankan penerapan AWS berkelanjutan end-to-end asli. Sekarang, uji fungsinya dengan mendorong perubahan kode ke repositori sumber Anda.

**Untuk menguji pipa Anda**

1. Buat perubahan kode ke repositori sumber yang dikonfigurasi, komit, dan dorong perubahan.

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

1. Pilih pipeline Anda dari daftar.

1. Perhatikan kemajuan pipa melalui tahapannya. Pipeline Anda harus selesai dan tindakan Anda mendorong image Docker ke ECR yang dibuat dari perubahan kode Anda.

# Tutorial: Terapkan ke Amazon EKS dengan CodePipeline
<a name="tutorials-eks-deploy"></a>

Tutorial ini membantu Anda membuat tindakan penerapan CodePipeline yang menyebarkan kode Anda ke cluster yang telah Anda konfigurasi di Amazon EKS.

Tindakan EKS mendukung kluster EKS publik dan swasta. Cluster pribadi adalah tipe yang direkomendasikan oleh EKS; Namun, kedua jenis didukung.

**catatan**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 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.

**catatan**  
Tindakan ini menggunakan CodeBuild komputasi CodePipeline terkelola untuk menjalankan perintah di lingkungan build. Menjalankan tindakan perintah akan dikenakan biaya terpisah di AWS CodeBuild.

**catatan**  
Tindakan `EKS` penerapan hanya tersedia untuk saluran pipa tipe V2.

## Prasyarat
<a name="tutorials-eks-deploy-prereqs"></a>

Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai:

**catatan**  
Semua sumber daya ini harus dibuat dalam AWS Wilayah yang sama.
+ Sebuah repositori kontrol sumber (tutorial ini menggunakan GitHub) di mana Anda akan menambahkan file sampel`deployment.yaml`.
+ Anda harus menggunakan peran CodePipeline layanan yang ada yang akan Anda perbarui dengan izin untuk tindakan ini menggunakan [Langkah 3: Perbarui kebijakan peran CodePipeline layanan di IAM](#tutorials-eks-deploy-role) di bawah ini. Izin yang diperlukan didasarkan pada jenis cluster yang Anda buat. Untuk informasi selengkapnya, lihat [Izin kebijakan peran layanan](action-reference-EKS.md#action-reference-EKS-service-role).
+ Gambar kerja dan tag repositori yang telah Anda dorong ke ECR atau repositori gambar Anda.

Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.

## Langkah 1: (Opsional) Buat cluster di Amazon EKS
<a name="tutorials-eks-deploy-cluster"></a>

Anda dapat memilih untuk membuat cluster EKS dengan endpoint publik atau pribadi. 

Pada langkah-langkah berikut, Anda membuat klaster publik atau pribadi di EKS. Langkah ini opsional jika Anda telah membuat cluster Anda.

### Buat klaster publik di Amazon EKS
<a name="tutorials-eks-deploy-cluster-public"></a>

Pada langkah ini, Anda membuat cluster di EKS.

**Buat klaster publik**

1. Buka konsol EKS, lalu pilih **Create cluster**.

1. Dalam **Nama**, beri nama cluster Anda. Pilih **Berikutnya**.

1. Pilih **Buat**.

### Buat klaster pribadi di Amazon EKS
<a name="tutorials-eks-deploy-cluster-private"></a>

Jika Anda memilih untuk membuat cluster dengan titik akhir pribadi, pastikan untuk melampirkan subnet pribadi saja, dan pastikan mereka memiliki koneksi internet.

Ikuti lima sub-langkah berikutnya untuk membuat cluster dengan endpoint pribadi.

**Buat VPC di konsol**

1. Buka konsol VPC, lalu pilih Buat **VPC**.

1. Di bawah **pengaturan VPC, pilih** **VPC** dan lainnya.

1. Pilih untuk membuat satu subnet publik dan 4 pribadi. Pilih **Buat VPC**.

1. Pada halaman subnet, pilih **Private**. 

**Tentukan subnet pribadi di VPC Anda**

1. Arahkan ke VPC Anda dan pilih ID VPC untuk membuka halaman detail VPC.

1. Pada halaman detail VPC, pilih tab **Peta sumber daya**.

1. Lihat diagram dan catat subnet pribadi Anda. Subnet ditampilkan dengan label untuk menunjukkan status publik atau pribadi, dan setiap subnet dipetakan ke tabel rute.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/eks-deploy-subnets.png)

   Perhatikan bahwa klaster pribadi akan memiliki semua subnet pribadi.

1. Buat subnet publik untuk meng-host gateway NAT. Anda dapat melampirkan hanya satu gateway internet untuk satu VPC pada suatu waktu.

**Buat gateway NAT di subnet publik**

1. Di subnet publik, buat gateway NAT. Arahkan ke konsol VPC, lalu pilih gateway **Internet**. Pilih **Buat gateway internet**.

1. Di Nama, masukkan nama untuk gateway internet Anda. Pilih **Buat gateway internet**.

Perbarui tabel rute untuk subnet pribadi untuk mengarahkan lalu lintas ke gateway NAT.

**Tambahkan gateway NAT ke tabel rute Anda untuk subnet pribadi Anda**

1. **Arahkan ke konsol VPC, lalu pilih Subnet.**

1. Untuk setiap subnet pribadi, pilih dan kemudian pilih tabel rute untuk subnet tersebut di halaman detail, Pilih **Edit tabel rute**. 

1. Perbarui tabel rute untuk subnet pribadi untuk mengarahkan lalu lintas internet ke gateway NAT. Pilih **Tambahkan rute**. Pilih **gateway NAT** dari opsi yang akan ditambahkan. Pilih gateway internet yang Anda buat.

1. Untuk subnet publik, buat tabel rute kustom. Verifikasi bahwa daftar kontrol akses jaringan (ACL) untuk subnet publik Anda memungkinkan lalu lintas masuk dari subnet pribadi.

1. Pilih **Simpan perubahan**.

Pada langkah ini, Anda membuat cluster di EKS.

**Buat klaster pribadi**

1. Buka konsol EKS, lalu pilih **Create cluster**.

1. Dalam **Nama**, beri nama cluster Anda. Pilih **Berikutnya**.

1. Tentukan VPC Anda dan informasi konfigurasi lainnya. Pilih **Buat**.

Kluster EKS Anda dapat berupa klaster publik atau pribadi. Langkah ini untuk cluster yang HANYA memiliki titik akhir pribadi. Pastikan bahwa jika cluster Anda bersifat pribadi.

## Langkah 2: Konfigurasikan klaster pribadi Anda di Amazon EKS
<a name="tutorials-eks-deploy-cluster-private-configure"></a>

Langkah ini hanya berlaku jika Anda telah membuat cluster pribadi. Langkah ini untuk cluster yang HANYA memiliki titik akhir pribadi. 

**Konfigurasikan klaster Anda**

1. Lampirkan subnet pribadi hanya di cluster EKS di bawah tab **Networking**. Pasang subnet pribadi yang ditangkap di **Tentukan subnet pribadi di bagian VPC Anda di** bawah. [Langkah 1: (Opsional) Buat cluster di Amazon EKS](#tutorials-eks-deploy-cluster)

1. Pastikan subnet pribadi memiliki akses ke internet karena CodePipeline menyimpan dan mengambil artefak dari bucket artefak S3 untuk pipeline Anda.

## Langkah 3: Perbarui kebijakan peran CodePipeline layanan di IAM
<a name="tutorials-eks-deploy-role"></a>

Pada langkah ini, Anda akan memperbarui peran CodePipeline layanan yang ada, seperti`cp-service-role`, dengan izin yang diperlukan oleh CodePipeline untuk terhubung dengan cluster Anda. Jika Anda tidak memiliki peran yang ada, buat yang baru.

Perbarui peran CodePipeline layanan Anda dengan langkah-langkah berikut.

**Untuk memperbarui kebijakan peran CodePipeline 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. Cari peran CodePipeline layanan Anda, seperti`cp-service-role`.

1. Tambahkan kebijakan inline baru.

1. Di **editor Kebijakan**, masukkan yang berikut ini.
   + Untuk klaster publik, tambahkan izin berikut.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
     
         "Statement": [
             {
                 "Sid": "EksClusterPolicy",
                 "Effect": "Allow",
                 "Action": "eks:DescribeCluster",
                 "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster"
             },
             {
                 "Sid": "EksVpcClusterPolicy",
                 "Effect": "Allow",
                 "Action": [
                     "ec2:DescribeDhcpOptions",
                     "ec2:DescribeNetworkInterfaces",
                     "ec2:DescribeRouteTables",
                     "ec2:DescribeSubnets",
                     "ec2:DescribeSecurityGroups",
                     "ec2:DescribeVpcs"
                 ],
                 "Resource": [
                     "*"
                 ]
             }
         ]
     }
     ```

------
   + Untuk klaster pribadi, tambahkan izin berikut. Cluster pribadi akan memerlukan izin tambahan untuk VPC Anda, jika berlaku.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
     
         "Statement": [
             {
                 "Sid": "EksClusterPolicy",
                 "Effect": "Allow",
                 "Action": "eks:DescribeCluster",
                 "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster"
             },
             {
                 "Sid": "EksVpcClusterPolicy",
                 "Effect": "Allow",
                 "Action": [
                     "ec2:DescribeDhcpOptions",
                     "ec2:DescribeNetworkInterfaces",
                     "ec2:DescribeRouteTables",
                     "ec2:DescribeSubnets",
                     "ec2:DescribeSecurityGroups",
                     "ec2:DescribeVpcs"
                 ],
                 "Resource": [
                     "*"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Action": "ec2:CreateNetworkInterface",
                 "Resource": "*",
                 "Condition": {
                     "StringEqualsIfExists": {
                         "ec2:Subnet": [
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-03ebd65daeEXAMPLE",
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0e377f6036EXAMPLE",
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE",
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE"
                         ]
                     }
                 }
             },
             {
                 "Effect": "Allow",
                 "Action": "ec2:CreateNetworkInterfacePermission",
                 "Resource": "*",
                 "Condition": {
                     "ArnEquals": {
                         "ec2:Subnet": [
                             "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-03ebd65daeEXAMPLE",
                             "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-0e377f6036EXAMPLE",
                             "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-0db658ba1cEXAMPLE",
                             "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-0db658ba1cEXAMPLE"
                         ]
                     }
                 }
             },
             {
                 "Effect": "Allow",
                 "Action": "ec2:DeleteNetworkInterface",
                 "Resource": "*",
                 "Condition": {
                     "StringEqualsIfExists": {
                         "ec2:Subnet": [
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-03ebd65daeEXAMPLE",
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0e377f6036EXAMPLE",
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE",
                             "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE"
                         ]
                     }
                 }
             }
         ]
     }
     ```

------

1. Pilih **Perbarui kebijakan**.

## Langkah 4: Buat entri akses untuk peran CodePipeline layanan
<a name="tutorials-eks-deploy-access-entry"></a>

Pada langkah ini, Anda membuat entri akses di klaster yang akan menambahkan peran CodePipeline layanan yang diperbarui di Langkah 3, bersama dengan kebijakan akses terkelola.

1. Buka konsol EKS dan arahkan ke cluster Anda.

1. Pilih tab **Access**.

1. Di bawah **entri akses IAM, pilih Buat entri** **akses**.

1. Di **ARN utama IAM**, masukkan peran yang baru saja Anda perbarui untuk tindakan tersebut, seperti. `cp-service-role` Pilih **Berikutnya**.

1. Pada **Langkah 2: Tambahkan halaman kebijakan akses**, di **Nama kebijakan**, pilih kebijakan terkelola untuk akses, misalnya`AmazonEKSClusterAdminPolicy`. Pilih **Tambahkan kebijakan**. Pilih **Berikutnya**.
**catatan**  
Ini adalah kebijakan yang digunakan CodePipeline tindakan untuk berbicara dengan Kubernetes. Sebagai praktik terbaik, untuk mengurangi izin dalam kebijakan Anda dengan hak istimewa paling sedikit daripada kebijakan administratif, lampirkan kebijakan khusus sebagai gantinya.

1. Pada halaman ulasan, pilih **Buat**.

## Langkah 5: Buat repositori sumber dan tambahkan file konfigurasi `helm chart`
<a name="tutorials-eks-deploy-source"></a>

Pada langkah ini, Anda membuat file konfigurasi yang sesuai untuk tindakan Anda (file manifes Kubernetes atau bagan Helm) dan menyimpan file konfigurasi di repositori sumber Anda. Gunakan file yang sesuai untuk konfigurasi Anda. Untuk informasi lebih lanjut, lihat [https://kubernetes. ](https://kubernetes.io/docs/reference/kubectl/quick-reference/)io/docs/reference/kubectl/quick[-referensi/ atau https://helm. sh/docs/topics/charts](https://helm.sh/docs/topics/charts/)/.
+ Untuk Kubernetes, gunakan file manifes.
+ Untuk Helm, gunakan bagan Helm.

1. Buat atau gunakan GitHub repositori yang ada.

1. Buat struktur baru di repositori Anda untuk file bagan helm Anda seperti yang ditunjukkan pada contoh di bawah ini.

   ```
   mychart
   |-- Chart.yaml
   |-- charts
   |-- templates
   |   |-- NOTES.txt
   |   |-- _helpers.tpl
   |   |-- deployment.yaml
   |   |-- ingress.yaml
   |   `-- service.yaml
   `-- values.yaml
   ```

1. Tambahkan file ke tingkat root repositori Anda.

## Langkah 6: Membuat pipeline Anda
<a name="tutorials-eks-deploy-pipeline"></a>

Gunakan CodePipeline wizard untuk membuat tahapan pipeline dan menghubungkan repositori sumber Anda.

**Untuk membuat alur Anda**

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

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**MyEKSPipeline**.

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. Di **peran Layanan**, pilih peran layanan yang Anda perbarui di Langkah 3.

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, untuk **penyedia Sumber**, pilih **untuk membuat koneksi ke GitHub repositori Anda**.

1. Pada **Langkah 4: Tambahkan halaman tahap build**, pilih **Lewati**.

1. Pada **Langkah 5: Tambahkan halaman tahap penerapan**, pilih **Amazon EKS**.  
![\[Deploy configuration form with Helm selected, showing fields for release name and chart location.\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/eks-action-example.png)

   1. Di bawah **Menyebarkan jenis konfigurasi**, pilih **Helm**.

   1. Di **lokasi bagan Helm**, masukkan nama rilis, seperti`my-release`. Untuk **lokasi bagan Helm**, masukkan jalur untuk file bagan helm Anda, seperti. `mychart`

   1. Pilih **Berikutnya**.

1. Pada halaman **Langkah 6: Tinjau**, tinjau konfigurasi pipeline Anda dan pilih **Buat pipeline** untuk membuat pipeline.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/eks-deploy-pipeline.png)

1. Setelah pipeline berhasil berjalan, pilih **Lihat detail** untuk melihat log pada tindakan untuk melihat output tindakan.

# Tutorial: Buat pipeline yang menjalankan perintah dengan komputasi (tipe V2)
<a name="tutorials-commands"></a>

Dalam tutorial ini, Anda mengonfigurasi pipeline yang terus menjalankan perintah build yang disediakan menggunakan tindakan Command dalam tahap build. Untuk informasi selengkapnya tentang tindakan Perintah, lihat[Referensi tindakan perintah](action-reference-Commands.md).

**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.

## Prasyarat
<a name="tutorials-commands-prereq"></a>

Anda harus sudah memiliki yang berikut:
+ Sebuah GitHub repositori. Anda dapat menggunakan GitHub repositori yang Anda buat. [Tutorial: Gunakan klon lengkap dengan sumber GitHub pipa](tutorials-github-gitclone.md)

## Langkah 1: Buat file sumber dan dorong ke GitHub repositori Anda
<a name="tutorials-commands-push"></a>

Di bagian ini, Anda membuat dan mendorong file sumber contoh Anda ke repositori yang digunakan pipeline untuk tahap sumber Anda. Untuk contoh ini, Anda menghasilkan dan mendorong yang berikut: 
+ File `README.txt`.

**Untuk membuat file sumber**

1. Buat file dengan teks berikut:

   ```
   Sample readme file
   ```

1. Simpan file sebagai `README.txt`.

**Untuk mendorong file ke GitHub repositori Anda**

1. Dorong atau unggah file ke repositori Anda. File-file ini adalah artefak sumber yang dibuat oleh wizard **Create Pipeline** untuk tindakan penerapan Anda. AWS CodePipeline File Anda akan terlihat seperti ini di direktori lokal Anda:

   ```
   README.txt
   ```

1. Untuk menggunakan baris perintah Git dari repositori kloning di komputer lokal Anda:

   1. Jalankan perintah berikut untuk mementaskan semua file Anda sekaligus:

      ```
      git add -A
      ```

   1. Jalankan perintah berikut untuk mengkomit file dengan pesan komit.

      ```
      git commit -m "Added source files"
      ```

   1. Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke repositori Anda:

      ```
      git push
      ```

## Langkah 2: Buat alur Anda
<a name="tutorials-commands-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan tindakan GitHub (via GitHub App) untuk repositori tempat file sumber disimpan.
+ Sebuah tahap build dengan tindakan Commands.

**Untuk membuat alur dengan wizard**

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**MyCommandsPipeline**.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.
**catatan**  
Jika Anda menggunakan peran layanan yang ada, untuk menggunakan tindakan Perintah, Anda perlu menambahkan izin berikut untuk peran layanan. Cakupkan izin ke tingkat sumber daya pipeline dengan menggunakan izin berbasis sumber daya dalam pernyataan kebijakan peran layanan. Untuk informasi selengkapnya, lihat contoh kebijakan di[Izin kebijakan peran layanan](action-reference-Commands.md#action-reference-Commands-policy).  
log: CreateLogGroup
log: CreateLogStream
log: PutLogEvents

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Dalam nama **Repositori, pilih nama** GitHub repositori.com Anda. 

   1. Di **cabang Default**, pilih cabang yang ingin Anda tentukan saat pipeline dimulai secara manual atau dengan peristiwa sumber yang bukan tag Git. Jika sumber perubahan bukan pemicu atau jika eksekusi pipeline dimulai secara manual, maka perubahan yang digunakan akan menjadi komit HEAD dari cabang default. Secara opsional, Anda juga dapat menentukan webhook dengan pemfilteran (pemicu). Untuk informasi selengkapnya, lihat [Otomatiskan saluran pipa awal menggunakan pemicu dan penyaringan](pipelines-triggers.md).

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, pilih **Command**.
**catatan**  
Menjalankan tindakan Commands akan dikenakan biaya terpisah di AWS CodeBuild.

   Masukkan perintah-perintah berikut. 

   ```
   ls
   echo hello world
   cat README.txt
   echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}
   ```

   Pilih **Berikutnya**.  
![\[Langkah 4: Tambahkan halaman tahap build untuk pipeline baru dengan tindakan Commands\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/commands-wizard-screen.png)

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**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. 

   Pilih **Berikutnya**.

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

1. Sebagai langkah terakhir untuk membuat tindakan Anda, tambahkan variabel lingkungan ke tindakan yang akan menghasilkan variabel keluaran untuk tindakan tersebut. Pada tindakan Perintah, pilih **Edit**. Di layar **Edit**, tentukan namespace variabel untuk tindakan Anda dengan memasukkan `compute` bidang **Namespace variabel**.

   Tambahkan variabel CodeBuild output`AWS_Default_Region`, lalu pilih **Tambahkan variabel**.  
![\[Halaman Edit untuk tindakan Perintah\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/commands-output-edit-var.png)

## Langkah 3: Jalankan pipeline Anda dan verifikasi perintah build
<a name="tutorials-commands-update"></a>

Lepaskan perubahan untuk menjalankan pipeline Anda. Verifikasi bahwa perintah build dijalankan dengan melihat riwayat eksekusi, log build, dan variabel keluaran.

**Untuk melihat log tindakan dan variabel keluaran**

1. Setelah pipeline berjalan dengan sukses, Anda dapat melihat log dan output untuk tindakan tersebut.

1. Untuk melihat variabel output untuk tindakan, pilih **Riwayat**, lalu pilih **Timeline**. 

   Lihat variabel output yang ditambahkan ke tindakan. Output untuk tindakan Commands menunjukkan variabel output diselesaikan ke Wilayah tindakan.  
![\[Output untuk tindakan Perintah yang menunjukkan variabel keluaran diselesaikan ke Wilayah tindakan\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/commands-output-variable.png)

1. Untuk melihat log tindakan, pilih **Lihat detail** pada tindakan Perintah yang berhasil. Lihat log untuk tindakan Perintah.  
![\[Contoh log untuk tindakan Perintah\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/commands-output-logs.png)

# Tutorial: Gunakan tag Git untuk memulai pipeline Anda
<a name="tutorials-github-tags"></a>

Dalam tutorial ini, Anda akan membuat pipeline yang terhubung ke GitHub repositori Anda di mana tindakan sumber dikonfigurasi untuk jenis pemicu tag Git. Ketika tag Git dibuat pada komit, pipeline Anda dimulai. Contoh ini menunjukkan cara membuat pipeline yang memungkinkan pemfilteran tag berdasarkan sintaks nama tag. Untuk informasi selengkapnya tentang pemfilteran dengan pola glob, lihat. [Bekerja dengan pola glob dalam sintaks](syntax-glob.md)

**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.

Tutorial ini terhubung ke GitHub melalui tipe `CodeStarSourceConnection` tindakan.

**catatan**  
Fitur ini tidak tersedia di Wilayah Asia Pasifik (Hong Kong), Afrika (Cape Town), Timur Tengah (Bahrain), atau Eropa (Zurich). Untuk mereferensikan tindakan lain yang tersedia, lihat[Integrasi produk dan layanan dengan CodePipeline](integrations.md). Untuk pertimbangan dengan tindakan ini di Wilayah Eropa (Milan), lihat catatan di[CodeStarSourceConnection untuk Bitbucket Cloud, GitHub Enterprise Server GitHub, GitLab .com, dan tindakan yang dikelola GitLab sendiri](action-reference-CodestarConnectionSource.md).

**Topics**
+ [Prasyarat](#tutorials-github-tags-prereq)
+ [Langkah 1: Buka CloudShell dan kloning repositori Anda](#w2aac13c16c15)
+ [Langkah 2: Buat pipeline untuk memicu tag Git](#tutorials-github-tags-pipeline)
+ [Langkah 3: Tandai komit Anda untuk rilis](#w2aac13c16c19)
+ [Langkah 4: Lepaskan perubahan dan lihat log](#tutorials-github-tags-view)

## Prasyarat
<a name="tutorials-github-tags-prereq"></a>

Sebelum Anda mulai, Anda harus melakukan hal berikut:
+ Buat GitHub repositori dengan akun Anda GitHub .
+ Siapkan GitHub kredensialmu. Ketika Anda menggunakan Konsol Manajemen AWS untuk mengatur koneksi, Anda diminta untuk masuk dengan GitHub kredensi Anda. 

## Langkah 1: Buka CloudShell dan kloning repositori Anda
<a name="w2aac13c16c15"></a>

Anda dapat menggunakan antarmuka baris perintah untuk mengkloning repositori Anda, membuat komit, dan menambahkan tag. Tutorial ini meluncurkan CloudShell contoh untuk antarmuka baris perintah.

1. Masuk ke Konsol Manajemen AWS.

1. Di bilah navigasi atas, pilih AWS ikon. Halaman utama Konsol Manajemen AWS tampilan.

1. Di bilah navigasi atas, pilih AWS CloudShell ikon. CloudShell terbuka. Tunggu sementara CloudShell lingkungan dibuat.
**catatan**  
Jika Anda tidak melihat CloudShell ikon, pastikan Anda berada di [Wilayah yang didukung oleh CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/faq-list.html#regions-available). Tutorial ini mengasumsikan Anda berada di Wilayah AS Barat (Oregon).

1. Masuk GitHub, navigasikan ke repositori Anda. Pilih **Kode**, lalu pilih **HTTPS**. Salin jalurnya. Alamat untuk mengkloning repositori Git Anda disalin ke clipboard Anda.

1. Jalankan perintah berikut untuk mengkloning repositori.

   ```
   git clone https://github.com/<account>/MyGitHubRepo.git
   ```

1. Masukkan GitHub akun Anda `Username` dan `Password` saat diminta. Untuk `Password` entri, Anda harus menggunakan token yang dibuat pengguna daripada kata sandi akun Anda.

## Langkah 2: Buat pipeline untuk memicu tag Git
<a name="tutorials-github-tags-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan koneksi ke GitHub repositori dan tindakan Anda.
+ Tahap build dengan aksi AWS CodeBuild build.

**Untuk membuat alur dengan wizard**

1. Masuk ke CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Alur**, pilih **Buat alur**.

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**MyGitHubTagsPipeline**.

1. Dalam **tipe Pipeline**, pertahankan pilihan default di **V2**. Jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md).

1. Di **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Jika Anda memilih untuk menggunakan peran CodePipeline layanan yang ada, pastikan Anda telah menambahkan izin `codestar-connections:UseConnection` IAM ke kebijakan peran layanan Anda. Untuk petunjuk tentang peran CodePipeline layanan, lihat [Menambahkan izin ke peran CodePipeline layanan](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Di bawah **Pengaturan lanjutan**, biarkan default. Di **Penyimpanan artifact**, pilih **Lokasi default** untuk menggunakan penyimpanan artifact default, seperti bucket artifact Amazon S3 yang ditetapkan sebagai default, untuk alur Anda di Wilayah yang Anda pilih untuk alur Anda.
**catatan**  
Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur.

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Dalam nama **Repositori, pilih nama** repositori Anda GitHub.

   1. Di **cabang Default**, pilih cabang yang ingin Anda tentukan saat pipeline dimulai secara manual atau dengan peristiwa sumber yang bukan tag Git. Jika sumber perubahan bukan pemicu atau jika eksekusi pipeline dimulai secara manual, maka perubahan yang digunakan akan menjadi komit HEAD dari cabang default.

   1. Di bawah **acara Webhook**, di **Jenis filter**, pilih **Tag**.

      Di bidang **Tag atau pola**, masukkan`release*`.
**penting**  
Pipeline yang dimulai dengan jenis pemicu tag Git akan dikonfigurasi untuk peristiwa WebHookv2 dan tidak akan menggunakan peristiwa Webhook (deteksi perubahan pada semua peristiwa push) untuk memulai pipeline.

   Pilih **Berikutnya**.

1. Di **Tambahkan tahap membangun**, tambahkan sebuah tahap membangun:

   1. Di **Penyedia pembangunan**, pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

   1. Untuk **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Perhatikan nama peran CodeBuild layanan Anda. Anda akan membutuhkan nama peran untuk langkah terakhir dalam tutorial ini.

   1. Pada **Buildspec**, untuk **Spesifikasi membangun**, pilih **Sisipkan perintah membangun**. Pilih **Beralih ke editor**, dan tempel yang berikut ini di bawah **perintah Build**.

      ```
      version: 0.2
      #env:
        #variables:
           # key: "value"
           # key: "value"
        #parameter-store:
           # key: "value"
           # key: "value"
        #git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
          #commands:
            # - command
            # - command
        #pre_build:
          #commands:
            # - command
            # - command
        build:
          commands:
            - 
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
           - '*'
          # - location
        name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Pilih **Lanjutkan ke CodePipeline**. Ini kembali ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan perintah build Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

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

## Langkah 3: Tandai komit Anda untuk rilis
<a name="w2aac13c16c19"></a>

Setelah Anda membuat pipeline dan menentukan tag Git, Anda dapat menandai commit di GitHub repositori Anda. Dalam langkah-langkah ini, Anda akan menandai komit dengan `release-1` tag. Setiap komit dalam repositori Git harus memiliki tag Git yang unik. Saat Anda memilih komit dan menandainya, ini memungkinkan Anda untuk memasukkan perubahan dari cabang yang berbeda ke dalam penerapan pipeline Anda. Perhatikan bahwa rilis nama tag tidak berlaku untuk konsep rilis di GitHub.

1. Referensikan komit yang disalin yang ingin IDs Anda tag. Untuk melihat komit di setiap cabang, di CloudShell terminal, masukkan perintah berikut untuk menangkap komit yang ingin IDs Anda tag: 

   ```
   git log
   ```

1. Di CloudShell terminal, masukkan perintah untuk menandai komit Anda dan dorong ke asal. Setelah Anda menandai komit Anda, Anda menggunakan perintah git push untuk mendorong tag ke asal. Dalam contoh berikut, masukkan perintah berikut untuk menggunakan `release-1` tag untuk komit kedua dengan ID`49366bd`. Tag ini akan disaring oleh filter `release*` tag pipeline dan akan memulai pipeline.

   ```
   git tag release-1 49366bd
   ```

   ```
   git push origin release-1
   ```  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/git-tags-pipeline.png)

## Langkah 4: Lepaskan perubahan dan lihat log
<a name="tutorials-github-tags-view"></a>

1. Setelah pipeline berjalan dengan sukses, pada tahap build yang berhasil, pilih **Lihat log**.

   Di bawah **Log**, lihat keluaran CodeBuild build. Perintah menampilkan nilai variabel yang dimasukkan.

1. Di halaman **Riwayat**, lihat kolom **Pemicu**. Lihat tipe pemicu **GitTag : release-1**.

# Tutorial: Filter nama cabang untuk permintaan tarik untuk memulai pipeline Anda (tipe V2)
<a name="tutorials-github-featurebranches"></a>

Dalam tutorial ini, Anda akan membuat pipeline yang terhubung ke GitHub repositori.com Anda di mana tindakan sumber dikonfigurasi untuk memulai pipeline Anda dengan konfigurasi pemicu yang memfilter permintaan tarik. Ketika peristiwa permintaan tarik tertentu terjadi untuk cabang tertentu, pipeline Anda dimulai. Contoh ini menunjukkan cara membuat pipeline yang memungkinkan pemfilteran untuk nama cabang. Untuk informasi selengkapnya tentang bekerja dengan pemicu, lihat[Tambahkan filter untuk jenis acara permintaan push dan pull (CLI)](pipelines-filter.md#pipelines-filter-cli). Untuk informasi selengkapnya tentang pemfilteran dengan pola regex dalam format glob, lihat. [Bekerja dengan pola glob dalam sintaks](syntax-glob.md)

**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.

Tutorial ini terhubung GitHub ke.com melalui tipe `CodeStarSourceConnection` tindakan.

**Topics**
+ [Prasyarat](#tutorials-github-featurebranches-prereq)
+ [Langkah 1: Buat pipeline untuk memulai permintaan tarik untuk cabang tertentu](#tutorials-github-featurebranches-pipeline)
+ [Langkah 2: Buat dan gabungkan permintaan tarik GitHub di.com untuk memulai eksekusi pipeline Anda](#tutorials-github-featurebranches-pullrequest)

## Prasyarat
<a name="tutorials-github-featurebranches-prereq"></a>

Sebelum Anda mulai, Anda harus melakukan hal berikut:
+ Buat GitHub repositori.com dengan akun GitHub .com Anda.
+ Siapkan GitHub kredensialmu. Ketika Anda menggunakan Konsol Manajemen AWS untuk mengatur koneksi, Anda diminta untuk masuk dengan GitHub kredensi Anda. 

## Langkah 1: Buat pipeline untuk memulai permintaan tarik untuk cabang tertentu
<a name="tutorials-github-featurebranches-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan koneksi ke repositori dan tindakan GitHub .com Anda.
+ Tahap build dengan aksi AWS CodeBuild build.

**Untuk membuat alur dengan wizard**

1. Masuk ke CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Alur**, pilih **Buat alur**.

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**MyFilterBranchesPipeline**.

1. Dalam **tipe Pipeline**, pertahankan pilihan default di **V2**. Jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md).

1. Di **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Jika Anda memilih untuk menggunakan peran CodePipeline layanan yang ada, pastikan Anda telah menambahkan izin `codeconnections:UseConnection` IAM ke kebijakan peran layanan Anda. Untuk petunjuk tentang peran CodePipeline layanan, lihat [Menambahkan izin ke peran CodePipeline layanan](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Di bawah **Pengaturan lanjutan**, biarkan default. Di **Penyimpanan artifact**, pilih **Lokasi default** untuk menggunakan penyimpanan artifact default, seperti bucket artifact Amazon S3 yang ditetapkan sebagai default, untuk alur Anda di Wilayah yang Anda pilih untuk alur Anda.
**catatan**  
Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur.

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Dalam nama **Repositori, pilih nama** GitHub repositori.com Anda.

   1. Di bawah **Jenis pemicu**, pilih **Tentukan filter**.

      Di bawah **Jenis acara**, pilih **Permintaan tarik**. Pilih semua peristiwa di bawah permintaan tarik sehingga peristiwa terjadi untuk permintaan tarik yang dibuat, diperbarui, atau ditutup.

      Di bawah **Cabang**, di bidang **Sertakan**, masukkan`main*`.  
![\[Gambar yang menunjukkan opsi Sertakan cabang yang dipilih dengan nilai main* untuk pemicu dengan jenis peristiwa permintaan Tarik\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/pullreq-example-triggers-edit.png)
**penting**  
Saluran pipa yang dimulai dengan jenis pemicu ini akan dikonfigurasi untuk peristiwa WebHookv2 dan tidak akan menggunakan peristiwa Webhook (deteksi perubahan pada semua peristiwa push) untuk memulai pipeline.

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, di **penyedia Build**, pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur. Pilih atau buat proyek build seperti yang diinstruksikan. [Tutorial: Gunakan tag Git untuk memulai pipeline Anda](tutorials-github-tags.md) Tindakan ini hanya akan digunakan dalam tutorial ini sebagai tahap kedua yang diperlukan untuk membuat pipeline Anda.

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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

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

## Langkah 2: Buat dan gabungkan permintaan tarik GitHub di.com untuk memulai eksekusi pipeline Anda
<a name="tutorials-github-featurebranches-pullrequest"></a>

Di bagian ini, Anda membuat dan menggabungkan permintaan tarik. Ini memulai pipeline Anda, dengan satu eksekusi untuk permintaan tarik terbuka dan satu eksekusi untuk permintaan tarik tertutup.

**Untuk membuat permintaan tarik dan memulai pipeline Anda**

1.  GitHubDi.com, buat permintaan tarik dengan membuat perubahan pada README.md pada cabang fitur dan menaikkan permintaan tarik ke cabang. `main` Lakukan perubahan dengan pesan seperti`Update README.md for PR`.

1. Pipeline dimulai dengan revisi sumber yang menampilkan pesan **Sumber** untuk permintaan tarik sebagai **Perbarui README.md** untuk PR.  
![\[Gambar yang menampilkan pesan sumber untuk permintaan Pull dengan teks berikut: Update README.md for PR\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/pullreq-example.png)

1. Pilih**riwayat**. Dalam riwayat eksekusi pipeline, lihat peristiwa status permintaan tarik CREATED dan MERGED yang memulai eksekusi pipeline.  
![\[Gambar yang menunjukkan riwayat eksekusi pipeline yang menunjukkan peristiwa status permintaan tarik CREATED dan MERGED yang memulai eksekusi pipeline\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/pullreq-example-history.png)

# Tutorial: Gunakan variabel tingkat pipa
<a name="tutorials-pipeline-variables"></a>

Dalam tutorial ini, Anda akan membuat pipeline di mana Anda menambahkan variabel pada tingkat pipeline dan menjalankan tindakan CodeBuild build yang mengeluarkan nilai variabel Anda.

**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.

**Topics**
+ [Prasyarat](#tutorials-pipeline-variables-prereq)
+ [Langkah 1: Buat pipeline Anda dan bangun proyek](#tutorials-pipeline-variables-pipeline)
+ [Langkah 2: Lepaskan perubahan dan lihat log](#tutorials-pipeline-variables-view)

## Prasyarat
<a name="tutorials-pipeline-variables-prereq"></a>

Sebelum Anda mulai, Anda harus melakukan hal berikut:
+ Buat CodeCommit repositori.
+ Tambahkan file.txt ke repositori.

## Langkah 1: Buat pipeline Anda dan bangun proyek
<a name="tutorials-pipeline-variables-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan koneksi ke CodeCommit repositori Anda.
+ Tahap build dengan aksi AWS CodeBuild build.

**Untuk membuat alur dengan wizard**

1. Masuk ke CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Alur**, pilih **Buat alur**.

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**MyVariablesPipeline**.

1. Dalam **tipe Pipeline**, pertahankan pilihan default di **V2**. Jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md).

1. Di **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Jika Anda memilih untuk menggunakan peran CodePipeline layanan yang ada, pastikan Anda telah menambahkan izin `codeconnections:UseConnection` IAM ke kebijakan peran layanan Anda. Untuk petunjuk tentang peran CodePipeline layanan, lihat [Menambahkan izin ke peran CodePipeline layanan](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Di bawah **Variabel**, pilih **Tambahkan variabel**. Di **Nama**, masukkan `timeout`. Di **Default**, masukkan 1000. Dalam deskripsi, masukkan deskripsi berikut:**Timeout**.

   Ini akan membuat variabel di mana Anda dapat mendeklarasikan nilai ketika eksekusi pipeline dimulai. Nama variabel harus cocok `[A-Za-z0-9@\-_]+` dan bisa apa saja kecuali string kosong.

1. Di bawah **Pengaturan lanjutan**, biarkan default. Di **Penyimpanan artifact**, pilih **Lokasi default** untuk menggunakan penyimpanan artifact default, seperti bucket artifact Amazon S3 yang ditetapkan sebagai default, untuk alur Anda di Wilayah yang Anda pilih untuk alur Anda.
**catatan**  
Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur.

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **AWS CodeCommit**.

   1. Dalam nama **Repositori dan nama** **Cabang**, pilih repositori dan cabang Anda.

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, tambahkan tahap build:

   1. Di **Penyedia pembangunan**, pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

   1. Untuk **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Perhatikan nama peran CodeBuild layanan Anda. Anda akan membutuhkan nama peran untuk langkah terakhir dalam tutorial ini.

   1. Pada **Buildspec**, untuk **Spesifikasi membangun**, pilih **Sisipkan perintah membangun**. Pilih **Beralih ke editor**, dan tempel yang berikut ini di bawah **perintah Build**. Dalam buildspec, variabel pelanggan `$CUSTOM_VAR1` akan digunakan untuk menampilkan variabel pipeline di log build. Anda akan membuat variabel `$CUSTOM_VAR1` output sebagai variabel lingkungan pada langkah berikut.

      ```
      version: 0.2
      #env:
        #variables:
           # key: "value"
           # key: "value"
        #parameter-store:
           # key: "value"
           # key: "value"
        #git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
          #commands:
            # - command
            # - command
        #pre_build:
          #commands:
            # - command
            # - command
        build:
          commands:
            - echo $CUSTOM_VAR1
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
           - '*'
          # - location
        name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Pilih **Lanjutkan ke CodePipeline**. Ini kembali ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan perintah build Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. Di bawah **variabel Lingkungan *- opsional***, untuk membuat variabel lingkungan sebagai variabel input untuk tindakan build yang akan diselesaikan oleh variabel tingkat pipa, pilih **Tambahkan** variabel lingkungan. Ini akan membuat variabel yang ditentukan dalam buildspec sebagai. `$CUSTOM_VAR1` Di **Nama**, masukkan `CUSTOM_VAR1`. Dalam **Value** (Nilai), masukkan `#{variables.timeout}`. Di **Type**, pilih`Plaintext`.

      `#{variables.timeout}`Nilai untuk variabel lingkungan didasarkan pada namespace variabel tingkat pipa `variables` dan variabel tingkat pipa yang dibuat untuk pipeline pada langkah 7. `timeout`

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

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

## Langkah 2: Lepaskan perubahan dan lihat log
<a name="tutorials-pipeline-variables-view"></a>

1. Setelah pipeline berjalan dengan sukses, pada tahap build yang berhasil, pilih **Lihat detail**.

   Pada halaman detail, pilih tab **Log**. Lihat output CodeBuild build. Perintah menampilkan nilai variabel yang dimasukkan.

1. **Di navigasi sebelah kiri, pilih History.**

   Pilih eksekusi terbaru, lalu pilih tab **Variabel**. Lihat nilai yang diselesaikan untuk variabel pipeline.

# 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).

# Tutorial: Buat pipeline sederhana (CodeCommit repositori)
<a name="tutorials-simple-codecommit"></a>

Dalam tutorial ini, Anda gunakan CodePipeline untuk menyebarkan kode yang dikelola dalam CodeCommit repositori ke satu instans Amazon EC2. Pipeline Anda dipicu saat Anda mendorong perubahan ke CodeCommit repositori. Pipeline menyebarkan perubahan Anda ke instans Amazon EC2 yang CodeDeploy digunakan sebagai layanan penerapan.

**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.

Pipa memiliki dua tahap:
+ Tahap sumber (**Sumber**) untuk tindakan CodeCommit sumber Anda.
+ Tahap penerapan (**Deploy**) untuk tindakan CodeDeploy penerapan Anda.

Cara termudah untuk memulai AWS CodePipeline adalah dengan menggunakan wizard **Create Pipeline** di CodePipeline konsol.

**catatan**  
Sebelum memulai, pastikan Anda telah menyiapkan klien Git Anda untuk bekerja dengannya CodeCommit. Untuk petunjuk, lihat [Menyiapkan untuk CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up.html).

## Langkah 1: Buat CodeCommit repositori
<a name="codecommit-create-repository"></a>

Pertama, Anda membuat repositori di. CodeCommit Pipeline Anda mendapatkan kode sumber dari repositori ini saat dijalankan. Anda juga membuat repositori lokal tempat Anda memelihara dan memperbarui kode sebelum Anda mendorongnya ke repositori. CodeCommit 

**Untuk membuat CodeCommit repositori**



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

1. Di pemilih Region, pilih Wilayah AWS tempat Anda ingin membuat repositori dan pipeline. Untuk informasi lebih lanjut, lihat [Wilayah AWS dan Titik Akhir](https://docs.aws.amazon.com/general/latest/gr/rande.html).

1. Pada halaman **Repositori**, pilih **Buat repositori**.

1. Pada halaman **Buat repositori**, dalam **Nama Repositori**, ketikkan nama untuk repositori Anda, (misalnya **MyDemoRepo**).

1. Pilih **Buat**.

**catatan**  
Langkah-langkah yang tersisa dalam tutorial ini digunakan **MyDemoRepo** untuk nama CodeCommit repositori Anda. Jika Anda memilih nama yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.

**Untuk menyiapkan repositori lokal**

Pada langkah ini, Anda mengatur repositori lokal untuk terhubung ke repositori jarak jauh CodeCommit Anda.
**catatan**  
Anda tidak diharuskan untuk menyiapkan repositori lokal. Anda juga dapat menggunakan konsol untuk mengunggah file seperti yang dijelaskan dalam[Langkah 2: Tambahkan kode sampel ke CodeCommit repositori Anda](#codecommit-add-code).

1. **Dengan repositori baru Anda terbuka di konsol, pilih **Clone URL** di kanan atas halaman, lalu pilih Clone SSH.** Alamat untuk mengkloning repositori Git Anda disalin ke clipboard Anda.

1. Di terminal atau baris perintah Anda, navigasikan ke direktori lokal tempat Anda ingin repositori lokal Anda disimpan. Dalam tutorial ini, kita gunakan`/tmp`.

1. Jalankan perintah berikut untuk mengkloning repositori, mengganti alamat SSH dengan yang Anda salin pada langkah sebelumnya. Perintah ini membuat direktori yang disebut`MyDemoRepo`. Anda menyalin contoh aplikasi ke direktori ini.

   ```
   git clone ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyDemoRepo
   ```

## Langkah 2: Tambahkan kode sampel ke CodeCommit repositori Anda
<a name="codecommit-add-code"></a>

Pada langkah ini, Anda mengunduh kode untuk aplikasi sampel yang dibuat untuk panduan CodeDeploy sampel, dan menambahkannya ke repositori Anda CodeCommit .



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

   1. Pilih salah satu dari berikut ini. Pilih `SampleApp_Linux.zip` apakah Anda ingin mengikuti langkah-langkah dalam tutorial ini untuk instance Linux.
      + [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).

1. Buka zip file dari [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) ke direktori lokal yang Anda buat sebelumnya (misalnya, `/tmp/MyDemoRepo` atau`c:\temp\MyDemoRepo`).

   Pastikan untuk menempatkan file langsung ke repositori lokal Anda. Jangan sertakan `SampleApp_Linux` folder. Di Linux, macOS, atau mesin Unix lokal Anda, misalnya, direktori dan hierarki file Anda akan terlihat seperti ini:

   ```
   /tmp
      └-- MyDemoRepo
          │-- appspec.yml
          │-- index.html
          │-- LICENSE.txt
          └-- scripts
              │-- install_dependencies
              │-- start_server
              └-- stop_server
   ```

1. Untuk mengunggah file ke repositori Anda, gunakan salah satu metode berikut.

   1. Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda: 

      1. **Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.**

      1. Pilih **Tambahkan file**, lalu pilih **Unggah file**. 

      1. Pilih **Pilih file**, lalu telusuri file Anda. Untuk menambahkan file di bawah folder, pilih **Buat file** dan kemudian masukkan nama folder dengan nama file, seperti`scripts/install_dependencies`. Tempel konten file ke file baru.

         Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. 

         Pilih **Perubahan commit**.

      1. Ulangi langkah ini untuk setiap file.

         Isi repositori Anda akan terlihat seperti ini:

         ```
                │-- appspec.yml
                │-- index.html
                │-- LICENSE.txt
                └-- scripts
                    │-- install_dependencies
                    │-- start_server
                    └-- stop_server
         ```

   1. Untuk menggunakan perintah git untuk mengunggah file Anda: 

      1. Ubah direktori ke repo lokal Anda:

         ```
         (For Linux, macOS, or Unix) cd /tmp/MyDemoRepo
         (For Windows) cd c:\temp\MyDemoRepo
         ```

      1. Jalankan perintah berikut untuk mementaskan semua file Anda sekaligus:

         ```
         git add -A
         ```

      1. Jalankan perintah berikut untuk mengkomit file dengan pesan komit:

         ```
         git commit -m "Add sample application files"
         ```

      1. Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke CodeCommit repositori Anda:

         ```
         git push
         ```

1. File yang Anda unduh dan tambahkan ke repo lokal Anda sekarang telah ditambahkan ke `main` cabang di CodeCommit `MyDemoRepo` repositori Anda dan siap untuk disertakan dalam pipeline.

## Langkah 3: Buat instans Amazon EC2 Linux dan instal agen CodeDeploy
<a name="codecommit-create-deployment"></a>

Pada langkah ini, Anda membuat instans Amazon EC2 tempat Anda menerapkan aplikasi sampel. Sebagai bagian dari proses ini, buat peran instance yang memungkinkan penginstalan dan pengelolaan CodeDeploy agen pada instance. 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**. Di bawah **Pilih kasus penggunaan Anda**, pilih **EC2**. Pilih **Berikutnya: Izin**.

1. Cari dan pilih kebijakan yang diberi nama **`AmazonEC2RoleforAWSCodeDeploy`**. 

1. Cari dan pilih kebijakan yang diberi nama **`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 sebuah instans**

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 **Nama**, masukkan **MyCodePipelineDemo**. Ini memberikan contoh tag **Key** dari **Name** dan tag **Nilai** dari. **MyCodePipelineDemo** Kemudian, Anda membuat CodeDeploy aplikasi yang menyebarkan aplikasi sampel ke instance ini. CodeDeploymemilih instance untuk menyebarkan berdasarkan tag.

1. Di bawah **Application and OS Images (Amazon Machine Image)****, cari opsi Amazon Linux** AMI dengan AWS logo, dan pastikan itu dipilih. (AMI ini digambarkan sebagai Amazon Linux 2 AMI (HVM) dan diberi label “Free tier eligible”.)

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.**

   Untuk grup keamanan yang dibuat, 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.. `1`

1. Pilih **Luncurkan instans**. 

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**.)

## Langkah 4: Buat aplikasi di CodeDeploy
<a name="codecommit-create-codedeploy-app"></a>

Di CodeDeploy, [https://docs.aws.amazon.com/codedeploy/latest/userguide/applications.html](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications.html) adalah sumber daya yang berisi aplikasi perangkat lunak yang ingin Anda gunakan. Kemudian, Anda menggunakan aplikasi ini CodePipeline untuk mengotomatiskan penerapan aplikasi sampel ke instans Amazon EC2 Anda.

Pertama, Anda membuat peran yang memungkinkan CodeDeploy untuk melakukan penerapan. Kemudian, Anda membuat CodeDeploy aplikasi.

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

[https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-groups.html](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-groups.html) adalah sumber daya yang mendefinisikan setelan terkait penerapan seperti instance mana yang akan digunakan dan seberapa cepat menerapkannya.

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

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

1. Dalam **peran Layanan**, pilih ARN dari peran layanan yang Anda buat sebelumnya (misalnya,**`arn:aws:iam::account_ID:role/CodeDeployRole`**).

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

1. Di bawah **Konfigurasi lingkungan**, pilih **Instans Amazon EC2**. Di bidang **Key**, masukkan**Name**. Di bidang **Nilai**, masukkan nama yang Anda gunakan untuk menandai instance (misalnya,**MyCodePipelineDemo**).

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

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

1. Di bawah **Load Balancer**, pastikan **Aktifkan load balancing** tidak dipilih. Anda tidak perlu mengatur penyeimbang beban atau memilih grup target untuk contoh ini.

1. Pilih **Buat grup penyebaran**.

## Langkah 5: Buat pipeline pertama Anda CodePipeline
<a name="codecommit-create-pipeline"></a>

Anda sekarang siap untuk membuat dan menjalankan pipeline pertama Anda. Pada langkah ini, Anda membuat pipeline yang berjalan secara otomatis saat kode didorong ke CodeCommit repositori Anda.

**Untuk membuat CodePipeline pipa**

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).

   Buka CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

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**.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan tahap sumber**, di **penyedia Sumber**, pilih **CodeCommit**. Dalam **nama Repositori**, pilih nama CodeCommit repositori yang Anda buat. [Langkah 1: Buat CodeCommit repositori](#codecommit-create-repository) Di **Nama cabang**, pilih`main`, lalu pilih **Langkah berikutnya**.

   Setelah Anda memilih nama repositori dan cabang, pesan akan menampilkan aturan Amazon CloudWatch Events yang akan dibuat untuk pipeline ini. 

   Di bawah **Ubah opsi deteksi**, biarkan default. Hal ini memungkinkan CodePipeline untuk menggunakan Amazon CloudWatch Events untuk mendeteksi perubahan dalam repositori 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**.
**catatan**  
Dalam tutorial ini, Anda menerapkan kode yang tidak memerlukan layanan build, sehingga Anda dapat melewati langkah ini. Namun, jika kode sumber Anda perlu dibangun sebelum diterapkan ke instance, Anda dapat mengonfigurasinya [CodeBuild](https://aws.amazon.com/codebuild/)di langkah ini.

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** Di **Nama aplikasi**, pilih**MyDemoApplication**. Di **grup Deployment**, pilih**MyDemoDeploymentGroup**, lalu pilih **Langkah berikutnya**.

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

1. Pipa mulai berjalan setelah dibuat. Ini mengunduh kode dari CodeCommit repositori Anda dan membuat CodeDeploy penerapan ke instans EC2 Anda. Anda dapat melihat pesan kemajuan dan keberhasilan dan kegagalan saat CodePipeline sampel menyebarkan halaman web ke instans Amazon EC2 dalam penerapan. CodeDeploy   
![\[Tampilan pipeline mulai berjalan di CodePipeline konsol.\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/codepipeline-firstpipeline-codecommit-pol.png)

Selamat\$1 Anda baru saja membuat pipa sederhana di CodePipeline. 

Selanjutnya, Anda memverifikasi hasilnya.

**Untuk memverifikasi bahwa pipeline Anda berhasil berjalan**

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 **Succeeded** ditampilkan untuk status pipeline, di area status untuk tahap **Deploy**, pilih. **CodeDeploy** Ini membuka CodeDeploy konsol. Jika **Berhasil** tidak ditampilkan lihat[Pemecahan masalah CodePipeline](troubleshooting.md).

1.  Pada tab **Deployment**, pilih ID deployment. Pada halaman untuk penerapan, di bawah **peristiwa siklus hidup Deployment**, pilih ID instance. Ini membuka konsol EC2.

1. Pada tab **Deskripsi**, di **DNS Publik**, salin alamat (misalnya,`ec2-192-0-2-1.us-west-2.compute.amazonaws.com`), lalu tempelkan ke bilah alamat browser web Anda.

   Halaman web ditampilkan untuk contoh aplikasi yang Anda unduh dan dorong ke CodeCommit repositori Anda.

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

## Langkah 6: Ubah kode di CodeCommit repositori Anda
<a name="codecommit-push-code"></a>

Pipeline Anda dikonfigurasi untuk berjalan setiap kali perubahan kode dilakukan ke CodeCommit repositori Anda. Pada langkah ini, Anda membuat perubahan pada file HTML yang merupakan bagian dari CodeDeploy aplikasi sampel di CodeCommit repositori. Saat Anda mendorong perubahan ini, pipeline Anda berjalan lagi, dan perubahan yang Anda buat terlihat di alamat web yang Anda akses sebelumnya.

1. Ubah direktori ke repo lokal Anda:

   ```
   (For Linux, macOS, or Unix) cd /tmp/MyDemoRepo
   (For Windows) cd c:\temp\MyDemoRepo
   ```

1. Gunakan editor teks untuk memodifikasi `index.html` file:

   ```
   (For Linux or Unix)gedit index.html
   (For OS X)open –e index.html
   (For Windows)notepad index.html
   ```

1. Merevisi isi `index.html` file untuk mengubah warna latar belakang dan beberapa teks pada halaman web, dan kemudian menyimpan file. 

   ```
   <!DOCTYPE html>
   <html>
   <head>
     <title>Updated Sample Deployment</title>
     <style>
       body {
         color: #000000;
         background-color: #CCFFCC;
         font-family: Arial, sans-serif;  
         font-size:14px;
       }
           
       h1 {
         font-size: 250%;
         font-weight: normal;
         margin-bottom: 0;
       }
       
       h2 {
         font-size: 175%;
         font-weight: normal;
         margin-bottom: 0;
       }
     </style>
   </head>
   <body>
     <div align="center"><h1>Updated Sample Deployment</h1></div>
     <div align="center"><h2>This application was updated using CodePipeline, CodeCommit, and CodeDeploy.</h2></div>
     <div align="center">
       <p>Learn more:</p> 
       <p><a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/">CodePipeline User Guide</a></p>
       <p><a href="https://docs.aws.amazon.com/codecommit/latest/userguide/">CodeCommit User Guide</a></p>
       <p><a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/">CodeDeploy User Guide</a></p>
     </div>
   </body>
   </html>
   ```

1. Komit dan dorong perubahan Anda ke CodeCommit repositori Anda dengan menjalankan perintah berikut, satu per satu:

   ```
   git commit -am "Updated sample application files"
   ```

   ```
   git push
   ```

**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**.** Pengerjaan pipa harus selesai dalam beberapa menit.

1. Setelah **Berhasil** ditampilkan untuk status tindakan, segarkan halaman demo yang Anda akses sebelumnya di browser Anda.

   Halaman web yang diperbarui ditampilkan.

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

Anda dapat menggunakan beberapa sumber daya yang Anda buat dalam tutorial ini untuk tutorial lain dalam panduan ini. Misalnya, Anda dapat menggunakan kembali CodeDeploy aplikasi dan penyebaran. 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, repositori. CodeCommit

**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 [Clean Up Deployment Walkthrough](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-simple-s3alkthrough.html#tutorials-simple-s3alkthrough-clean-up) Resources.

1. Untuk menghapus CodeCommit repositori, ikuti instruksi di [Hapus](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-delete-repository.html) repositori. CodeCommit

## Langkah 8: Bacaan lebih lanjut
<a name="codecommit-optional-tasks"></a>

Pelajari lebih lanjut tentang cara CodePipeline kerja:
+ Untuk informasi selengkapnya tentang tahapan, tindakan, dan cara kerja saluran pipa, lihat[CodePipeline konsep ](concepts.md).
+ Untuk informasi tentang tindakan yang dapat Anda lakukan dengan menggunakan CodePipeline, lihat[Integrasi dengan tipe CodePipeline tindakan](integrations-action-type.md).
+ Coba tutorial yang lebih canggih ini,[Tutorial: Buat pipeline empat tahap](tutorials-four-stage-pipeline.md). Ini menciptakan pipeline multi-tahap yang mencakup langkah yang membangun kode sebelum diterapkan.

# Tutorial: Buat pipeline empat tahap
<a name="tutorials-four-stage-pipeline"></a>

Sekarang setelah Anda membuat pipeline pertama di [Tutorial: Buat pipeline sederhana (ember S3)](tutorials-simple-s3.md) atau[Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md), Anda dapat mulai membuat pipeline yang lebih kompleks. Tutorial ini akan memandu Anda melalui pembuatan pipeline empat tahap yang menggunakan GitHub repositori untuk sumber Anda, server build Jenkins untuk membangun proyek, dan CodeDeploy aplikasi untuk menyebarkan kode yang dibangun ke server pementasan. Diagram berikut menunjukkan pipa tiga tahap awal.

![\[Diagram yang menunjukkan tahap sumber dengan aksi sumber, tahap pembuatan dengan tindakan Jenkins, dan tahap penerapan dengan tindakan penerapan.\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/flow-codepipeline-codecommit-jenkins.png)


Setelah pipeline dibuat, Anda akan mengeditnya untuk menambahkan tahap dengan tindakan pengujian untuk menguji kode, juga menggunakan Jenkins. 

Sebelum Anda dapat membuat pipeline ini, Anda harus mengkonfigurasi sumber daya yang diperlukan. Misalnya, jika Anda ingin menggunakan GitHub repositori untuk kode sumber Anda, Anda harus membuat repositori sebelum Anda dapat menambahkannya ke pipeline. Sebagai bagian dari pengaturan, tutorial ini memandu Anda melalui pengaturan Jenkins pada instance EC2 untuk tujuan demonstrasi. 

**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).

**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.

Sebelum Anda memulai tutorial ini, Anda seharusnya sudah menyelesaikan prasyarat umum di. [Memulai dengan CodePipeline](getting-started-codepipeline.md)

**Topics**
+ [Langkah 1: Prasyarat lengkap](#tutorials-four-stage-pipeline-prerequisites)
+ [Langkah 2: Buat pipeline di CodePipeline](#tutorials-four-stage-pipeline-pipeline-create)
+ [Langkah 3: Tambahkan tahap lain ke pipeline Anda](#tutorials-four-stage-pipeline-add-stage)
+ [Langkah 4: Bersihkan Sumber Daya](#tutorials-four-stage-pipeline-clean-up)

## Langkah 1: Prasyarat lengkap
<a name="tutorials-four-stage-pipeline-prerequisites"></a>

Untuk mengintegrasikan dengan Jenkins, AWS CodePipeline mengharuskan Anda untuk menginstal CodePipeline Plugin untuk Jenkins pada setiap instance Jenkins yang ingin Anda gunakan. CodePipeline Anda juga harus mengonfigurasi pengguna atau peran IAM khusus yang akan digunakan untuk izin antara proyek Jenkins Anda dan. CodePipeline Cara termudah untuk mengintegrasikan Jenkins dan CodePipeline menginstal Jenkins pada instans EC2 yang menggunakan peran instans IAM yang Anda buat untuk integrasi Jenkins. Agar tautan dalam pipeline agar tindakan Jenkins berhasil terhubung, Anda harus mengonfigurasi pengaturan proxy dan firewall di server atau instans EC2 untuk memungkinkan koneksi masuk ke port yang digunakan oleh proyek Jenkins Anda. Pastikan Anda telah mengonfigurasi Jenkins untuk mengautentikasi pengguna dan menerapkan kontrol akses sebelum Anda mengizinkan koneksi pada port tersebut (misalnya, 443 dan 8443 jika Anda telah mengamankan Jenkins untuk hanya menggunakan koneksi HTTPS, atau 80 dan 8080 jika Anda mengizinkan koneksi HTTP). Untuk informasi lebih lanjut, lihat [Mengamankan Jenkins](https://wiki.jenkins.io/display/JENKINS/Securing+Jenkins).

**catatan**  
Tutorial ini menggunakan contoh kode dan mengkonfigurasi langkah-langkah build yang mengonversi sampel dari Haml ke HTML. Anda dapat mengunduh kode sampel sumber terbuka dari GitHub repositori dengan mengikuti langkah-langkahnya. [Salin atau kloning sampel ke dalam repositori GitHub](#tutorials-four-stage-pipeline-prerequisites-github) Anda akan membutuhkan seluruh sampel di GitHub repositori Anda, bukan hanya file.zip.   
Tutorial ini juga mengasumsikan bahwa:  
Anda akrab dengan menginstal dan mengelola Jenkins dan membuat proyek Jenkins.
Anda telah menginstal Rake dan permata Haml untuk Ruby di komputer atau instance yang sama yang meng-host proyek Jenkins Anda.
Anda telah mengatur variabel lingkungan sistem yang diperlukan sehingga perintah Rake dapat dijalankan dari terminal atau baris perintah (misalnya, pada sistem Windows, memodifikasi variabel PATH untuk menyertakan direktori tempat Anda menginstal Rake).

**Topics**
+ [Salin atau kloning sampel ke dalam repositori GitHub](#tutorials-four-stage-pipeline-prerequisites-github)
+ [Buat peran IAM untuk digunakan untuk integrasi Jenkins](#tutorials-four-stage-pipeline-prerequisites-jenkins-iam-role)
+ [Instal dan konfigurasikan Jenkins dan CodePipeline Plugin untuk Jenkins](#tutorials-four-stage-pipeline-prerequisites-jenkins-configure)

### Salin atau kloning sampel ke dalam repositori GitHub
<a name="tutorials-four-stage-pipeline-prerequisites-github"></a>

**Untuk mengkloning sampel dan mendorong ke repositori GitHub**

1. Unduh kode sampel dari GitHub repositori, atau kloning repositori ke komputer lokal Anda. Ada dua paket sampel: 
   + [Jika Anda akan menerapkan sampel Anda ke instans Amazon Linux, RHEL, atau Ubuntu Server, pilih \$1linux.zip. codepipeline-jenkins-aws-codedeploy](https://github.com/awslabs/aws-codepipeline-jenkins-aws-codedeploy_linux) 
   + Jika Anda akan menerapkan sampel Anda ke instance Windows Server, pilih [CodePipeline-Jenkins- .zip](https://github.com/awslabs/AWSCodePipeline-Jenkins-AWSCodeDeploy_windows). AWSCodeDeploy\$1Windows

1. Dari repositori, pilih **Fork** untuk mengkloning repo sampel menjadi repo di akun Github Anda. Lihat informasi yang lebih lengkap dalam [dokumentasi GitHub](https://help.github.com/articles/create-a-repo/).

### Buat peran IAM untuk digunakan untuk integrasi Jenkins
<a name="tutorials-four-stage-pipeline-prerequisites-jenkins-iam-role"></a>

Sebagai praktik terbaik, pertimbangkan untuk meluncurkan instans EC2 untuk meng-host server Jenkins Anda dan menggunakan peran IAM untuk memberikan instance izin yang diperlukan untuk berinteraksi dengannya. CodePipeline

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di konsol IAM, di panel navigasi, pilih **Peran, lalu pilih **Buat** peran**.

1. Di bawah **Pilih jenis entitas tepercaya**, pilih **Layanan AWS**. Di bawah **Pilih layanan yang akan menggunakan peran ini**, pilih **EC2**. Di bawah **Pilih kasus penggunaan Anda**, pilih **EC2**. 

1. Pilih **Berikutnya: Izin**. Pada halaman **Lampirkan kebijakan izin**, pilih kebijakan `AWSCodePipelineCustomActionAccess` terkelola, lalu pilih **Berikutnya: Tag**. Pilih **Berikutnya: Tinjauan**.

1. Pada halaman **Tinjauan**, dalam **nama Peran**, masukkan nama peran yang akan dibuat khusus untuk integrasi Jenkins (misalnya,*JenkinsAccess*), lalu pilih **Buat peran**.

Saat Anda membuat instans EC2 di mana Anda akan menginstal Jenkins, di **Langkah 3: Konfigurasikan Detail Instance**, pastikan Anda memilih peran instance (misalnya,*JenkinsAccess*).

[Untuk informasi selengkapnya tentang peran instans dan Amazon EC2, lihat [peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html), [Menggunakan Peran IAM untuk Memberikan Izin ke Aplikasi yang Berjalan di Instans Amazon EC2, dan Membuat peran untuk mendelegasikan](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-ec2instance.html) izin ke. Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-creatingrole-service.html)

### Instal dan konfigurasikan Jenkins dan CodePipeline Plugin untuk Jenkins
<a name="tutorials-four-stage-pipeline-prerequisites-jenkins-configure"></a>

**Untuk menginstal Jenkins dan CodePipeline Plugin untuk Jenkins**

1. Buat instans EC2 tempat Anda akan menginstal Jenkins, dan di **Langkah 3: Konfigurasikan Detail Instance**, pastikan Anda memilih peran instans yang Anda buat (misalnya,*JenkinsAccess*). Untuk informasi selengkapnya tentang membuat instans EC2, lihat [Meluncurkan instans Amazon EC2 di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance_linux.html) Pengguna Amazon *EC2*. 
**catatan**  
Jika Anda sudah memiliki sumber daya Jenkins yang ingin Anda gunakan, Anda dapat melakukannya, tetapi Anda harus membuat pengguna IAM khusus, menerapkan kebijakan `AWSCodePipelineCustomActionAccess` terkelola ke pengguna itu, dan kemudian mengonfigurasi dan menggunakan kredensil akses untuk pengguna tersebut di sumber daya Jenkins Anda. Jika Anda ingin menggunakan UI Jenkins untuk menyediakan kredensialnya, konfigurasikan Jenkins agar hanya mengizinkan HTTPS. Untuk informasi selengkapnya, lihat [Pemecahan masalah CodePipeline](troubleshooting.md).

1. Instal Jenkins pada instans EC2. Untuk informasi lebih lanjut, lihat dokumentasi Jenkins untuk [menginstal Jenkins](https://www.jenkins.io/doc/book/installing/linux/) dan [memulai dan mengakses Jenkins](https://wiki.jenkins.io/JENKINS/Starting-and-Accessing-Jenkins.html), serta di. [details of integration with Jenkins](integrations-action-type.md#JenkinsInt_2) [Integrasi produk dan layanan dengan CodePipeline](integrations.md)

1. Luncurkan Jenkins, dan di halaman beranda, pilih **Kelola Jenkins**.

1. Pada halaman **Kelola Jenkins**, pilih **Kelola Plugin**.

1. Pilih tab **Tersedia**, dan di kotak pencarian **Filter**, masukkan**AWS CodePipeline**. Pilih **CodePipeline Plugin untuk Jenkins** dari daftar dan pilih **Unduh sekarang dan instal setelah restart**.

1. Pada halaman **Instalasi Plugin/Upgrade**, pilih **Restart Jenkins ketika instalasi selesai dan tidak ada pekerjaan yang berjalan**.

1. Pilih **Kembali ke Dasbor**.

1. Di halaman utama, pilih **Item Baru**.

1. Di **Nama Item**, masukkan nama untuk proyek Jenkins (misalnya,*MyDemoProject*). **Pilih **Freestyle project**, lalu pilih OK.**
**catatan**  
Pastikan bahwa nama untuk proyek Anda memenuhi persyaratan untuk CodePipeline. Untuk informasi selengkapnya, lihat [Kuota di AWS CodePipeline](limits.md).

1. Pada halaman konfigurasi untuk proyek, pilih kotak centang **Execute concurrent build jika perlu**. Di **Manajemen Kode Sumber**, pilih **AWS CodePipeline**. Jika Anda telah menginstal Jenkins pada instans EC2 dan mengonfigurasi AWS CLI dengan profil untuk pengguna IAM yang Anda buat untuk integrasi antara CodePipeline dan Jenkins, biarkan semua bidang lainnya kosong.

1. Pilih **Advanced**, dan di **Provider**, masukkan nama untuk penyedia tindakan seperti yang akan muncul di CodePipeline (misalnya,*MyJenkinsProviderName*). Pastikan nama ini unik dan mudah diingat. Anda akan menggunakannya ketika Anda menambahkan tindakan build ke pipeline Anda nanti dalam tutorial ini, dan lagi ketika Anda menambahkan tindakan pengujian.
**catatan**  
Nama tindakan ini harus memenuhi persyaratan penamaan untuk tindakan di CodePipeline. Untuk informasi selengkapnya, lihat [Kuota di AWS CodePipeline](limits.md).

1. Di **Build Triggers**, kosongkan kotak centang apa pun, lalu pilih **Poll SCM**. Dalam **Jadwal**, masukkan lima tanda bintang yang dipisahkan oleh spasi, sebagai berikut:

   ```
   * * * * *
   ```

   Jajak pendapat ini dilakukan CodePipeline setiap menit. 

1. Di **Build**, pilih **Add build step**. Pilih **Execute shell** (Amazon Linux, RHEL, atau Ubuntu Server) **Jalankan perintah batch** (Windows Server), lalu masukkan yang berikut ini:

   ```
   rake
   ```
**catatan**  
Pastikan lingkungan Anda dikonfigurasi dengan variabel dan pengaturan yang diperlukan untuk menjalankan rake; jika tidak, build akan gagal.

1. Pilih **Add post-build action**, lalu pilih **AWS CodePipeline Publisher**. Pilih **Tambah**, dan di **Build Output Locations**, biarkan lokasi kosong. Konfigurasi ini adalah default. Ini akan membuat file terkompresi di akhir proses pembuatan.

1. Pilih **Simpan** untuk menyimpan proyek Jenkins Anda.

## Langkah 2: Buat pipeline di CodePipeline
<a name="tutorials-four-stage-pipeline-pipeline-create"></a>

Di bagian tutorial ini, Anda membuat pipeline menggunakan wizard **Create Pipeline**. 

**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. Jika perlu, gunakan pemilih Wilayah untuk mengubah Wilayah ke wilayah tempat sumber daya pipa Anda berada. Misalnya, jika Anda membuat sumber daya untuk tutorial sebelumnya di`us-east-2`, pastikan pemilih Region diatur ke US East (Ohio).

   Untuk informasi selengkapnya tentang Wilayah dan titik akhir yang tersedia CodePipeline, lihat [AWS CodePipeline titik akhir dan](https://docs.aws.amazon.com/general/latest/gr/codepipeline.html) kuota.

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 halaman pengaturan pipeline**, dalam **nama Pipeline**, masukkan nama untuk pipeline Anda.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, di **penyedia Sumber**, pilih **GitHub**.

1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

1. Pada **Langkah 4: Tambahkan tahap build**, pilih **Add Jenkins**. Di **nama Provider**, masukkan nama tindakan yang Anda berikan di CodePipeline Plugin untuk Jenkins (misalnya*MyJenkinsProviderName*). Nama ini harus sama persis dengan nama di CodePipeline Plugin untuk Jenkins. Di **URL Server**, masukkan URL instance EC2 tempat Jenkins diinstal. Dalam **nama Proyek**, masukkan nama proyek yang Anda buat di Jenkins, seperti*MyDemoProject*, dan kemudian 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**, gunakan kembali grup CodeDeploy aplikasi dan penyebaran yang Anda buat. [Tutorial: Buat pipeline sederhana (ember S3)](tutorials-simple-s3.md) Di **Penyedia Deploy**, pilih **CodeDeploy**. Di **Nama aplikasi****CodePipelineDemoApplication**, masukkan, atau pilih tombol refresh, lalu pilih nama aplikasi dari daftar. Di **grup Deployment****CodePipelineDemoFleet**, masukkan, atau pilih dari daftar, lalu pilih **Berikutnya**.
**catatan**  
Anda dapat menggunakan CodeDeploy sumber daya Anda sendiri atau membuat yang baru, tetapi Anda mungkin dikenakan biaya tambahan.

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

1. Pipa secara otomatis memulai dan menjalankan sampel melalui pipa. Anda dapat melihat pesan kemajuan dan keberhasilan dan kegagalan saat pipeline membangun sampel Haml ke HTML dan menerapkannya sebagai halaman web ke setiap instans Amazon EC2 dalam penerapan. CodeDeploy

## Langkah 3: Tambahkan tahap lain ke pipeline Anda
<a name="tutorials-four-stage-pipeline-add-stage"></a>

Sekarang Anda akan menambahkan tahap pengujian dan kemudian tindakan pengujian ke tahap yang menggunakan tes Jenkins yang disertakan dalam sampel untuk menentukan apakah halaman web memiliki konten apa pun. Tes ini hanya untuk tujuan demonstrasi.

**catatan**  
Jika Anda tidak ingin menambahkan tahap lain ke pipeline, Anda dapat menambahkan tindakan pengujian ke tahap Pementasan pipeline, sebelum atau sesudah tindakan penerapan.

### Tambahkan tahap pengujian ke pipeline Anda
<a name="tutorials-four-stage-pipeline-add-stage-console"></a>

**Topics**
+ [Cari alamat IP dari sebuah instans](#tutorials-four-stage-pipeline-instance-ip-lookup)
+ [Buat proyek Jenkins untuk menguji penerapan](#tutorials-four-stage-pipeline-create-jenkins-project)
+ [Buat tahap keempat](#tutorials-four-stage-pipeline-create-fourth-stage)

#### Cari alamat IP dari sebuah instans
<a name="tutorials-four-stage-pipeline-instance-ip-lookup"></a>

**Untuk memverifikasi alamat IP dari sebuah instance tempat Anda menerapkan kode**

1. **Setelah **Berhasil** ditampilkan untuk status pipeline, di area status untuk tahap Pementasan, pilih Detail.** 

1. Di bagian **Detail Deployment**, di **ID Instance**, pilih ID instans dari salah satu instance yang berhasil diterapkan. 

1. Salin alamat IP instance (misalnya,*192.168.0.4*). Anda akan menggunakan alamat IP ini dalam tes Jenkins Anda.

#### Buat proyek Jenkins untuk menguji penerapan
<a name="tutorials-four-stage-pipeline-create-jenkins-project"></a>

**Untuk membuat proyek Jenkins**

1. Pada contoh di mana Anda menginstal Jenkins, buka Jenkins dan dari halaman utama, pilih Item **Baru**.

1.  Di **Nama Item**, masukkan nama untuk proyek Jenkins (misalnya,*MyTestProject*). **Pilih **Freestyle project**, lalu pilih OK.**
**catatan**  
Pastikan bahwa nama untuk proyek Anda memenuhi CodePipeline persyaratan. Untuk informasi selengkapnya, lihat [Kuota di AWS CodePipeline](limits.md).

1. Pada halaman konfigurasi untuk proyek, pilih kotak centang **Execute concurrent build jika perlu**. Di **Manajemen Kode Sumber**, pilih **AWS CodePipeline**. Jika Anda telah menginstal Jenkins pada instans EC2 dan mengkonfigurasi AWS CLI dengan profil untuk pengguna IAM yang Anda buat untuk integrasi antara CodePipeline dan Jenkins, biarkan semua bidang lainnya kosong. 
**penting**  
Jika Anda mengonfigurasi proyek Jenkins dan tidak diinstal pada instans Amazon EC2, atau diinstal pada instans EC2 yang menjalankan sistem operasi Windows, lengkapi bidang seperti yang dipersyaratkan oleh host proxy dan pengaturan port Anda, dan berikan kredensi pengguna IAM atau peran yang Anda konfigurasikan untuk integrasi antara Jenkins dan. CodePipeline

1. Pilih **Advanced**, dan di **Kategori**, pilih **Test**. 

1. Di **Provider**, masukkan nama yang sama dengan yang Anda gunakan untuk proyek build (misalnya,*MyJenkinsProviderName*). Anda akan menggunakan nama ini ketika Anda menambahkan tindakan pengujian ke pipeline Anda nanti dalam tutorial ini.
**catatan**  
Nama ini harus memenuhi persyaratan CodePipeline penamaan untuk tindakan. Untuk informasi selengkapnya, lihat [Kuota di AWS CodePipeline](limits.md).

1. Di **Build Triggers**, kosongkan kotak centang apa pun, lalu pilih **Poll SCM**. Dalam **Jadwal**, masukkan lima tanda bintang yang dipisahkan oleh spasi, sebagai berikut:

   ```
   * * * * *
   ```

   Jajak pendapat ini dilakukan CodePipeline setiap menit. 

1. Di **Build**, pilih **Add build step**. **Jika Anda menggunakan instance Amazon Linux, RHEL, atau Ubuntu Server, pilih Execute shell.** Kemudian masukkan yang berikut ini, di mana alamat IP adalah alamat instans EC2 yang Anda salin sebelumnya:

   ```
   TEST_IP_ADDRESS=192.168.0.4 rake test
   ```

   Jika Anda menyebarkan ke instance Windows Server, pilih **Jalankan perintah batch**, lalu masukkan yang berikut ini, di mana alamat IP adalah alamat instans EC2 yang Anda salin sebelumnya:

   ```
   set TEST_IP_ADDRESS=192.168.0.4 rake test
   ```
**catatan**  
Tes ini mengasumsikan port default 80. Jika Anda ingin menentukan port yang berbeda, tambahkan pernyataan port uji, sebagai berikut:   

   ```
   TEST_IP_ADDRESS=192.168.0.4 TEST_PORT=8000 rake test
   ```

1. Pilih **Add post-build action**, lalu pilih **AWS CodePipeline Publisher**. Jangan pilih **Tambah**.

1. Pilih **Simpan** untuk menyimpan proyek Jenkins Anda.

#### Buat tahap keempat
<a name="tutorials-four-stage-pipeline-create-fourth-stage"></a>

**Untuk menambahkan panggung ke pipeline Anda yang mencakup tindakan uji Jenkins**

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, MySecondPipeline. 

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

1. Pada halaman **Edit**, pilih **\$1 Stage** untuk menambahkan stage segera setelah tahap Build. 

1. Di bidang nama untuk tahap baru, masukkan nama (misalnya,**Testing**), lalu pilih **\$1 Tambahkan grup tindakan**. 

1. Dalam **nama Action**, masukkan*MyJenkinsTest-Action*. Di **Penyedia uji**, pilih nama penyedia yang Anda tentukan di Jenkins (misalnya,*MyJenkinsProviderName*). Dalam **nama Proyek**, masukkan nama proyek yang Anda buat di Jenkins (misalnya,*MyTestProject*). **Di **artefak Input**, pilih artefak dari build Jenkins yang nama defaultnya*BuildArtifact*, lalu pilih Selesai.**
**catatan**  
Karena tindakan pengujian Jenkins beroperasi pada aplikasi yang dibangun pada langkah pembuatan Jenkins, gunakan artefak build untuk artefak input ke tindakan pengujian.

   Untuk informasi lebih lanjut tentang artefak input dan output dan struktur pipa, lihat. [CodePipeline referensi struktur pipa](reference-pipeline-structure.md)

1. Pada halaman **Edit**, pilih **Simpan perubahan pipeline**. Dalam kotak dialog **Simpan perubahan pipeline**, pilih **Simpan dan lanjutkan**.

1. Meskipun tahap baru telah ditambahkan ke pipeline Anda, status **Tidak ada eksekusi belum** ditampilkan untuk tahap itu karena tidak ada perubahan yang memicu proses pipeline lainnya. Untuk menjalankan sampel melalui pipeline yang direvisi, pada halaman detail pipeline, pilih **Rilis perubahan**. 

   Tampilan pipeline menunjukkan tahapan dan tindakan dalam pipeline Anda dan status revisi yang berjalan melalui empat tahap tersebut. Waktu yang dibutuhkan pipa untuk berjalan melalui semua tahapan akan tergantung pada ukuran artefak, kompleksitas tindakan pembuatan dan pengujian Anda, dan faktor lainnya. 

## Langkah 4: Bersihkan Sumber Daya
<a name="tutorials-four-stage-pipeline-clean-up"></a>

Setelah Anda menyelesaikan tutorial ini, Anda harus menghapus pipeline dan sumber daya yang digunakannya sehingga Anda tidak akan dikenakan biaya untuk terus menggunakan sumber daya tersebut. Jika Anda tidak berniat untuk terus menggunakan CodePipeline, hapus pipeline, lalu CodeDeploy aplikasi dan instans Amazon EC2 yang terkait, dan terakhir, ember Amazon S3 digunakan untuk menyimpan artefak. Anda juga harus mempertimbangkan apakah akan menghapus sumber daya lain, seperti GitHub repositori, jika Anda tidak berniat untuk terus menggunakannya.

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

1. Buka sesi terminal di Linux, macOS, atau mesin Unix lokal Anda, atau prompt perintah di mesin Windows lokal Anda, dan jalankan **delete-pipeline** perintah untuk menghapus pipeline yang Anda buat. Untuk**MySecondPipeline**, Anda akan memasukkan perintah berikut: 

   ```
   aws codepipeline delete-pipeline --name "MySecondPipeline"
   ```

   Perintah ini tidak mengembalikan apa pun.

1. Untuk membersihkan CodeDeploy sumber daya Anda, ikuti petunjuk di [Cleaning Up](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-walkthrough.html#getting-started-walkthrough-clean-up).

1. Untuk membersihkan sumber daya instans Anda, hapus instans EC2 tempat Anda menginstal Jenkins. Untuk informasi lebih lanjut, lihat [Membersihkan instans Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-clean-up-your-instance.html).

1. Jika Anda tidak bermaksud membuat lebih banyak saluran pipa atau menggunakan CodePipeline lagi, hapus bucket Amazon S3 yang digunakan untuk menyimpan artefak untuk pipeline Anda. Untuk menghapus ember, ikuti petunjuk di [Menghapus ember](https://docs.aws.amazon.com/AmazonS3/latest/UG/DeletingaBucket.html).

1. Jika Anda tidak berniat menggunakan sumber daya lain untuk pipeline ini lagi, pertimbangkan untuk menghapusnya dengan mengikuti panduan untuk sumber daya tertentu. Misalnya, jika Anda ingin menghapus GitHub repositori, ikuti instruksi di [Menghapus repositori di situs](https://help.github.com/articles/deleting-a-repository/) web. GitHub 

# Tutorial: Menyiapkan aturan CloudWatch Acara untuk menerima pemberitahuan email untuk perubahan status pipeline
<a name="tutorials-cloudwatch-sns-notifications"></a>

Setelah menyiapkan pipeline AWS CodePipeline, Anda dapat menyiapkan aturan CloudWatch Acara untuk mengirim notifikasi setiap kali ada perubahan pada status eksekusi pipeline Anda, atau dalam tahapan atau tindakan di pipeline Anda. Untuk informasi selengkapnya tentang penggunaan CloudWatch Acara untuk mengatur notifikasi perubahan status pipeline, lihat[Memantau CodePipeline peristiwa](detect-state-changes-cloudwatch-events.md).

Dalam tutorial ini, Anda mengonfigurasi notifikasi untuk mengirim email saat status pipeline berubah menjadi GAGAL. Tutorial ini menggunakan metode transformator masukan saat membuat aturan CloudWatch Events. Ini mengubah rincian skema pesan untuk menyampaikan pesan dalam teks yang dapat dibaca manusia.

**catatan**  
Saat Anda membuat sumber daya untuk tutorial ini, seperti notifikasi Amazon SNS dan aturan CloudWatch Acara, pastikan sumber daya dibuat di AWS Wilayah yang sama dengan pipeline Anda.

**Topics**
+ [Langkah 1: Siapkan notifikasi email menggunakan Amazon SNS](#create-filter-for-target)
+ [Langkah 2: Buat aturan dan tambahkan topik SNS sebagai target](#create-notification-rule)
+ [Langkah 3: Bersihkan Sumber Daya](#notifications-clean-up-resources)

## Langkah 1: Siapkan notifikasi email menggunakan Amazon SNS
<a name="create-filter-for-target"></a>

Amazon SNS mengoordinasikan penggunaan topik untuk mengirimkan pesan ke titik akhir atau klien berlangganan. Gunakan Amazon SNS untuk membuat topik notifikasi dan kemudian berlangganan topik menggunakan alamat email Anda. Topik Amazon SNS akan ditambahkan sebagai target ke aturan CloudWatch Acara Anda. Untuk informasi lebih lanjut, lihat [Panduan Developer Layanan Notifikasi Sederhana Amazon](https://docs.aws.amazon.com/sns/latest/dg/).

Buat atau identifikasi topik di Amazon SNS. CodePipeline akan menggunakan CloudWatch Acara untuk mengirim pemberitahuan ke topik ini melalui Amazon SNS. Untuk membuat topik:

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

1. Pilih **Buat topik**. 

1. Dalam kotak dialog **Buat topik baru**, untuk **nama Topik**, ketikkan nama untuk topik (misalnya,**PipelineNotificationTopic**).   
![\[Buat topik notifikasi menggunakan Amazon SNS.\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/tutorial-SNS-topic.png)

1. Pilih **Buat topik**.

   Untuk informasi selengkapnya, lihat [Membuat Topik](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) di Panduan *Pengembang Amazon SNS*.

Berlangganan satu atau beberapa penerima ke topik untuk menerima pemberitahuan email. Untuk berlangganan penerima ke suatu topik:

1. Di konsol Amazon SNS, dari daftar **Topik**, pilih kotak centang di sebelah topik baru Anda. Pilih **Tindakan, Berlangganan topik**.

1. Di kotak dialog **Buat langganan**, verifikasi bahwa ARN muncul di Topik **ARN**.

1. Untuk **Protokol**, pilih **Email**.

1. Untuk **Endpoint**, ketik alamat email lengkap penerima.

1. Pilih **Buat Langganan**.

1. Amazon SNS mengirimkan email konfirmasi berlangganan ke penerima. Untuk menerima pemberitahuan email, penerima harus memilih tautan **Konfirmasi langganan** di email ini. Setelah penerima mengklik tautan, jika berhasil berlangganan, Amazon SNS menampilkan pesan konfirmasi di browser web penerima.

   Untuk informasi selengkapnya, lihat [Berlangganan Topik](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html) di Panduan *Pengembang Amazon SNS*.

## Langkah 2: Buat aturan dan tambahkan topik SNS sebagai target
<a name="create-notification-rule"></a>

Buat aturan pemberitahuan CloudWatch Acara dengan CodePipeline sebagai sumber acara.

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

1. Di panel navigasi, pilih **Peristiwa**.

1. Pilih **Buat aturan**. Di bawah **Sumber acara**, pilih **AWS CodePipeline**. Untuk **Jenis Peristiwa**, pilih **Perubahan Status Eksekusi Pipeline**.

1. Pilih **Status spesifik**, dan pilih**FAILED**.

1. Pilih **Edit** untuk membuka editor JSON untuk panel **Pratinjau Pola Acara**. Tambahkan **pipeline** parameter dengan nama pipeline Anda seperti yang ditunjukkan pada contoh berikut untuk pipeline bernama “MyPipeline.”

   Anda dapat menyalin pola acara di sini dan menempelkannya ke konsol:

   ```
   {
     "source": [
       "aws.codepipeline"
     ],
     "detail-type": [
       "CodePipeline Pipeline Execution State Change"
     ],
     "detail": {
       "state": [
         "FAILED"
       ],
       "pipeline": [
         "myPipeline"
       ]
     }
   }
   ```

1. Untuk **Targets** (Target), pilih **Add target** (Tambahkan target). 

1. Dalam daftar target, pilih **topik SNS**. Untuk **Topik**, masukkan topik yang Anda buat.

1. Perluas **Konfigurasi input**, lalu pilih **Input Transformer**. 

1. Dalam kotak **Input Path**, ketik pasangan kunci-nilai berikut.

   ```
   { "pipeline" : "$.detail.pipeline" }
   ```

   Dalam kotak **Template Input**, ketik berikut ini: 

   ```
   "The Pipeline <pipeline> has failed."
   ```

1. Pilih **Konfigurasikan detail**.

1. Pada halaman **Konfigurasi detail aturan**, ketikkan nama dan deskripsi opsional. Untuk **Status**, biarkan kotak **Diaktifkan** dipilih.

1. Pilih **Buat aturan**. 

1. Konfirmasikan bahwa CodePipeline sekarang mengirim pemberitahuan build. Misalnya, periksa untuk melihat apakah email pemberitahuan build sekarang ada di kotak masuk Anda.

1. Untuk mengubah perilaku aturan, di CloudWatch konsol, pilih aturan, lalu pilih **Tindakan**, **Edit**. Edit aturan, pilih **Konfigurasikan detail**, lalu pilih **Perbarui aturan**.

   Untuk berhenti menggunakan aturan untuk mengirim pemberitahuan build, di CloudWatch konsol, pilih aturan, lalu pilih **Tindakan**, **Nonaktifkan**.

   Untuk menghapus aturan, di CloudWatch konsol, pilih aturan, lalu pilih **Tindakan**, **Hapus**.

## Langkah 3: Bersihkan Sumber Daya
<a name="notifications-clean-up-resources"></a>

Setelah Anda menyelesaikan tutorial ini, Anda harus menghapus pipeline dan sumber daya yang digunakannya sehingga Anda tidak akan dikenakan biaya untuk terus menggunakan sumber daya tersebut. 

Untuk informasi tentang cara membersihkan notifikasi SNS dan menghapus aturan Amazon CloudWatch Events, lihat [Membersihkan (Berhenti berlangganan dari Topik Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/CleanUp.html)) dan referensi `DeleteRule` di Referensi API Acara [ CloudWatch Amazon](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/).

# Tutorial: Membuat pipeline yang membangun dan menguji aplikasi Android Anda AWS Device Farm
<a name="tutorials-codebuild-devicefarm"></a>

Anda dapat menggunakannya AWS CodePipeline untuk mengonfigurasi alur integrasi berkelanjutan di mana aplikasi Anda dibuat dan diuji setiap kali komit didorong. Tutorial ini menunjukkan cara membuat dan mengonfigurasi pipeline untuk membangun dan menguji aplikasi Android Anda dengan kode sumber di GitHub repositori. Pipeline mendeteksi kedatangan GitHub komit baru dan kemudian digunakan [CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)untuk membangun aplikasi dan [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) untuk mengujinya.

**penting**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 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.

**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).

Anda dapat mencobanya menggunakan aplikasi Android dan definisi pengujian yang ada, atau Anda dapat menggunakan [aplikasi sampel dan definisi pengujian yang disediakan oleh Device Farm](https://github.com/aws-samples/aws-device-farm-sample-app-for-android).

**Sebelum Anda memulai**

1. Masuk ke AWS Device Farm konsol dan pilih **Buat proyek baru**.

1. Pilih proyek Anda. Di browser, salin URL proyek baru Anda. URL berisi ID proyek. 

1. Salin dan simpan ID proyek ini. Anda menggunakannya saat Anda membuat pipeline di CodePipeline.

   Berikut adalah contoh URL untuk sebuah proyek. Untuk mengekstrak ID proyek, salin nilainya setelahnya`projects/`. Dalam contoh ini, ID proyek adalah`eec4905f-98f8-40aa-9afc-4c1cfexample`.

   ```
   https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
   ```

## Konfigurasikan CodePipeline untuk menggunakan pengujian Device Farm
<a name="codepipeline-configure-tests"></a>

1. 

   Tambahkan dan komit file yang dipanggil [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)di root kode aplikasi Anda, dan dorong ke repositori Anda. CodeBuild menggunakan file ini untuk menjalankan perintah dan mengakses artefak yang diperlukan untuk membangun aplikasi Anda.

   ```
   version: 0.2
   
   phases:
     build:
       commands:
         - chmod +x ./gradlew
         - ./gradlew assembleDebug
   artifacts:
     files:
        - './android/app/build/outputs/**/*.apk'
     discard-paths: yes
   ```

1. (Opsional) Jika Anda [menggunakan Calabash atau Appium untuk menguji aplikasi Anda](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types-intro.html), tambahkan file definisi pengujian ke repositori Anda. Pada langkah selanjutnya, Anda dapat mengonfigurasi Device Farm untuk menggunakan definisi untuk menjalankan rangkaian pengujian Anda. 

   Jika Anda menggunakan pengujian bawaan Device Farm, Anda dapat melewati langkah ini.

1. Untuk membuat pipeline dan menambahkan tahap sumber, lakukan hal berikut:

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

   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 halaman pengaturan pipeline**, dalam **nama Pipeline**, masukkan nama untuk pipeline Anda.

   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**, biarkan **peran layanan baru** dipilih, dan biarkan **nama Peran** tidak berubah. Anda juga dapat memilih untuk menggunakan peran layanan yang ada, jika Anda memilikinya.
**catatan**  
Jika Anda menggunakan peran CodePipeline layanan yang dibuat sebelum Juli 2018, Anda perlu menambahkan izin untuk Device Farm. Untuk melakukannya, buka konsol IAM, temukan peran, lalu tambahkan izin berikut ke kebijakan peran. Untuk informasi selengkapnya, lihat [Menambahkan izin ke peran CodePipeline layanan](how-to-custom-role.md#how-to-update-role-new-services).  

      ```
      {
           "Effect": "Allow",
           "Action": [
              "devicefarm:ListProjects",
              "devicefarm:ListDevicePools",
              "devicefarm:GetRun",
              "devicefarm:GetUpload",
              "devicefarm:CreateUpload",
              "devicefarm:ScheduleRun"
           ],
           "Resource": "*"
      }
      ```

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

   1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Di **Repositori**, pilih repositori sumber.

   1. Di **Branch**, pilih cabang yang ingin Anda gunakan.

   1. Biarkan default yang tersisa untuk tindakan sumber. Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, tambahkan tahap build:

   1. Di **Penyedia build**, pilih **Penyedia build lain**, lalu pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

      CodeBuild menggunakan image OS ini, yang telah menginstal Android Studio, untuk membangun aplikasi Anda.

   1. Untuk **peran Layanan**, pilih peran CodeBuild layanan yang ada atau buat yang baru.

   1. Untuk **spesifikasi Build**, pilih **Gunakan file buildspec**.

   1. Pilih **Lanjutkan ke CodePipeline**. Ini kembali ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan `buildspec.yml` di repositori Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

1. Pada **Langkah 7: Tinjau**, pilih **Buat pipeline**. Anda akan melihat diagram yang menunjukkan sumber dan tahap build.

1. Tambahkan tindakan pengujian Device Farm ke pipeline Anda:

   1. Di kanan atas, pilih **Edit**.

   1. Di bagian bawah diagram, pilih **\$1 Tambahkan tahap**. Dalam **nama Panggung**, masukkan nama, seperti**Test**.

   1. Pilih **\$1 Tambahkan grup tindakan**.

   1. Di **Nama tindakan**, masukkan nama. 

   1. Di **penyedia Action**, pilih **AWS Device Farm**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Dalam **artefak Input**, pilih artefak input yang cocok dengan artefak keluaran dari tahap yang datang sebelum tahap pengujian, seperti. `BuildArtifact` 

      Di AWS CodePipeline konsol, Anda dapat menemukan nama artefak keluaran untuk setiap tahap dengan mengarahkan kursor ke ikon informasi di diagram pipa. Jika pipeline menguji aplikasi langsung dari tahap **Sumber**, pilih **SourceArtifact**. Jika pipeline menyertakan tahap **Build**, pilih **BuildArtifact**.

   1. Masuk **ProjectId**, masukkan ID proyek Device Farm Anda. Gunakan langkah-langkah di awal tutorial ini untuk mengambil ID proyek Anda.

   1. Masuk **DevicePoolArn**, masukkan ARN untuk kumpulan perangkat. Untuk mendapatkan kumpulan perangkat yang tersedia ARNs untuk proyek, termasuk ARN untuk Perangkat Teratas, gunakan AWS CLI untuk memasukkan perintah berikut: 

      ```
      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
      ```

   1. Masuk **AppType**, masukkan **Android**.

      Berikut ini adalah daftar nilai yang valid untuk **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. Di **App**, masukkan jalur paket aplikasi yang dikompilasi. Jalur relatif terhadap akar artefak input untuk tahap pengujian. Biasanya, jalur ini mirip dengan`app-release.apk`.

   1. Masuk **TestType**, masukkan jenis pengujian Anda, lalu di **Uji**, masukkan jalur file definisi pengujian. Jalur relatif terhadap akar artefak input untuk pengujian Anda.

      Berikut ini adalah daftar nilai yang valid untuk **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1NODE**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **BUILTIN\$1FUZZ**
      + **INSTRUMENTASI**
      + **XCTEST**
      + **XCTEST\$1UI**
**catatan**  
Node lingkungan khusus tidak didukung.

   1. Di bidang yang tersisa, berikan konfigurasi yang sesuai untuk pengujian dan jenis aplikasi Anda.

   1. (Opsional) Di **Advanced**, berikan informasi konfigurasi untuk uji coba Anda.

   1. Pilih **Simpan**.

   1. Di panggung yang Anda edit, pilih **Selesai**. Di AWS CodePipeline panel, pilih **Simpan**, lalu pilih **Simpan** pada pesan peringatan.

   1. Untuk mengirimkan perubahan dan memulai pembuatan pipeline, pilih **Rilis perubahan**, lalu pilih **Rilis**.

# Tutorial: Buat pipeline yang menguji aplikasi iOS Anda AWS Device Farm
<a name="tutorials-codebuild-devicefarm-S3"></a>

 Anda dapat menggunakannya AWS CodePipeline untuk dengan mudah mengonfigurasi alur integrasi berkelanjutan di mana aplikasi Anda diuji setiap kali bucket sumber berubah. Tutorial ini menunjukkan cara membuat dan mengonfigurasi pipeline untuk menguji aplikasi iOS bawaan Anda dari bucket S3. Pipeline mendeteksi kedatangan perubahan yang disimpan melalui Amazon CloudWatch Events, dan kemudian menggunakan [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) untuk menguji aplikasi yang dibuat. 

**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.

**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).

Anda dapat mencobanya menggunakan aplikasi iOS yang ada, atau Anda dapat menggunakan [contoh aplikasi iOS](samples/s3-ios-test-1.zip).

**Sebelum Anda memulai**

1. Masuk ke AWS Device Farm konsol dan pilih **Buat proyek baru**.

1. Pilih proyek Anda. Di browser, salin URL proyek baru Anda. URL berisi ID proyek.

1. Salin dan simpan ID proyek ini. Anda menggunakannya saat Anda membuat pipeline di CodePipeline.

   Berikut adalah contoh URL untuk sebuah proyek. Untuk mengekstrak ID proyek, salin nilainya setelahnya`projects/`. Dalam contoh ini, ID proyek adalah`eec4905f-98f8-40aa-9afc-4c1cfexample`.

   ```
   https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
   ```

## Konfigurasikan CodePipeline untuk menggunakan pengujian Device Farm Anda (contoh Amazon S3)
<a name="codepipeline-configure-tests-S3"></a>

1. Buat atau gunakan bucket S3 dengan versi diaktifkan. Ikuti instruksi [Langkah 1: Buat bucket sumber S3 untuk aplikasi Anda](tutorials-simple-s3.md#s3-create-s3-bucket) untuk membuat ember S3.

1. Di konsol Amazon S3 untuk bucket Anda, pilih **Unggah**, dan ikuti petunjuk untuk mengunggah file.zip Anda.

   Contoh aplikasi Anda harus dikemas dalam file.zip.

1. Untuk membuat pipeline dan menambahkan tahap sumber, lakukan hal berikut:

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

   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 halaman pengaturan pipeline**, dalam **nama Pipeline**, masukkan nama untuk pipeline Anda.

   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**, biarkan **peran layanan baru** dipilih, dan biarkan **nama Peran** tidak berubah. Anda juga dapat memilih untuk menggunakan peran layanan yang ada, jika Anda memilikinya.
**catatan**  
Jika Anda menggunakan peran CodePipeline layanan yang dibuat sebelum Juli 2018, Anda harus menambahkan izin untuk Device Farm. Untuk melakukannya, buka konsol IAM, temukan peran, lalu tambahkan izin berikut ke kebijakan peran. Untuk informasi selengkapnya, lihat [Menambahkan izin ke peran CodePipeline layanan](how-to-custom-role.md#how-to-update-role-new-services).  

      ```
      {
           "Effect": "Allow",
           "Action": [
              "devicefarm:ListProjects",
              "devicefarm:ListDevicePools",
              "devicefarm:GetRun",
              "devicefarm:GetUpload",
              "devicefarm:CreateUpload",
              "devicefarm:ScheduleRun"
           ],
           "Resource": "*"
      }
      ```

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

   1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, di **penyedia Sumber**, pilih **Amazon S3**.

   1. Di **lokasi Amazon S3**, masukkan bucket, seperti, dan kunci objek`my-storage-bucket`, seperti `s3-ios-test-1.zip` untuk file.zip Anda.

   1. Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, buat tahap build placeholder untuk pipeline Anda. Ini memungkinkan Anda untuk membuat pipeline di wizard. Setelah Anda menggunakan wizard untuk membuat pipeline dua tahap, Anda tidak lagi memerlukan tahap pembuatan placeholder ini. Setelah pipeline selesai, tahap kedua ini dihapus dan tahap pengujian baru ditambahkan pada langkah 5.

   

   1. Di **penyedia Build**, pilih **Add Jenkins**. Pilihan build ini adalah placeholder. Atribut ini tidak digunakan.

   1. Di **nama Penyedia**, masukkan nama. Namanya adalah placeholder. Atribut ini tidak digunakan.

   1. Di **URL Server**, masukkan teks. Teks adalah placeholder. Atribut ini tidak digunakan.

   1. Dalam **nama Proyek**, masukkan nama. Namanya adalah placeholder. Atribut ini tidak digunakan.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi.

   1. Pada **Langkah 7: Tinjau**, pilih **Buat pipeline**. Anda akan melihat diagram yang menunjukkan sumber dan tahap build.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/codepipeline-view-pipeline-S3.png)

1. Tambahkan tindakan pengujian Device Farm ke pipeline Anda sebagai berikut:

   1. Di kanan atas, pilih **Edit**. 

   1. Pilih **Edit tahap**. Pilih **Hapus**. Ini menghapus tahap placeholder sekarang karena Anda tidak lagi membutuhkannya untuk pembuatan pipeline.

   1. Di bagian bawah diagram, pilih **\$1 Tambahkan tahap**.

   1. Dalam nama Stage, masukkan nama untuk panggung, seperti Test, dan kemudian pilih **Add stage**.

   1. Pilih **\$1 Tambahkan grup tindakan**.

   1. Dalam **nama Action**, masukkan nama, seperti DeviceFarmTest.

   1. Di **penyedia Action**, pilih **AWS Device Farm**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Dalam **artefak Input**, pilih artefak input yang cocok dengan artefak keluaran dari tahap yang datang sebelum tahap pengujian, seperti. `SourceArtifact` 

      Di AWS CodePipeline konsol, Anda dapat menemukan nama artefak keluaran untuk setiap tahap dengan mengarahkan kursor ke ikon informasi di diagram pipa. Jika pipeline menguji aplikasi langsung dari tahap **Sumber**, pilih **SourceArtifact**. Jika pipeline menyertakan tahap **Build**, pilih **BuildArtifact**.

   1. Di **ProjectId**, pilih ID proyek Device Farm Anda. Gunakan langkah-langkah di awal tutorial ini untuk mengambil ID proyek Anda.

   1. Masuk **DevicePoolArn**, masukkan ARN untuk kumpulan perangkat. Untuk mendapatkan kumpulan perangkat yang tersedia ARNs untuk proyek, termasuk ARN untuk Perangkat Teratas, gunakan AWS CLI untuk memasukkan perintah berikut: 

      ```
      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
      ```

   1. Masuk **AppType**, masukkan **iOS**.

      Berikut ini adalah daftar nilai yang valid untuk **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. Di **App**, masukkan jalur paket aplikasi yang dikompilasi. Jalur relatif terhadap akar artefak input untuk tahap pengujian. Biasanya, jalur ini mirip dengan`ios-test.ipa`.

   1. Masuk **TestType**, masukkan jenis pengujian Anda, lalu di **Uji**, masukkan jalur file definisi pengujian. Jalur relatif terhadap akar artefak input untuk pengujian Anda.

      Jika Anda menggunakan salah satu pengujian Device Farm bawaan, masukkan jenis pengujian yang dikonfigurasi dalam proyek Device Farm Anda, seperti BUILTIN\$1FUZZ. Masuk **FuzzEventCount**, masukkan waktu dalam milidetik, seperti 6000. Masuk **FuzzEventThrottle**, masukkan waktu dalam milidetik, seperti 50.

      Jika Anda tidak menggunakan salah satu pengujian Device Farm bawaan, masukkan jenis pengujian, lalu di **Test**, masukkan path file definisi pengujian. Jalur relatif terhadap akar artefak input untuk pengujian Anda. 

      Berikut ini adalah daftar nilai yang valid untuk **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1NODE**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **BUILTIN\$1FUZZ**
      + **INSTRUMENTASI**
      + **XCTEST**
      + **XCTEST\$1UI**
**catatan**  
Node lingkungan khusus tidak didukung.

   1. Di bidang yang tersisa, berikan konfigurasi yang sesuai untuk pengujian dan jenis aplikasi Anda.

   1. (Opsional) Di **Advanced**, berikan informasi konfigurasi untuk uji coba Anda.

   1. Pilih **Simpan**.

   1. Di panggung yang Anda edit, pilih **Selesai**. Di AWS CodePipeline panel, pilih **Simpan**, lalu pilih **Simpan** pada pesan peringatan.

   1. Untuk mengirimkan perubahan dan memulai eksekusi pipeline, pilih **Rilis perubahan**, lalu pilih **Rilis**.

# Tutorial: Buat pipeline yang di-deploy ke Service Catalog
<a name="tutorials-S3-servicecatalog"></a>

Service Catalog memungkinkan Anda untuk membuat dan menyediakan produk berdasarkan AWS CloudFormation template. 

**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.

Tutorial ini menunjukkan cara membuat dan mengonfigurasi pipeline untuk menyebarkan template produk Anda ke Service Catalog dan memberikan perubahan yang telah Anda buat di repositori sumber Anda (sudah dibuat di GitHub, CodeCommit, atau Amazon S3).

**catatan**  
Jika Amazon S3 adalah penyedia sumber untuk pipeline Anda, Anda harus mengunggah ke bucket semua file sumber yang dikemas sebagai satu file.zip. Jika tidak, tindakan sumber gagal.

Pertama, Anda membuat produk di Service Catalog, dan kemudian Anda membuat pipeline AWS CodePipeline. Tutorial ini menyediakan dua opsi untuk mengatur konfigurasi penyebaran:
+ Buat produk di Service Catalog dan unggah file template ke repositori sumber Anda. Menyediakan versi produk dan konfigurasi penerapan di CodePipeline konsol (tanpa file konfigurasi terpisah). Lihat [Opsi 1: Terapkan ke Service Catalog tanpa file konfigurasi](#tutorials-S3-servicecatalog-ex1-configure).
**catatan**  
File template dapat dibuat dalam format YAMAL atau JSON.
+ Buat produk di Service Catalog dan unggah file template ke repositori sumber Anda. Menyediakan versi produk dan konfigurasi penyebaran dalam file konfigurasi terpisah. Lihat [Opsi 2: Terapkan ke Service Catalog menggunakan file konfigurasi](#tutorials-S3-servicecatalog-ex2-configure).

## Opsi 1: Terapkan ke Service Catalog tanpa file konfigurasi
<a name="tutorials-S3-servicecatalog-ex1-configure"></a>

Dalam contoh ini, Anda mengunggah file AWS CloudFormation template sampel untuk bucket S3, lalu membuat produk Anda di Service Catalog. Selanjutnya, Anda membuat pipeline dan menentukan konfigurasi penerapan di CodePipeline konsol.

### Langkah 1: Unggah file templat sampel ke repositori sumber
<a name="tutorials-S3-servicecatalog-configure"></a>

1. Buka editor teks. Buat template sampel dengan menempelkan berikut ini ke dalam file. Simpan file sebagai `S3_template.json`.

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   Template ini memungkinkan AWS CloudFormation untuk membuat bucket S3 yang dapat digunakan oleh Service Catalog.

1. Unggah `S3_template.json` file ke AWS CodeCommit repositori Anda.

### Langkah 2: Buat produk di Service Catalog
<a name="tutorials-S3-servicecatalog-product"></a>

1. Sebagai administrator TI, masuk ke konsol Service Catalog, buka halaman **Produk**, lalu pilih **Unggah produk baru**.

1. Pada halaman **Unggah produk baru**, lengkapi yang berikut ini:

   1. Di **Nama Produk**, masukkan nama yang ingin Anda gunakan untuk produk baru Anda.

   1. Dalam **Deskripsi**, masukkan deskripsi katalog produk. Deskripsi ini ditampilkan dalam daftar produk untuk membantu pengguna dalam memilih produk yang benar. 

   1. Di **Disediakan oleh**, masukkan nama departemen atau administrator TI Anda.

   1. Pilih **Berikutnya**.

1. (Opsional) Di **Masukkan detail dukungan**, masukkan informasi kontak untuk dukungan produk, dan pilih **Berikutnya**.

1. Dalam **detail Versi**, lengkapi yang berikut ini:

   1. Pilih **Mengunggah file template**. Jelajahi `S3_template.json` file Anda dan unggah.

   1. Dalam **judul Versi**, masukkan nama versi produk (misalnya,**devops S3 v2**).

   1. Dalam **Deskripsi**, masukkan detail yang membedakan versi ini dari versi lain.

   1. Pilih **Berikutnya**.

1. Pada halaman **Tinjauan**, verifikasi bahwa informasinya benar, lalu pilih **Buat**. 

1. Pada halaman **Produk**, di browser, salin URL produk baru Anda. Ini berisi ID produk. Salin dan simpan ID produk ini. Anda menggunakannya saat Anda membuat pipeline di CodePipeline.

   Berikut adalah URL untuk produk yang diberi nama`my-product`. Untuk mengekstrak ID produk, salin nilai antara tanda sama dengan (`=`) dan ampersand (). `&` Dalam contoh ini, ID produk adalah`prod-example123456`.

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**catatan**  
Salin URL untuk produk Anda sebelum Anda menjauh dari halaman. Setelah Anda menavigasi jauh dari halaman ini, Anda harus menggunakan CLI untuk mendapatkan ID produk Anda.

   Setelah beberapa detik, produk Anda muncul di halaman **Produk**. Anda mungkin perlu menyegarkan browser Anda untuk melihat produk dalam daftar.

### Langkah 3: Buat pipeline Anda
<a name="tutorials-S3-servicecatalog-pipeline"></a>

1. Untuk memberi nama pipeline Anda dan memilih parameter untuk pipeline Anda, lakukan hal berikut:

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

   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 nama untuk pipeline Anda.

   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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Untuk menambahkan tahap sumber pada **Langkah 3: Tambahkan halaman tahap sumber**, lakukan hal berikut:

   1. Di **penyedia Sumber**, pilih **AWS CodeCommit**.

   1. Dalam nama **Repositori dan nama** **Cabang**, masukkan repositori dan cabang yang ingin Anda gunakan untuk tindakan sumber Anda.

   1. Pilih **Berikutnya**.

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

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**, selesaikan yang berikut ini:

   1. Di **Penyedia Deploy**, pilih **AWS Service Catalog**.

   1. Untuk konfigurasi deployment, pilih **Enter deployment** configuration.

   1. Di **Product ID**, tempel ID produk yang Anda salin dari konsol Service Catalog.

   1. Di **jalur file Template**, masukkan jalur relatif tempat file template disimpan.

   1. Di **Jenis produk**, pilih **CloudFormation template**.

   1. Dalam **nama versi Produk**, masukkan nama versi produk yang Anda tentukan di Service Catalog. Jika Anda ingin perubahan template disebarkan ke versi produk baru, masukkan nama versi produk yang belum digunakan untuk versi produk sebelumnya dalam produk yang sama.

   1. Untuk **artefak Input**, pilih artefak input sumber.

   1. Pilih **Berikutnya**.

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

1. Setelah pipeline Anda berhasil berjalan, pada tahap penerapan, pilih **Detail**. Ini membuka produk Anda di Service Catalog.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. Di bawah informasi produk Anda, pilih nama versi Anda untuk membuka templat produk. Lihat penerapan template.

### Langkah 4: Dorong perubahan dan verifikasi produk Anda di Service Catalog
<a name="tutorials-S3-servicecatalog-change"></a>

1. Lihat pipeline Anda di CodePipeline konsol, dan pada tahap sumber Anda, pilih **Detail**. AWS CodeCommit Repositori sumber Anda terbuka di konsol. Pilih **Edit**, dan buat perubahan pada file (misalnya, ke deskripsi). 

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. Berkomitmen dan dorong perubahan Anda. Pipeline Anda dimulai setelah Anda mendorong perubahan. Saat proses pipeline selesai, pada tahap deployment, pilih **Detail** untuk membuka produk Anda di Service Catalog.

1. Di bawah informasi produk Anda, pilih nama versi baru untuk membuka template produk. Lihat perubahan template yang diterapkan.

## Opsi 2: Terapkan ke Service Catalog menggunakan file konfigurasi
<a name="tutorials-S3-servicecatalog-ex2-configure"></a>

Dalam contoh ini, Anda mengunggah file AWS CloudFormation template sampel untuk bucket S3, lalu membuat produk Anda di Service Catalog. Anda juga mengunggah file konfigurasi terpisah yang menentukan konfigurasi penerapan Anda. Selanjutnya, Anda membuat pipeline dan menentukan lokasi file konfigurasi Anda.

### Langkah 1: Unggah file templat sampel ke repositori sumber
<a name="tutorials-S3-servicecatalog-upload2"></a>

1. Buka editor teks. Buat template sampel dengan menempelkan berikut ini ke dalam file. Simpan file sebagai `S3_template.json`.

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   Template ini memungkinkan AWS CloudFormation untuk membuat bucket S3 yang dapat digunakan oleh Service Catalog.

1. Unggah `S3_template.json` file ke AWS CodeCommit repositori Anda.

### Langkah 2: Buat file konfigurasi penyebaran produk Anda
<a name="tutorials-S3-servicecatalog-configure2"></a>

1. Buka editor teks. Buat file konfigurasi untuk produk Anda. File konfigurasi digunakan untuk menentukan parameter/preferensi penyebaran Service Catalog Anda. Anda menggunakan file ini saat membuat pipeline.

   Sampel ini menyediakan “devops S3 v2" dan a `ProductVersionName` of. `ProductVersionDescription` `MyProductVersionDescription` Jika Anda ingin perubahan template disebarkan ke versi produk baru, cukup masukkan nama versi produk yang belum digunakan untuk versi produk sebelumnya dalam produk yang sama.

    Simpan file sebagai `sample_config.json`.

   ```
   {
       "SchemaVersion": "1.0",
       "ProductVersionName": "devops S3 v2",
       "ProductVersionDescription": "MyProductVersionDescription",
       "ProductType": "CLOUD_FORMATION_TEMPLATE",
       "Properties": {
           "TemplateFilePath": "/S3_template.json"
       }
   }
   ```

   File ini membuat informasi versi produk untuk Anda setiap kali pipeline Anda berjalan.

1. Unggah `sample_config.json` file ke AWS CodeCommit repositori Anda. Pastikan Anda mengunggah file ini ke repositori sumber Anda.

### Langkah 3: Buat produk di Service Catalog
<a name="tutorials-S3-servicecatalog-product2"></a>

1. Sebagai administrator TI, masuk ke konsol Service Catalog, buka halaman **Produk**, lalu pilih **Unggah produk baru**.

1. Pada halaman **Unggah produk baru**, lengkapi yang berikut ini:

   1. Di **Nama Produk**, masukkan nama yang ingin Anda gunakan untuk produk baru Anda.

   1. Dalam **Deskripsi**, masukkan deskripsi katalog produk. Deskripsi ini muncul di daftar produk untuk membantu pengguna memilih produk yang benar. 

   1. Di **Disediakan oleh**, masukkan nama departemen atau administrator TI Anda.

   1. Pilih **Berikutnya**.

1. (Opsional) Di **Masukkan detail dukungan**, masukkan informasi kontak dukungan produk, lalu pilih **Berikutnya**.

1. Dalam **detail Versi**, lengkapi yang berikut ini:

   1. Pilih **Mengunggah file template**. Jelajahi `S3_template.json` file Anda dan unggah.

   1. Dalam **judul Versi**, masukkan nama versi produk (misalnya, “devops S3 v2").

   1. Dalam **Deskripsi**, masukkan detail yang membedakan versi ini dari versi lain.

   1. Pilih **Berikutnya**.

1. Pada halaman **Tinjauan**, verifikasi bahwa informasi sudah benar, lalu pilih **Konfirmasi dan unggah**. 

1. Pada halaman **Produk**, di browser, salin URL produk baru Anda. Ini berisi ID produk. Salin dan simpan ID produk ini. Anda gunakan saat membuat pipeline di CodePipeline.

   Berikut adalah URL untuk produk yang diberi nama`my-product`. Untuk mengekstrak ID produk, salin nilai antara tanda sama dengan (`=`) dan ampersand (). `&` Dalam contoh ini, ID produk adalah`prod-example123456`. 

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**catatan**  
Salin URL untuk produk Anda sebelum Anda menjauh dari halaman. Setelah Anda menavigasi jauh dari halaman ini, Anda harus menggunakan CLI untuk mendapatkan ID produk Anda.

   Setelah beberapa detik, produk Anda muncul di halaman **Produk**. Anda mungkin perlu menyegarkan browser Anda untuk melihat produk dalam daftar.

### Langkah 4: Buat pipeline Anda
<a name="tutorials-S3-servicecatalog-pipeline2"></a>

1. Untuk memberi nama pipeline Anda dan memilih parameter untuk pipeline Anda, lakukan hal berikut:

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

   1. Pilih **Memulai**. Pilih **Buat pipeline**, lalu masukkan nama untuk pipeline Anda.

   1. Dalam **peran Layanan**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Untuk menambahkan tahap sumber, lakukan hal berikut:

   1. Di **penyedia Sumber**, pilih **AWS CodeCommit**.

   1. Dalam nama **Repositori dan nama** **Cabang**, masukkan repositori dan cabang yang ingin Anda gunakan untuk tindakan sumber Anda.

   1. Pilih **Berikutnya**.

1. Di **Add build stage**, pilih **Lewati tahap build**, lalu terima pesan peringatan dengan memilih **Lewati** lagi.

1. Di **tahap Add deploy**, selesaikan yang berikut ini:

   1. Di **Penyedia Deploy**, pilih **AWS Service Catalog**.

   1. Pilih **Gunakan file konfigurasi**.

   1. Di **Product ID**, tempel ID produk yang Anda salin dari konsol Service Catalog.

   1. Di **jalur file Konfigurasi**, masukkan jalur file dari file konfigurasi di repositori Anda.

   1. Pilih **Berikutnya**.

1. Di **Tinjau**, tinjau setelan pipeline Anda, lalu pilih **Buat**.

1. Setelah pipeline berhasil berjalan, pada tahap penerapan, pilih **Detail** untuk membuka produk di Service Catalog.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. Di bawah informasi produk Anda, pilih nama versi Anda untuk membuka templat produk. Lihat penerapan template.

### Langkah 5: Dorong perubahan dan verifikasi produk Anda di Service Catalog
<a name="tutorials-S3-servicecatalog-change2"></a>

1. Lihat pipeline Anda di CodePipeline konsol, dan pada tahap sumber, pilih **Detail**. AWS CodeCommit Repositori sumber Anda terbuka di konsol. Pilih **Edit**, lalu buat perubahan pada file (misalnya, ke deskripsi).

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. Berkomitmen dan dorong perubahan Anda. Pipeline Anda dimulai setelah Anda mendorong perubahan. Saat proses pipeline selesai, pada tahap deployment, pilih **Detail** untuk membuka produk Anda di Service Catalog.

1. Di bawah informasi produk Anda, pilih nama versi baru untuk membuka template produk. Lihat perubahan template yang diterapkan.

# Tutorial: Buat pipeline dengan AWS CloudFormation
<a name="tutorials-cloudformation"></a>

Contohnya menyediakan contoh templat yang memungkinkan Anda gunakan AWS CloudFormation untuk membuat pipeline yang menyebarkan aplikasi ke instance Anda setiap kali kode sumber berubah. Template sampel membuat pipeline yang dapat Anda lihat AWS CodePipeline. Pipeline mendeteksi kedatangan perubahan yang disimpan melalui Amazon CloudWatch Events.

**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.

**Topics**
+ [Contoh 1: Buat AWS CodeCommit pipeline dengan AWS CloudFormation](tutorials-cloudformation-codecommit.md)
+ [Contoh 2: Buat pipeline Amazon S3 dengan AWS CloudFormation](tutorials-cloudformation-s3.md)

# Contoh 1: Buat AWS CodeCommit pipeline dengan AWS CloudFormation
<a name="tutorials-cloudformation-codecommit"></a>

Panduan ini menunjukkan cara menggunakan AWS CloudFormation konsol untuk membuat infrastruktur yang menyertakan pipeline yang terhubung ke repositori CodeCommit sumber. Dalam tutorial ini, Anda menggunakan file template sampel yang disediakan untuk membuat tumpukan sumber daya, yang mencakup penyimpanan artefak, pipeline, dan sumber daya deteksi perubahan, seperti aturan Amazon CloudWatch Events Anda. Setelah membuat tumpukan sumber daya AWS CloudFormation, Anda dapat melihat pipeline di AWS CodePipeline konsol. Pipa adalah pipa dua tahap dengan tahap CodeCommit sumber dan tahap CodeDeploy penyebaran.

**Prasyarat:**

Anda harus telah membuat sumber daya berikut untuk digunakan dengan template AWS CloudFormation sampel:
+ Anda harus telah membuat repositori sumber. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ Anda harus telah membuat grup CodeDeploy aplikasi dan penyebaran. Anda dapat menggunakan CodeDeploy sumber daya yang Anda buat[Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md).
+ [Pilih salah satu tautan ini untuk mengunduh file AWS CloudFormation templat sampel untuk membuat pipeline: [YAMAL \$1 JSON](samples/codepipeline-codecommit-events-yaml.zip)](samples/codepipeline-codecommit-events-json.zip)

  Buka zip file dan letakkan di komputer lokal Anda.
+ Unduh file aplikasi sampel [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip).



**Buat pipeline Anda di AWS CloudFormation**

1. Buka zip file dari [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) dan unggah file ke AWS CodeCommit repositori Anda. Anda harus mengunggah file yang tidak di-zip ke direktori root repositori Anda. Anda dapat mengikuti instruksi [Langkah 2: Tambahkan kode sampel ke CodeCommit repositori Anda](tutorials-simple-codecommit.md#codecommit-add-code) untuk mendorong file ke repositori Anda.

1. Buka AWS CloudFormation konsol dan pilih **Create Stack**. Pilih **Dengan sumber daya baru (standar)**.

1. Di bawah **Tentukan templat**, pilih **Unggah templat**. Pilih **Pilih file** dan kemudian pilih file template dari komputer lokal Anda. Pilih **Berikutnya**.

1. Dalam **nama Stack**, masukkan nama untuk pipeline Anda. Parameter yang ditentukan oleh template sampel ditampilkan. Masukkan parameter berikut: 

   1. Masuk **ApplicationName**, masukkan nama CodeDeploy aplikasi Anda.

   1. Masuk **BetaFleet**, masukkan nama grup CodeDeploy penyebaran Anda.

   1. Masuk **BranchName**, masukkan cabang repositori yang ingin Anda gunakan.

   1. Masuk **RepositoryName**, masukkan nama repositori CodeCommit sumber Anda.

1. Pilih **Berikutnya**. **Terima default pada halaman berikut, lalu pilih Berikutnya.**

1. Di **Capabilities**, pilih **I accept yang AWS CloudFormation mungkin membuat resource IAM**, lalu pilih **Create** stack.

1. Setelah pembuatan tumpukan Anda selesai, lihat daftar acara untuk memeriksa kesalahan apa pun.

   **Pemecahan Masalah**

   Pengguna IAM yang membuat pipeline AWS CloudFormation mungkin memerlukan izin tambahan untuk membuat sumber daya untuk pipeline. Izin berikut diperlukan dalam kebijakan AWS CloudFormation untuk memungkinkan pembuatan sumber daya CloudWatch Acara Amazon yang diperlukan untuk CodeCommit pipeline:

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

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

   Di bawah **Pipelines**, pilih pipeline Anda dan pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.
**catatan**  
Untuk melihat pipeline yang telah dibuat, cari kolom **Logical ID** di bawah tab **Resources** untuk tumpukan Anda CloudFormation. Perhatikan nama di kolom **Physical ID** untuk pipeline. Di CodePipeline, Anda dapat melihat pipeline dengan ID Fisik (nama pipeline) yang sama di Wilayah tempat Anda membuat tumpukan.

1. Di repositori sumber Anda, komit dan dorong perubahan. Sumber daya deteksi perubahan Anda mengambil perubahan, dan pipeline Anda dimulai.

# Contoh 2: Buat pipeline Amazon S3 dengan AWS CloudFormation
<a name="tutorials-cloudformation-s3"></a>

Panduan ini menunjukkan cara menggunakan AWS CloudFormation konsol untuk membuat infrastruktur yang menyertakan pipeline yang terhubung ke bucket sumber Amazon S3. Dalam tutorial ini, Anda menggunakan file template sampel yang disediakan untuk membuat tumpukan sumber daya, yang mencakup bucket sumber, penyimpanan artefak, pipeline, dan sumber daya deteksi perubahan, seperti aturan dan jejak CloudWatch Acara Amazon Anda. CloudTrail Setelah membuat tumpukan sumber daya AWS CloudFormation, Anda dapat melihat pipeline di AWS CodePipeline konsol. Pipeline adalah pipa dua tahap dengan tahap sumber Amazon S3 dan tahap penerapan CodeDeploy.

**Prasyarat:**

Anda harus memiliki sumber daya berikut untuk digunakan dengan template AWS CloudFormation sampel:
+ Anda harus telah membuat instans Amazon EC2, tempat Anda menginstal CodeDeploy agen pada instans. Anda harus telah membuat grup CodeDeploy aplikasi dan penyebaran. Gunakan Amazon EC2 dan CodeDeploy sumber daya yang Anda buat. [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ Pilih tautan berikut untuk mengunduh file AWS CloudFormation templat sampel untuk membuat pipeline dengan sumber Amazon S3: 
  + [Unduh contoh template untuk pipeline Anda: [YAMAL \$1 JSON](samples/codepipeline-s3-events-yaml.zip)](samples/codepipeline-s3-events-json.zip)
  + [Unduh template sampel untuk CloudTrail bucket dan trail Anda: [YAML\$1 JSON](samples/codepipeline-s3-cloudtrail-yaml.zip)](samples/codepipeline-s3-cloudtrail-json.zip)
  + Buka zip file dan letakkan di komputer lokal Anda.
+ Unduh aplikasi sampel dari [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip).

  Simpan file.zip di komputer lokal Anda. Anda mengunggah file.zip setelah tumpukan dibuat.

**Buat pipeline Anda di AWS CloudFormation**

1. Buka AWS CloudFormation konsol, dan pilih **Create Stack**. Pilih **Dengan sumber daya baru (standar)**.

1. Di **Pilih templat**, pilih **Unggah templat**. Pilih **Pilih file**, lalu pilih file template dari komputer lokal Anda. Pilih **Berikutnya**.

1. Dalam **nama Stack**, masukkan nama untuk pipeline Anda. Parameter yang ditentukan oleh template sampel ditampilkan. Masukkan parameter berikut: 

   1. Masuk **ApplicationName**, masukkan nama CodeDeploy aplikasi Anda. Anda dapat mengganti nama `DemoApplication` default.

   1. Masuk **BetaFleet**, masukkan nama grup CodeDeploy penyebaran Anda. Anda dapat mengganti nama `DemoFleet` default.

   1. Masuk **SourceObjectKey**, masuk`SampleApp_Linux.zip`. Anda mengunggah file ini ke bucket setelah template membuat bucket dan pipeline.

1. Pilih **Berikutnya**. **Terima default pada halaman berikut, lalu pilih Berikutnya.**

1. Di **Capabilities**, pilih **I accept yang AWS CloudFormation mungkin membuat resource IAM**, lalu pilih **Create** stack.

1. Setelah pembuatan tumpukan Anda selesai, lihat daftar acara untuk memeriksa kesalahan apa pun.

   **Pemecahan Masalah**

   Pengguna IAM yang membuat pipeline AWS CloudFormation mungkin memerlukan izin tambahan untuk membuat sumber daya untuk pipeline. Izin berikut diperlukan dalam kebijakan AWS CloudFormation untuk memungkinkan membuat sumber daya CloudWatch Acara Amazon yang diperlukan untuk pipeline Amazon S3:

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. Di CloudFormation, di tab **Sumber Daya** untuk tumpukan Anda, lihat sumber daya yang dibuat untuk tumpukan Anda. 
**catatan**  
Untuk melihat pipeline yang telah dibuat, cari kolom **Logical ID** di bawah tab **Resources** untuk tumpukan Anda CloudFormation. Perhatikan nama di kolom **Physical ID** untuk pipeline. Di CodePipeline, Anda dapat melihat pipeline dengan ID Fisik (nama pipeline) yang sama di Wilayah tempat Anda membuat tumpukan.

   Pilih bucket S3 dengan `sourcebucket` label di namanya, seperti `s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.` Jangan pilih bucket artefak pipa.

   Bucket sumber kosong karena sumber daya baru dibuat oleh CloudFormation. Buka konsol Amazon S3 dan temukan bucket Anda`sourcebucket`. Pilih **Unggah**, dan ikuti petunjuk untuk mengunggah `SampleApp_Linux.zip` file.zip Anda.
**catatan**  
Jika Amazon S3 adalah penyedia sumber untuk pipeline Anda, Anda harus mengunggah ke bucket semua file sumber yang dikemas sebagai satu file.zip. Jika tidak, tindakan sumber gagal.

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

   Di bawah **Pipelines**, pilih pipeline Anda, lalu pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Selesaikan langkah-langkah dalam prosedur berikut untuk membuat AWS CloudTrail sumber daya Anda.

**Buat AWS CloudTrail sumber daya Anda di AWS CloudFormation**

1. Buka AWS CloudFormation konsol, dan pilih **Create Stack**.

1. Di **Pilih templat**, pilih **Unggah templat ke Amazon S3**. Pilih **Browse**, lalu pilih file template untuk AWS CloudTrail sumber daya dari komputer lokal Anda. Pilih **Berikutnya**.

1. Dalam **nama Stack**, masukkan nama untuk tumpukan sumber daya Anda. Parameter yang ditentukan oleh template sampel ditampilkan. Masukkan parameter berikut: 

   1. Dalam **SourceObjectKey**, terima default untuk file zip aplikasi sampel.

1. Pilih **Berikutnya**. **Terima default pada halaman berikut, lalu pilih Berikutnya.**

1. **Di **Capabilities**, pilih **I accept yang AWS CloudFormation mungkin membuat resource IAM**, lalu pilih Create.**

1. Setelah pembuatan tumpukan Anda selesai, lihat daftar acara untuk memeriksa kesalahan apa pun.

   Izin berikut diperlukan dalam kebijakan AWS CloudFormation untuk memungkinkan pembuatan CloudTrail sumber daya yang diperlukan untuk pipeline Amazon S3:

   ```
   {
        "Effect": "Allow",
        "Action": [
           "cloudtrail:CreateTrail",
           "cloudtrail:DeleteTrail",
           "cloudtrail:StartLogging",
           "cloudtrail:StopLogging",
           "cloudtrail:PutEventSelectors"
        ],
        "Resource": "resource_ARN"
   }
   ```

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

   Di bawah **Pipelines**, pilih pipeline Anda, lalu pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Di ember sumber Anda, komit dan dorong perubahan. Sumber daya deteksi perubahan Anda mengambil perubahan dan pipeline Anda dimulai.

# Tutorial: Buat pipeline yang menggunakan variabel dari AWS CloudFormation tindakan penerapan
<a name="tutorials-cloudformation-action"></a>

Dalam tutorial ini, Anda menggunakan AWS CodePipeline konsol untuk membuat pipeline dengan tindakan penerapan. Saat pipeline berjalan, template membuat tumpukan dan juga membuat `outputs` file. Output yang dihasilkan oleh template tumpukan adalah variabel yang dihasilkan oleh AWS CloudFormation tindakan di CodePipeline.

Dalam tindakan di mana Anda membuat tumpukan dari template, Anda menunjuk namespace variabel. Variabel yang dihasilkan oleh `outputs` file kemudian dapat dikonsumsi oleh tindakan selanjutnya. Dalam contoh ini, Anda membuat set perubahan berdasarkan `StackName` variabel yang dihasilkan oleh AWS CloudFormation tindakan. Setelah persetujuan manual, Anda menjalankan set perubahan dan kemudian membuat tindakan menghapus tumpukan yang menghapus tumpukan berdasarkan `StackName` variabel.

**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.

**Topics**
+ [Prasyarat: Buat peran AWS CloudFormation layanan dan repositori CodeCommit](#tutorials-cloudformation-action-prereq)
+ [Langkah 1: Unduh, edit, dan unggah AWS CloudFormation templat sampel](#tutorials-cloudformation-action-upload)
+ [Langkah 2: Buat alur Anda](#tutorials-cloudformation-action-pipeline)
+ [Langkah 3: Tambahkan tindakan CloudFormation penerapan untuk membuat set perubahan](#tutorials-cloudformation-action-changeset)
+ [Langkah 4: Tambahkan tindakan persetujuan manual](#tutorials-cloudformation-action-approval)
+ [Langkah 5: Tambahkan tindakan CloudFormation penerapan untuk menjalankan set perubahan](#tutorials-cloudformation-action-deployment)
+ [Langkah 6: Tambahkan tindakan CloudFormation penerapan untuk menghapus tumpukan](#tutorials-cloudformation-action-delete)

## Prasyarat: Buat peran AWS CloudFormation layanan dan repositori CodeCommit
<a name="tutorials-cloudformation-action-prereq"></a>

Anda harus sudah memiliki yang berikut:
+ Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ Contoh ini membuat tumpukan Amazon DocumentDB dari template. Anda harus menggunakan AWS Identity and Access Management (IAM) untuk membuat peran AWS CloudFormation layanan dengan izin berikut untuk Amazon DocumentDB.

  ```
  "rds:DescribeDBClusters",
  "rds:CreateDBCluster",
  "rds:DeleteDBCluster",
  "rds:CreateDBInstance"
  ```

## Langkah 1: Unduh, edit, dan unggah AWS CloudFormation templat sampel
<a name="tutorials-cloudformation-action-upload"></a>

Unduh file AWS CloudFormation template sampel dan unggah ke CodeCommit repositori Anda.

1. Arahkan ke template sampel untuk Wilayah Anda. Misalnya, gunakan tabel di [https://docs.aws.amazon.com/documentdb/latest/developerguide/quick_start_cfn.html#quick_start_cfn-launch_stack](https://docs.aws.amazon.com/documentdb/latest/developerguide/quick_start_cfn.html#quick_start_cfn-launch_stack) untuk memilih Wilayah dan unduh templat. Unduh template untuk Cluster Amazon DocumentDB. Nama filenya adalah`documentdb_full_stack.yaml`.

1. Buka zip `documentdb_full_stack.yaml` file, dan buka di editor teks. Buat perubahan berikut.

   1. Untuk contoh ini, tambahkan `Purpose:` parameter berikut ke `Parameters` bagian Anda di template.

      ```
        Purpose:
          Type: String
          Default: testing
          AllowedValues:
            - testing
            - production
          Description: The purpose of this instance.
      ```

   1. Untuk contoh ini, tambahkan `StackName` output berikut ke `Outputs:` bagian Anda di template.

      ```
        StackName:
          Value: !Ref AWS::StackName
      ```

1. Unggah file template ke AWS CodeCommit repositori Anda. Anda harus mengunggah file template yang tidak di-zip dan diedit ke direktori root repositori Anda. 

   Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda: 

   1. **Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.**

   1. Pilih **Tambahkan file**, lalu pilih **Unggah file**. 

   1. Pilih **Pilih file**, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih **Perubahan commit**.

   File Anda akan terlihat seperti ini di tingkat root di repositori Anda:

   ```
   documentdb_full_stack.yaml
   ```

## Langkah 2: Buat alur Anda
<a name="tutorials-cloudformation-action-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan CodeCommit tindakan di mana artefak sumber adalah file template Anda.
+ Tahap penyebaran dengan tindakan CloudFormation penerapan.

Setiap tindakan dalam tahap sumber dan penerapan yang dibuat oleh wizard diberi namespace variabel, `SourceVariables` dan`DeployVariables`, masing-masing. Karena tindakan memiliki namespace yang ditetapkan, variabel yang dikonfigurasi dalam contoh ini tersedia untuk tindakan hilir. Untuk informasi selengkapnya, lihat [Referensi variabel](reference-variables.md).

**Untuk membuat alur dengan wizard**

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**MyCFNDeployPipeline**.

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 di IAM.
   + Pilih **Peran layanan yang ada**. Di **Nama peran**, pilih peran layanan Anda dari daftar.

1. Di **toko Artifact**: 

   1. Pilih **Lokasi default** untuk menggunakan penyimpanan artefak default, seperti bucket artefak Amazon S3 yang ditetapkan sebagai default, untuk pipeline di Wilayah yang dipilih untuk pipeline.

   1. Pilih **Lokasi khusus** jika Anda sudah memiliki toko artefak, seperti bucket artefak Amazon S3, di Wilayah yang sama dengan pipeline Anda.
**catatan**  
Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur. Saat membuat atau mengedit pipeline, Anda harus memiliki bucket artefak di Wilayah pipeline dan satu bucket artefak per AWS Wilayah tempat Anda menjalankan tindakan.  
Untuk informasi selengkapnya, lihat [Artefak input dan output](welcome-introducing-artifacts.md) dan [CodePipeline referensi struktur pipa](reference-pipeline-structure.md).

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan tahap sumber**: 

   1. Di **penyedia Sumber**, pilih **AWS CodeCommit**.

   1. Dalam **nama Repositori**, pilih nama CodeCommit repositori yang Anda buat. [Langkah 1: Buat CodeCommit repositori](tutorials-simple-codecommit.md#codecommit-create-repository)

   1. Di **Nama cabang**, pilih nama cabang yang berisi pembaruan kode terbaru Anda.

   Setelah Anda memilih nama repositori dan cabang, aturan Amazon CloudWatch Events yang akan dibuat untuk pipeline ini akan ditampilkan. 

   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**:

   1. Di **Nama tindakan**, pilih **Deploy**. Di **Penyedia Deploy**, pilih **CloudFormation**.

   1. Dalam **mode Tindakan**, pilih **Buat atau perbarui tumpukan**.

   1. Dalam **nama Stack**, masukkan nama untuk tumpukan. Ini adalah nama tumpukan yang akan dibuat template.

   1. Dalam **nama file Output**, masukkan nama untuk file output, seperti**outputs**. Ini adalah nama file yang akan dibuat oleh tindakan setelah tumpukan dibuat.

   1. Perluas **Lanjutan**. Di bawah **penggantian Parameter**, masukkan penggantian template Anda sebagai pasangan nilai kunci. Misalnya, template ini memerlukan penggantian berikut.

      ```
      {
      "DBClusterName": "MyDBCluster",
      "DBInstanceName": "MyDBInstance",
      "MasterUser": "UserName",
      "MasterPassword": "Password",
      "DBInstanceClass": "db.r4.large",
      "Purpose": "testing"}
      ```

      Jika Anda tidak memasukkan penggantian, template akan membuat tumpukan dengan nilai default.

   1. Pilih **Berikutnya**.

   1. Pada **Langkah 7: Tinjau**, pilih **Buat pipeline**. Anda akan melihat diagram yang menunjukkan tahapan pipa. Biarkan pipeline Anda berjalan. Pipa dua tahap Anda selesai dan siap untuk tahapan tambahan yang akan ditambahkan.

## Langkah 3: Tambahkan tindakan CloudFormation penerapan untuk membuat set perubahan
<a name="tutorials-cloudformation-action-changeset"></a>

Buat tindakan selanjutnya di pipeline Anda yang CloudFormation memungkinkan Anda membuat set perubahan sebelum tindakan persetujuan manual.



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

   Di bawah **Pipelines**, pilih pipeline Anda dan pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Pilih untuk mengedit pipeline, atau terus menampilkan pipeline dalam mode **Edit**.

1. Pilih untuk mengedit tahap **Deploy**.

1. Tambahkan tindakan penerapan yang akan membuat set perubahan untuk tumpukan yang dibuat dalam tindakan sebelumnya. Anda menambahkan tindakan ini setelah tindakan yang ada di panggung.

   1. Dalam **nama Tindakan**, masukkan **Change\$1Set**. Di **penyedia Action**, pilih **AWS CloudFormation **.

   1. Di **artefak Input**, pilih **SourceArtifact**.

   1. Dalam **mode Tindakan**, pilih **Buat atau ganti set perubahan**.

   1. Dalam **nama Stack**, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan tempat set perubahan dibuat untuk, di mana namespace default `DeployVariables` ditetapkan untuk tindakan.

      ```
      #{DeployVariables.StackName}
      ```

   1. Di **Ubah nama set**, masukkan nama set perubahan.

      ```
      my-changeset
      ```

   1. Di **Parameter Overrides**, ubah `Purpose` parameter dari `testing` ke. `production`

      ```
      {
      "DBClusterName": "MyDBCluster",
      "DBInstanceName": "MyDBInstance",
      "MasterUser": "UserName",
      "MasterPassword": "Password",
      "DBInstanceClass": "db.r4.large",
      "Purpose": "production"}
      ```

   1. Pilih **Selesai** untuk menyimpan tindakan.

## Langkah 4: Tambahkan tindakan persetujuan manual
<a name="tutorials-cloudformation-action-approval"></a>

Buat tindakan persetujuan manual di pipeline Anda.



1. Pilih untuk mengedit pipeline, atau terus menampilkan pipeline dalam mode **Edit**.

1. Pilih untuk mengedit tahap **Deploy**.

1. Tambahkan tindakan persetujuan manual setelah tindakan penerapan yang membuat set perubahan. Tindakan ini memungkinkan Anda memverifikasi perubahan sumber daya yang dibuat CloudFormation sebelum pipeline mengeksekusi set perubahan.

## Langkah 5: Tambahkan tindakan CloudFormation penerapan untuk menjalankan set perubahan
<a name="tutorials-cloudformation-action-deployment"></a>

Buat tindakan berikutnya di pipeline Anda yang memungkinkan CloudFormation untuk menjalankan set perubahan setelah tindakan persetujuan manual.



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

   Di bawah **Pipelines**, pilih pipeline Anda dan pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Pilih untuk mengedit pipeline, atau terus menampilkan pipeline dalam mode **Edit**.

1. Pilih untuk mengedit tahap **Deploy**.

1. Tambahkan tindakan penerapan yang akan menjalankan set perubahan yang disetujui dalam tindakan manual sebelumnya:

   1. Dalam **nama Action**, masukkan **Execute\$1Change\$1Set**. Di **penyedia Action**, pilih **AWS CloudFormation**.

   1. Di **artefak Input**, pilih **SourceArtifact**.

   1. Dalam **mode Tindakan**, pilih **Jalankan set perubahan**.

   1. Dalam **nama Stack**, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan tempat set perubahan dibuat untuk.

      ```
      #{DeployVariables.StackName}
      ```

   1. Di **Ubah nama set**, masukkan nama set perubahan yang Anda buat dalam tindakan sebelumnya.

      ```
      my-changeset
      ```

   1. Pilih **Selesai** untuk menyimpan tindakan.

   1. Lanjutkan proses pipa.

## Langkah 6: Tambahkan tindakan CloudFormation penerapan untuk menghapus tumpukan
<a name="tutorials-cloudformation-action-delete"></a>

Buat tindakan akhir di pipeline Anda yang memungkinkan CloudFormation untuk mendapatkan nama tumpukan dari variabel dalam file output dan menghapus tumpukan.



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

   Di bawah **Pipelines**, pilih pipeline Anda dan pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Pilih untuk mengedit pipeline.

1. Pilih untuk mengedit tahap **Deploy**.

1. Tambahkan tindakan penerapan yang akan menghapus tumpukan:

   1. Dalam **nama Action**, pilih **DeleteStack**. Di **Penyedia Deploy**, pilih **CloudFormation**.

   1. Dalam **mode Tindakan**, pilih **Hapus tumpukan**.

   1. Dalam **nama Stack**, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan yang akan dihapus oleh tindakan.

   1. Pilih **Selesai** untuk menyimpan tindakan.

   1. Pilih **Simpan** untuk menyimpan pipa.

   Pipa berjalan saat disimpan.

# Tutorial: Penerapan Standar Amazon ECS dengan CodePipeline
<a name="ecs-cd-pipeline"></a>

Tutorial ini membantu Anda membuat pipeline deployment (CD) yang lengkap dan end-to-end berkelanjutan dengan Amazon ECS. CodePipeline

**penting**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 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.

**catatan**  
Tutorial ini untuk tindakan penerapan standar Amazon ECS untuk. CodePipeline Untuk tutorial yang menggunakan Amazon ECS untuk tindakan penerapan CodeDeploy biru/hijau, lihat. CodePipeline [Tutorial: Membuat pipeline dengan sumber dan ECS-to-CodeDeploy penerapan Amazon ECR](tutorials-ecs-ecr-codedeploy.md)

**catatan**  
Tutorial ini untuk tindakan penerapan standar Amazon ECS untuk CodePipeline dengan aksi sumber. Untuk tutorial yang menggunakan tindakan ECSstandard penyebaran Amazon bersama dengan tindakan ECRBuild AndPublish build CodePipeline untuk mendorong gambar Anda, lihat[Tutorial: Buat dan dorong gambar Docker ke Amazon ECR dengan CodePipeline (tipe V2)](tutorials-ecr-build-publish.md).

## Prasyarat
<a name="ecs-cd-prereqs"></a>

Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai: 

**catatan**  
Semua sumber daya ini harus dibuat dalam AWS Wilayah yang sama.
+ Sebuah repositori kontrol sumber (tutorial ini menggunakan CodeCommit) dengan Dockerfile dan sumber aplikasi Anda. Untuk informasi selengkapnya, lihat [Membuat CodeCommit Repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-repository.html) di *AWS CodeCommit Panduan Pengguna*.
+ Sebuah repositori gambar Docker (tutorial ini menggunakan Amazon ECR) yang berisi gambar yang telah Anda buat dari Dockerfile dan sumber aplikasi Anda. Untuk informasi selengkapnya, lihat [Membuat Repositori](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html) dan [Mendorong Gambar](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) di *Panduan Pengguna Amazon Elastic Container Registry*.
+ Definisi tugas Amazon ECS yang mereferensikan gambar Docker yang dihosting di repositori gambar Anda. Untuk informasi selengkapnya, lihat [Membuat Definisi Tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html) di *Panduan Pengembang Layanan Amazon Elastic Container*.
**penting**  
Tindakan penerapan standar Amazon ECS untuk CodePipeline membuat revisi definisi tugas sendiri berdasarkan revisi yang digunakan oleh layanan Amazon ECS. Jika Anda membuat revisi baru untuk definisi tugas tanpa memperbarui layanan Amazon ECS, tindakan penerapan akan mengabaikan revisi tersebut.

  Di bawah ini adalah contoh definisi tugas yang digunakan untuk tutorial ini. Nilai yang Anda gunakan untuk `name` dan `family` akan digunakan pada langkah berikutnya untuk file spesifikasi build Anda.

  ```
  {
    "ipcMode": null,
    "executionRoleArn": "role_ARN",
    "containerDefinitions": [
      {
        "dnsSearchDomains": null,
        "environmentFiles": null,
        "logConfiguration": {
          "logDriver": "awslogs",
          "secretOptions": null,
          "options": {
            "awslogs-group": "/ecs/hello-world",
            "awslogs-region": "us-west-2",
            "awslogs-stream-prefix": "ecs"
          }
        },
        "entryPoint": null,
        "portMappings": [
          {
            "hostPort": 80,
            "protocol": "tcp",
            "containerPort": 80
          }
        ],
        "command": null,
        "linuxParameters": null,
        "cpu": 0,
        "environment": [],
        "resourceRequirements": null,
        "ulimits": null,
        "dnsServers": null,
        "mountPoints": [],
        "workingDirectory": null,
        "secrets": null,
        "dockerSecurityOptions": null,
        "memory": null,
        "memoryReservation": 128,
        "volumesFrom": [],
        "stopTimeout": null,
        "image": "image_name",
        "startTimeout": null,
        "firelensConfiguration": null,
        "dependsOn": null,
        "disableNetworking": null,
        "interactive": null,
        "healthCheck": null,
        "essential": true,
        "links": null,
        "hostname": null,
        "extraHosts": null,
        "pseudoTerminal": null,
        "user": null,
        "readonlyRootFilesystem": null,
        "dockerLabels": null,
        "systemControls": null,
        "privileged": null,
        "name": "hello-world"
      }
    ],
    "placementConstraints": [],
    "memory": "2048",
    "taskRoleArn": null,
    "compatibilities": [
      "EC2",
      "FARGATE"
    ],
    "taskDefinitionArn": "ARN",
    "family": "hello-world",
    "requiresAttributes": [],
    "pidMode": null,
    "requiresCompatibilities": [
      "FARGATE"
    ],
    "networkMode": "awsvpc",
    "cpu": "1024",
    "revision": 1,
    "status": "ACTIVE",
    "inferenceAccelerators": null,
    "proxyConfiguration": null,
    "volumes": []
  }
  ```
+ Cluster Amazon ECS yang menjalankan layanan yang menggunakan definisi tugas yang Anda sebutkan sebelumnya. Untuk informasi selengkapnya, lihat [Membuat Cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html) dan [Membuat Layanan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html) di *Panduan Pengembang Layanan Amazon Elastic Container*.

Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.

## Langkah 1: Tambahkan File Spesifikasi Build ke Repositori Sumber Anda
<a name="cd-buildspec"></a>

Tutorial ini digunakan CodeBuild untuk membangun gambar Docker Anda dan mendorong gambar ke Amazon ECR. Tambahkan `buildspec.yml` file ke repositori kode sumber Anda untuk memberi tahu CodeBuild cara melakukannya. Contoh spesifikasi build di bawah ini melakukan hal berikut:
+ Tahap pra-bangun:
  + Masuk ke Amazon ECR.
  + Atur URI repositori ke gambar ECR Anda dan tambahkan tag gambar dengan tujuh karakter pertama dari ID komit Git dari sumber.
+ Membangun panggung:
  + Buat gambar Docker dan beri tag gambar baik sebagai `latest` maupun dengan ID komit Git.
+ Tahap pasca-pembangunan:
  + Dorong gambar ke repositori ECR Anda dengan kedua tag.
  + Tulis file yang dipanggil `imagedefinitions.json` di root build yang memiliki nama penampung layanan Amazon ECS Anda serta gambar dan tag. Tahap penyebaran pipeline CD Anda menggunakan informasi ini untuk membuat revisi baru definisi tugas layanan Anda, dan kemudian memperbarui layanan untuk menggunakan definisi tugas baru. `imagedefinitions.json`File ini diperlukan untuk pekerja kerja ECS.

Rekatkan teks contoh ini untuk membuat `buildspec.yml` file Anda, dan ganti nilai untuk definisi gambar dan tugas Anda. Teks ini menggunakan contoh ID akun 111122223333.

```
version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws --version
      - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com
      - REPOSITORY_URI=012345678910.dkr.ecr.us-west-2.amazonaws.com/hello-world
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
  build:
    commands:
      - echo Build started on `date`
      - echo Building the Docker image...
      - docker build -t $REPOSITORY_URI:latest .
      - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker images...
      - docker push $REPOSITORY_URI:latest
      - docker push $REPOSITORY_URI:$IMAGE_TAG
      - echo Writing image definitions file...
      - printf '[{"name":"hello-world","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
artifacts:
    files: imagedefinitions.json
```

Spesifikasi build ditulis untuk definisi tugas sampel yang disediakan[Prasyarat](#ecs-cd-prereqs), digunakan oleh layanan Amazon ECS untuk tutorial ini. `REPOSITORY_URI`Nilai sesuai dengan `image` repositori (tanpa tag gambar apa pun), dan `hello-world` nilai di dekat akhir file sesuai dengan nama wadah dalam definisi tugas layanan. 

**Untuk menambahkan `buildspec.yml` file ke repositori sumber Anda**

1. Buka editor teks lalu salin dan tempel spesifikasi build di atas ke file baru.

1. Ganti `REPOSITORY_URI` value (`012345678910.dkr.ecr.us-west-2.amazonaws.com/hello-world`) dengan URI repositori Amazon ECR Anda (tanpa tag gambar apa pun) untuk image Docker Anda. Ganti `hello-world` dengan nama kontainer dalam definisi tugas layanan Anda yang mereferensikan gambar Docker Anda.

1. Komit dan dorong `buildspec.yml` file Anda ke repositori sumber Anda.

   1. Tambahkan file.

      ```
      git add .
      ```

   1. Lakukan perubahan.

      ```
      git commit -m "Adding build specification."
      ```

   1. Dorong komit.

      ```
      git push
      ```

## Langkah 2: Membuat Pipeline Deployment Berkelanjutan
<a name="pipeline-wizard"></a>

Gunakan CodePipeline wizard untuk membuat tahapan pipeline Anda dan menghubungkan repositori sumber Anda ke layanan ECS Anda.

**Untuk membuat alur Anda**

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

1. Pada halaman **Selamat Datang**, pilih **Buat pipeline**. 

   Jika ini adalah pertama kalinya Anda menggunakan CodePipeline, halaman pengantar muncul alih-alih **Selamat Datang**. Pilih **Mulai Sekarang**.

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**, ketikkan nama untuk pipeline Anda. Untuk tutorial ini, nama pipeline adalah **hello-world**.

1. Dalam **tipe Pipeline**, pertahankan pilihan default di **V2**. Jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md). Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, untuk **penyedia Sumber**, pilih ** AWS CodeCommit**.

   1. Untuk **nama Repositori**, pilih nama CodeCommit repositori yang akan digunakan sebagai lokasi sumber untuk pipeline Anda.

   1. Untuk **nama Branch**, pilih cabang yang akan digunakan dan pilih **Next**.

1. Pada **Langkah 4: Tambahkan halaman tahap build**, untuk **penyedia Build** pilih **AWS CodeBuild**, lalu pilih **Create project**.

   1. Untuk **nama Project**, pilih nama unik untuk proyek build Anda. Untuk tutorial ini, nama proyeknya adalah **hello-world**.

   1. Untuk **gambar Lingkungan**, pilih **Gambar terkelola**.

   1. Untuk **sistem operasi**, pilih **Amazon Linux 2**.

   1. Untuk **Runtime**, pilih **Standar**.

   1. Untuk **Gambar**, pilih **`aws/codebuild/amazonlinux2-x86_64-standard:3.0`**.

   1. Untuk **versi Gambar** dan **jenis Lingkungan**, gunakan nilai default.

   1. Pilih **Aktifkan bendera ini jika Anda ingin membuat gambar Docker atau ingin build Anda mendapatkan hak istimewa yang lebih tinggi**.

   1. Batalkan pilihan **CloudWatch log**. Anda mungkin perlu memperluas **Advanced**.

   1. Pilih **Lanjutkan ke CodePipeline**.

   1. Pilih **Berikutnya**.
**catatan**  
Wizard membuat peran CodeBuild layanan untuk proyek build Anda, yang disebut **codebuild- *build-project-name* -service-role**. Perhatikan nama peran ini, saat Anda menambahkan izin Amazon ECR ke sana nanti.

1. Pada **Langkah 5: Tambahkan halaman tahap penerapan, untuk **penyedia Deployment****, pilih **Amazon** ECS.

   1. Untuk **nama Cluster**, pilih klaster Amazon ECS tempat layanan Anda berjalan. Untuk tutorial ini, cluster adalah **default**.

   1. Untuk **nama Layanan**, pilih layanan yang akan diperbarui dan pilih **Berikutnya**. Untuk tutorial ini, nama layanannya adalah **hello-world**.

1. Pada halaman **Langkah 6: Tinjau**, tinjau konfigurasi pipeline Anda dan pilih **Buat pipeline** untuk membuat pipeline.
**catatan**  
Sekarang pipa telah dibuat, ia mencoba untuk menjalankan melalui tahapan pipa yang berbeda. Namun, CodeBuild peran default yang dibuat oleh wizard tidak memiliki izin untuk menjalankan semua perintah yang terdapat dalam `buildspec.yml` file, sehingga tahap build gagal. Bagian selanjutnya menambahkan izin untuk tahap build.

## Langkah 3: Tambahkan Izin Amazon ECR ke Peran CodeBuild
<a name="code-build-perms"></a>

 CodePipeline Wizard membuat peran IAM untuk proyek CodeBuild build, yang disebut **codebuild- *build-project-name* -service-role**. Untuk tutorial ini, namanya adalah **codebuild-hello-world-service-role**. Karena `buildspec.yml` file melakukan panggilan ke operasi Amazon ECR API, peran tersebut harus memiliki kebijakan yang memungkinkan izin untuk melakukan panggilan ECR Amazon ini. Prosedur berikut membantu Anda melampirkan izin yang tepat ke peran tersebut.

**Untuk menambahkan izin Amazon ECR ke peran CodeBuild**

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

1. Di panel navigasi sebelah kiri, pilih **Peran**.

1. Di kotak pencarian, ketik **codebuild-** dan pilih peran yang dibuat oleh CodePipeline wizard. Untuk tutorial ini, nama peran adalah **codebuild-hello-world-service-role**.

1. Pada halaman **Ringkasan**, pilih **Lampirkan kebijakan**.

1. Pilih kotak di sebelah kiri EC2 ContainerRegistryPowerUser kebijakan **Amazon**, dan pilih **Lampirkan kebijakan**.

## Langkah 4: Uji Pipa Anda
<a name="commit-change"></a>

Pipeline Anda harus memiliki segalanya untuk menjalankan penerapan AWS berkelanjutan end-to-end asli. Sekarang, uji fungsinya dengan mendorong perubahan kode ke repositori sumber Anda.

**Untuk menguji pipa Anda**

1. Buat perubahan kode ke repositori sumber yang dikonfigurasi, komit, dan dorong perubahan.

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

1. Pilih pipeline Anda dari daftar.

1. Perhatikan kemajuan pipa melalui tahapannya. Pipeline Anda harus selesai dan layanan Amazon ECS Anda menjalankan image Docker yang dibuat dari perubahan kode Anda.

# Tutorial: Membuat pipeline dengan sumber dan ECS-to-CodeDeploy penerapan Amazon ECR
<a name="tutorials-ecs-ecr-codedeploy"></a>

Dalam tutorial ini, Anda mengonfigurasi pipeline AWS CodePipeline yang menyebarkan aplikasi kontainer menggunakan blue/green penerapan yang mendukung gambar Docker. Dalam penerapan biru/hijau, Anda dapat meluncurkan versi baru aplikasi Anda bersama versi lama dan menguji versi baru sebelum Anda mengubah rute lalu lintas. Anda juga dapat memantau proses penerapan dan memutar kembali dengan cepat jika ada masalah.

**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.

**catatan**  
Tutorial ini untuk Amazon ECS untuk CodeDeploy tindakan penyebaran biru/hijau untuk. CodePipeline Untuk tutorial yang menggunakan tindakan penerapan standar Amazon ECS CodePipeline, lihat. [Tutorial: Penerapan Standar Amazon ECS dengan CodePipeline](ecs-cd-pipeline.md)

Pipeline yang telah selesai mendeteksi perubahan pada gambar Anda, yang disimpan dalam repositori gambar seperti Amazon ECR, dan digunakan CodeDeploy untuk merutekan dan menyebarkan lalu lintas ke cluster Amazon ECS dan penyeimbang beban. CodeDeploy menggunakan pendengar untuk mengalihkan lalu lintas ke port wadah yang diperbarui yang ditentukan dalam file. AppSpec Untuk informasi tentang cara penyeimbang beban, pendengar produksi, grup target, dan aplikasi Amazon ECS Anda digunakan dalam blue/green penerapan, lihat [Tutorial: Menerapkan Layanan Amazon ECS](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment.html).

Pipeline juga dikonfigurasi untuk menggunakan lokasi sumber, seperti CodeCommit, tempat definisi tugas Amazon ECS Anda disimpan. Dalam tutorial ini, Anda mengonfigurasi masing-masing sumber AWS daya ini dan kemudian membuat pipeline Anda dengan tahapan yang berisi tindakan untuk setiap sumber daya.

Pipeline pengiriman berkelanjutan Anda akan secara otomatis membuat dan menerapkan gambar kontainer setiap kali kode sumber diubah atau gambar dasar baru diunggah ke Amazon ECR.

Aliran ini menggunakan artefak berikut:
+ File image Docker yang menentukan nama container dan URI repositori repositori image Amazon ECR Anda.
+ Definisi tugas Amazon ECS yang mencantumkan nama gambar Docker, nama kontainer, nama layanan Amazon ECS, dan konfigurasi penyeimbang beban.
+  CodeDeploy AppSpec File yang menentukan nama file definisi tugas Amazon ECS, nama kontainer aplikasi yang diperbarui, dan port kontainer tempat CodeDeploy mengalihkan lalu lintas produksi. Ini juga dapat menentukan konfigurasi jaringan opsional dan fungsi Lambda yang dapat Anda jalankan selama kait peristiwa siklus hidup penerapan.

**catatan**  
Saat Anda melakukan perubahan ke repositori gambar Amazon ECR, tindakan sumber pipeline akan membuat `imageDetail.json` file untuk komit tersebut. Untuk informasi tentang `imageDetail.json` file, lihat[File ImageDetail.json untuk tindakan penerapan Amazon ECS blue/green](file-reference.md#file-reference-ecs-bluegreen).

Saat Anda membuat atau mengedit pipeline dan memperbarui atau menentukan artefak sumber untuk tahap penerapan, pastikan untuk menunjuk ke artefak sumber dengan nama dan versi terbaru yang ingin Anda gunakan. Setelah menyiapkan pipeline, saat membuat perubahan pada definisi gambar atau tugas, Anda mungkin perlu memperbarui file artefak sumber di repositori, lalu mengedit tahap penerapan di pipeline.

**Topics**
+ [Prasyarat](#tutorials-ecs-ecr-codedeploy-prereq)
+ [Langkah 1: Buat gambar dan dorong ke repositori Amazon ECR](#tutorials-ecs-ecr-codedeploy-imagerepository)
+ [Langkah 2: Buat definisi tugas dan file AppSpec sumber dan dorong ke CodeCommit repositori](#tutorials-ecs-ecr-codedeploy-taskdefinition)
+ [Langkah 3: Buat Application Load Balancer dan grup target](#tutorials-ecs-ecr-codedeploy-loadbal)
+ [Langkah 4: Buat kluster dan layanan Amazon ECS Anda](#tutorials-ecs-ecr-codedeploy-cluster)
+ [Langkah 5: Buat grup CodeDeploy aplikasi dan penyebaran Anda (platform komputasi ECS)](#tutorials-ecs-ecr-codedeploy-deployment)
+ [Langkah 6: Buat pipeline Anda](#tutorials-ecs-ecr-codedeploy-pipeline)
+ [Langkah 7: Buat perubahan pada pipeline Anda dan verifikasi penerapan](#tutorials-ecs-ecr-codedeploy-update)

## Prasyarat
<a name="tutorials-ecs-ecr-codedeploy-prereq"></a>

Anda harus sudah membuat sumber daya berikut:
+ Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ Luncurkan instance Amazon EC2 Linux dan instal Docker untuk membuat gambar seperti yang ditunjukkan dalam tutorial ini. Jika Anda sudah memiliki gambar yang ingin Anda gunakan, Anda dapat melewati prasyarat ini.

## Langkah 1: Buat gambar dan dorong ke repositori Amazon ECR
<a name="tutorials-ecs-ecr-codedeploy-imagerepository"></a>

Di bagian ini, Anda menggunakan Docker untuk membuat gambar dan kemudian menggunakan AWS CLI untuk membuat repositori Amazon ECR dan mendorong gambar ke repositori.

**catatan**  
Jika Anda sudah memiliki gambar yang ingin Anda gunakan, Anda dapat melewati langkah ini.

**Untuk membuat gambar**

1. Masuk ke instance Linux Anda di mana Anda telah menginstal Docker.

   Tarik gambar ke bawah untuk`nginx`. Perintah ini memberikan `nginx:latest` gambar:

   ```
   docker pull nginx
   ```

1. Jalankan **docker images**. Anda akan melihat gambar dalam daftar.

   ```
   docker images
   ```

**Untuk membuat repositori Amazon ECR dan mendorong gambar Anda**

1. Buat repositori Amazon ECR untuk menyimpan gambar Anda. Buat catatan `repositoryUri` di output.

   ```
   aws ecr create-repository --repository-name nginx
   ```

   Output:

   ```
   {
       "repository": {
           "registryId": "aws_account_id",
           "repositoryName": "nginx",
           "repositoryArn": "arn:aws:ecr:us-east-1:aws_account_id:repository/nginx",
           "createdAt": 1505337806.0,
           "repositoryUri": "aws_account_id.dkr.ecr.us-east-1.amazonaws.com/nginx"
       }
   }
   ```

1. Tandai gambar dengan `repositoryUri` nilai dari langkah sebelumnya.

   ```
   docker tag nginx:latest aws_account_id.dkr.ecr.us-east-1.amazonaws.com/nginx:latest
   ```

1. Jalankan **aws ecr get-login-password** perintah, seperti yang ditunjukkan dalam contoh ini untuk `us-west-2` Region dan ID akun 111122223333.

   ```
   aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com/nginx
   ```

1. Dorong gambar ke Amazon ECR menggunakan `repositoryUri` dari langkah sebelumnya.

   ```
   docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/nginx:latest
   ```

## Langkah 2: Buat definisi tugas dan file AppSpec sumber dan dorong ke CodeCommit repositori
<a name="tutorials-ecs-ecr-codedeploy-taskdefinition"></a>

Di bagian ini, Anda membuat file JSON definisi tugas dan mendaftarkannya ke Amazon ECS. Anda kemudian membuat AppSpec file untuk CodeDeploy dan menggunakan klien Git Anda untuk mendorong file ke CodeCommit repositori Anda.

**Untuk membuat definisi tugas untuk gambar Anda**

1. Buat file bernama `taskdef.json` dengan isi berikut ini. Untuk`image`, masukkan nama gambar Anda, seperti nginx. Nilai ini diperbarui saat pipeline Anda berjalan.
**catatan**  
Pastikan bahwa peran eksekusi yang ditentukan dalam definisi tugas berisi`AmazonECSTaskExecutionRolePolicy`. Untuk informasi selengkapnya, lihat [Peran IAM Eksekusi Tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) di Panduan Pengembang *Amazon ECS.*

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole",
       "containerDefinitions": [
           {
               "name": "sample-website",
               "image": "nginx",
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "networkMode": "awsvpc",
       "cpu": "256",
       "memory": "512",
       "family": "ecs-demo"
   }
   ```

1. Daftarkan definisi tugas Anda dengan `taskdef.json` file.

   ```
   aws ecs register-task-definition --cli-input-json file://taskdef.json
   ```

1. Setelah definisi tugas terdaftar, edit file Anda untuk menghapus nama gambar dan sertakan teks `<IMAGE1_NAME>` placeholder di bidang gambar.

   ```
   {
       "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole",
       "containerDefinitions": [
           {
               "name": "sample-website",
               "image": "<IMAGE1_NAME>",
               "essential": true,
               "portMappings": [
                   {
                       "hostPort": 80,
                       "protocol": "tcp",
                       "containerPort": 80
                   }
               ]
           }
       ],
       "requiresCompatibilities": [
           "FARGATE"
       ],
       "networkMode": "awsvpc",
       "cpu": "256",
       "memory": "512",
       "family": "ecs-demo"
   }
   ```

**Untuk membuat AppSpec file**
+  AppSpec File ini digunakan untuk CodeDeploy penerapan. File, yang mencakup bidang opsional, menggunakan format ini:

  ```
  version: 0.0
  Resources:
    - TargetService:
        Type: AWS::ECS::Service
        Properties:
          TaskDefinition: "task-definition-ARN"
          LoadBalancerInfo:
            ContainerName: "container-name"
            ContainerPort: container-port-number
  # Optional properties
          PlatformVersion: "LATEST"
          NetworkConfiguration:
              AwsvpcConfiguration:
                Subnets: ["subnet-name-1", "subnet-name-2"]
                SecurityGroups: ["security-group"]
                AssignPublicIp: "ENABLED"
  Hooks:
  - BeforeInstall: "BeforeInstallHookFunctionName"
  - AfterInstall: "AfterInstallHookFunctionName"
  - AfterAllowTestTraffic: "AfterAllowTestTrafficHookFunctionName"
  - BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName"
  - AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"
  ```

  Untuk informasi selengkapnya tentang AppSpec file, termasuk contoh, lihat [Referensi CodeDeploy AppSpec File](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html).

  Buat file bernama `appspec.yaml` dengan isi berikut ini. Untuk`TaskDefinition`, jangan mengubah teks `<TASK_DEFINITION>` placeholder. Nilai ini diperbarui saat pipeline Anda berjalan.

  ```
  version: 0.0
  Resources:
    - TargetService:
        Type: AWS::ECS::Service
        Properties:
          TaskDefinition: <TASK_DEFINITION>
          LoadBalancerInfo:
            ContainerName: "sample-website"
            ContainerPort: 80
  ```

**Untuk mendorong file ke CodeCommit repositori Anda**

1. Dorong atau unggah file ke CodeCommit repositori Anda. File-file ini adalah artefak sumber yang dibuat oleh wizard **Create pipeline** untuk tindakan penerapan Anda. CodePipeline File Anda akan terlihat seperti ini di direktori lokal Anda:

   ```
   /tmp
     |my-demo-repo
       |-- appspec.yaml
       |-- taskdef.json
   ```

1. Pilih metode yang ingin Anda gunakan untuk mengunggah file Anda:

   1. Untuk menggunakan baris perintah git Anda dari repositori kloning di komputer lokal Anda:

      1. Ubah direktori ke repositori lokal Anda:

         ```
         (For Linux, macOS, or Unix) cd /tmp/my-demo-repo
         (For Windows) cd c:\temp\my-demo-repo
         ```

      1. Jalankan perintah berikut untuk mementaskan semua file Anda sekaligus:

         ```
         git add -A
         ```

      1. Jalankan perintah berikut untuk mengkomit file dengan pesan komit:

         ```
         git commit -m "Added task definition files"
         ```

      1. Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke CodeCommit repositori Anda:

         ```
         git push
         ```

   1. Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda:

      1. **Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.**

      1. Pilih **Tambahkan file**, lalu pilih **Unggah file**.

      1. Pilih **Pilih file**, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih **Perubahan commit**.

      1. Ulangi langkah ini untuk setiap file yang ingin Anda unggah.

## Langkah 3: Buat Application Load Balancer dan grup target
<a name="tutorials-ecs-ecr-codedeploy-loadbal"></a>

Di bagian ini, Anda membuat Application Load Balancer Amazon EC2. Anda menggunakan nama subnet dan nilai grup target yang Anda buat dengan penyeimbang beban nanti, saat Anda membuat layanan Amazon ECS. Anda dapat membuat Application Load Balancer atau Network Load Balancer. Penyeimbang beban harus menggunakan VPC dengan dua subnet publik di Availability Zone yang berbeda. Dalam langkah-langkah ini, Anda mengonfirmasi VPC default Anda, membuat penyeimbang beban, dan kemudian membuat dua grup target untuk penyeimbang beban Anda. Untuk informasi selengkapnya, lihat [Grup Target untuk Penyeimbang Beban Jaringan Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html).

**Untuk memverifikasi VPC default dan subnet publik**

1. Masuk ke Konsol Manajemen AWS dan buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Verifikasi VPC default yang akan digunakan. Di panel navigasi, pilih **Your VPCs**. Perhatikan VPC mana yang menunjukkan **Ya di kolom** **VPC** Default. Ini adalah VPC default. Ini berisi subnet default untuk Anda pilih.

1. Pilih **Subnet**. Pilih dua subnet yang menunjukkan **Ya di kolom** **subnet Default**.
**catatan**  
Catat subnet IDs Anda. Anda membutuhkannya nanti dalam tutorial ini.

1. Pilih subnet, lalu pilih tab **Deskripsi**. Verifikasi bahwa subnet yang ingin Anda gunakan berada di Availability Zone yang berbeda.

1. Pilih subnet, lalu pilih tab **Route Table**. Untuk memverifikasi bahwa setiap subnet yang ingin Anda gunakan adalah subnet publik, konfirmasikan bahwa baris gateway disertakan dalam tabel rute.

**Untuk membuat Application Load Balancer Amazon EC2**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Load Balancers**.

1. Pilih **Buat Penyeimbang Beban**.

1. **Pilih **Application Load Balancer**, lalu pilih Create.**

1. Di **Nama**, masukkan nama penyeimbang beban Anda.

1. Dalam **Skema**, pilih yang menghadap ke **internet**.

1. Dalam **jenis alamat IP**, pilih **ipv4**.

1. Konfigurasikan dua port pendengar untuk penyeimbang beban Anda:

   1. **Di bawah **Protokol Load Balancer**, pilih HTTP.** Di bawah **Port Load Balancer, masukkan**. **80**

   1. Pilih **Tambahkan pendengar**.

   1. **Di bawah **Protokol Load Balancer** untuk pendengar kedua, pilih HTTP.** Di bawah **Port Load Balancer, masukkan**. **8080**

1. Di bawah **Availability Zones**, di **VPC**, pilih VPC default. Selanjutnya, pilih dua subnet default yang ingin Anda gunakan.

1. Pilih **Selanjutnya: Konfigurasikan Pengaturan Keamanan**.

1. Pilih **Selanjutnya: Konfigurasikan Grup Keamanan**.

1. Pilih **Pilih grup keamanan yang ada**, dan buat catatan ID grup keamanan.

1. Pilih **Selanjutnya: Konfigurasi Perutean**.

1. Di **Grup target**, pilih **Grup target baru** dan konfigurasikan grup target pertama Anda:

   1. Di **Nama**, masukkan nama grup target (misalnya,**target-group-1**).

   1. Pada **tipe Target**, pilih **IP**.

   1. Dalam **Protokol** pilih **HTTP**. Di **Pelabuhan**, masukkan**80**.

   1. Pilih **Selanjutnya: Daftarkan Target**.

1. Pilih **Berikutnya: Tinjau**, lalu pilih **Buat**.

**Untuk membuat grup target kedua untuk penyeimbang beban Anda**

1. Setelah penyeimbang beban Anda disediakan, buka konsol Amazon EC2. Di panel navigasi, pilih **Target Groups**.

1. Pilih**Buat grup target**.

1. Di **Nama**, masukkan nama grup target (misalnya,**target-group-2**).

1. Pada **tipe Target**, pilih **IP**.

1. Dalam **Protokol** pilih **HTTP**. Di **Pelabuhan**, masukkan**8080**.

1. Di **VPC**, pilih VPC default.

1. Pilih **Buat**.
**catatan**  
Anda harus memiliki dua grup target yang dibuat untuk penyeimbang beban Anda agar penerapan Anda berjalan. Anda hanya perlu membuat catatan ARN dari kelompok sasaran pertama Anda. ARN ini digunakan dalam file `create-service` JSON pada langkah berikutnya.

**Untuk memperbarui penyeimbang beban Anda untuk memasukkan grup target kedua Anda**

1. Buka konsol Amazon EC2. Di panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban Anda, lalu pilih tab **Listeners**. **Pilih listener dengan port 8080, lalu pilih Edit.**

1. Pilih ikon pensil di sebelah **Teruskan ke**. Pilih grup target kedua Anda, lalu pilih tanda centang. Pilih **Perbarui** untuk menyimpan pembaruan.

## Langkah 4: Buat kluster dan layanan Amazon ECS Anda
<a name="tutorials-ecs-ecr-codedeploy-cluster"></a>

Di bagian ini, Anda membuat kluster dan layanan Amazon ECS tempat CodeDeploy merutekan lalu lintas selama penerapan (ke kluster Amazon ECS, bukan instans EC2). Untuk membuat layanan Amazon ECS, Anda harus menggunakan nama subnet, grup keamanan, dan nilai grup target yang Anda buat dengan penyeimbang beban untuk membuat layanan Anda.

**catatan**  
Bila Anda menggunakan langkah-langkah ini untuk membuat klaster Amazon ECS, Anda menggunakan template cluster **Networking only**, yang menyediakan container AWS Fargate. AWS Fargate adalah teknologi yang mengelola infrastruktur instans kontainer Anda untuk Anda. Anda tidak perlu memilih atau membuat instans Amazon EC2 secara manual untuk cluster Amazon ECS Anda.

**Untuk membuat cluster Amazon ECS**

1. Buka konsol klasik Amazon ECS di [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

1. Di panel navigasi, pilih **Kluster**.

1. Pilih **Buat kluster**.

1. Pilih template cluster **Networking only** yang menggunakan AWS Fargate, lalu pilih **Next** step.

1. Masukkan nama cluster pada halaman **Configure cluster**. Anda dapat menambahkan tag opsional untuk sumber daya Anda. Pilih **Buat**.

**Untuk membuat layanan Amazon ECS**

Gunakan AWS CLI untuk membuat layanan Anda di Amazon ECS.

1. Buat file JSON dan beri nama. `create-service.json` Tempel berikut ini ke dalam file JSON.

   Untuk `taskDefinition` bidang ini, saat Anda mendaftarkan definisi tugas di Amazon ECS, Anda memberinya keluarga. Ini mirip dengan nama untuk beberapa versi definisi tugas, ditentukan dengan nomor revisi. Dalam contoh ini, gunakan "`ecs-demo:1`" untuk keluarga dan nomor revisi dalam file Anda. Gunakan nama subnet, grup keamanan, dan nilai grup target yang Anda buat dengan penyeimbang beban Anda. [Langkah 3: Buat Application Load Balancer dan grup target](#tutorials-ecs-ecr-codedeploy-loadbal)
**catatan**  
Anda perlu memasukkan ARN grup target Anda dalam file ini. **Buka konsol Amazon EC2 dan dari panel navigasi, di bawah **LOAD BALANCING**, pilih Grup Target.** Pilih kelompok target pertama Anda. Salin ARN Anda dari tab **Deskripsi**.

   ```
   {
       "taskDefinition": "family:revision-number",
       "cluster": "my-cluster",
       "loadBalancers": [
           {
               "targetGroupArn": "target-group-arn",
               "containerName": "sample-website",
               "containerPort": 80
           }
       ],
       "desiredCount": 1,
       "launchType": "FARGATE",
       "schedulingStrategy": "REPLICA",
       "deploymentController": {
           "type": "CODE_DEPLOY"
       },
       "networkConfiguration": {
           "awsvpcConfiguration": {
               "subnets": [
                   "subnet-1",
                   "subnet-2"
               ],
               "securityGroups": [
                   "security-group"
               ],
               "assignPublicIp": "ENABLED"
           }
       }
   }
   ```

1. Jalankan **create-service** perintah, tentukan file JSON:
**penting**  
Pastikan untuk menyertakan `file://` sebelum nama file. Diperlukan dalam perintah ini.

   Contoh ini menciptakan layanan bernama`my-service`.
**catatan**  
Perintah contoh ini membuat layanan bernama my-service. Jika Anda sudah memiliki layanan dengan nama ini, perintah mengembalikan kesalahan.

   ```
   aws ecs create-service --service-name my-service --cli-input-json file://create-service.json
   ```

   Output mengembalikan kolom deskripsi untuk layanan Anda.

1. Jalankan **describe-services** perintah untuk memverifikasi bahwa layanan Anda telah dibuat.

   ```
   aws ecs describe-services --cluster cluster-name --services service-name
   ```

## Langkah 5: Buat grup CodeDeploy aplikasi dan penyebaran Anda (platform komputasi ECS)
<a name="tutorials-ecs-ecr-codedeploy-deployment"></a>

Saat Anda membuat grup CodeDeploy aplikasi dan penerapan untuk platform komputasi Amazon ECS, aplikasi akan digunakan selama penerapan untuk mereferensikan grup penerapan, grup target, pendengar, dan perilaku pengalihan rute lalu lintas yang benar.

**Untuk membuat CodeDeploy aplikasi**

1. Buka CodeDeploy konsol dan pilih **Buat aplikasi**.

1. Di **Nama aplikasi**, masukkan nama yang ingin Anda gunakan.

1. Di **platform Compute**, pilih **Amazon ECS**.

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

**Untuk membuat CodeDeploy grup penyebaran**

1. Pada tab **grup Deployment halaman aplikasi Anda, pilih Buat grup** **penerapan**.

1. Dalam **nama grup Deployment**, masukkan nama yang menjelaskan grup penyebaran.

1. Dalam **peran Layanan**, pilih peran layanan yang memberikan CodeDeploy akses ke Amazon ECS. Untuk membuat peran layanan baru, ikuti langkah-langkah berikut:

   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 **CodeDeploy**. Di bawah **Pilih kasus penggunaan Anda**, pilih **CodeDeploy - ECS.** Pilih **Berikutnya: Izin**. Kebijakan yang `AWSCodeDeployRoleForECS` dikelola sudah melekat pada peran tersebut.

   1. Pilih **Berikutnya: Tag**, dan **Berikutnya: Tinjau**.

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

1. Dalam **konfigurasi Lingkungan**, pilih nama cluster Amazon ECS dan nama layanan.

1. Dari **Load balancer**, pilih nama penyeimbang beban yang melayani lalu lintas ke layanan Amazon ECS Anda.

1. Dari **port pendengar Produksi**, pilih port dan protokol untuk pendengar yang menyajikan jalur produksi ke layanan Amazon ECS Anda. Dari **port Test listener**, pilih port dan protokol untuk test listener.

1. Dari nama **grup target 1 dan nama** **Grup target 2**, pilih grup target yang digunakan untuk merutekan lalu lintas selama penyebaran Anda. Pastikan bahwa ini adalah kelompok target yang Anda buat untuk penyeimbang beban Anda.

1. Pilih **Rute lalu lintas segera** untuk menentukan berapa lama setelah penerapan berhasil untuk mengalihkan lalu lintas ke tugas Amazon ECS Anda yang diperbarui.

1. Pilih **Buat grup penyebaran**.

## Langkah 6: Buat pipeline Anda
<a name="tutorials-ecs-ecr-codedeploy-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+  CodeCommit Tindakan di mana artefak sumber adalah definisi tugas dan AppSpec file.
+ Tahap sumber dengan aksi sumber Amazon ECR di mana artefak sumber adalah file gambar.
+ Tahap penerapan dengan tindakan penerapan Amazon ECS di mana penerapan berjalan dengan grup CodeDeploy aplikasi dan penerapan.

**Untuk membuat pipeline dua tahap dengan wizard**

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**MyImagePipeline**.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan tahap sumber**, di **penyedia Sumber**, pilih **AWS CodeCommit**. Dalam **nama Repositori**, pilih nama CodeCommit repositori yang Anda buat. [Langkah 1: Buat CodeCommit repositori](tutorials-simple-codecommit.md#codecommit-create-repository) Di **Nama cabang**, pilih nama cabang yang berisi pembaruan kode terbaru 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**:

   1. Di **penyedia Deploy**, pilih **Amazon ECS (Biru/Hijau**). Di **Nama aplikasi**, masukkan atau pilih nama aplikasi dari daftar, seperti`codedeployapp`. Di **grup Deployment**, masukkan atau pilih nama grup penyebaran dari daftar, seperti. `codedeploydeplgroup`

       
**catatan**  
Nama “Deploy” adalah nama yang diberikan secara default ke tahap yang dibuat di **Langkah 4: Deploy** step, sama seperti “Source” adalah nama yang diberikan untuk tahap pertama pipeline.

   1. Di bawah **definisi tugas Amazon ECS**, pilih **SourceArtifact**. Di lapangan, masukkan**taskdef.json**.

   1. Di bawah **AWS CodeDeploy AppSpec file**, pilih **SourceArtifact**. Di lapangan, masukkan**appspec.yaml**.
**catatan**  
Pada titik ini, jangan mengisi informasi apa pun di bawah **Gambar definisi tugas perbarui secara dinamis**.

   1. Pilih **Berikutnya**.

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

**Untuk menambahkan tindakan sumber ECR Amazon ke pipeline Anda**

Lihat pipeline Anda dan tambahkan tindakan sumber Amazon ECR ke pipeline Anda.

1. Pilih pipa Anda. Di kiri atas, pilih **Edit**.

1. Pada tahap sumber, pilih **Edit tahap**.

1. Tambahkan aksi paralel dengan memilih **\$1 Tambahkan tindakan** di sebelah tindakan CodeCommit sumber Anda.

1. Di **Nama tindakan**, masukkan nama (misalnya,**Image**).

1. Di **penyedia Action**, pilih **Amazon ECR**.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/ECR-source-action.png)

1. Dalam nama **Repositori, pilih nama** repositori Amazon ECR Anda.

1. Di **tag Gambar**, tentukan nama dan versi gambar, jika berbeda dari yang terbaru.

1. Di **artefak Output**, pilih artefak keluaran default (misalnya,`MyImage`) yang berisi nama gambar dan informasi URI repositori yang Anda inginkan untuk digunakan tahap selanjutnya.

1. Pilih **Simpan** di layar tindakan. Pilih **Selesai** di layar panggung. Pilih **Simpan** di pipa. Pesan menunjukkan aturan Amazon CloudWatch Events yang akan dibuat untuk tindakan sumber Amazon ECR.

**Untuk menghubungkan artefak sumber Anda ke tindakan penerapan**

1. Pilih **Edit** pada tahap Deploy Anda dan pilih ikon untuk mengedit tindakan **Amazon ECS (Biru/Hijau**).

1. Gulir ke bagian bawah panel. Di **artefak Input**, pilih **Tambah**. Tambahkan artefak sumber dari repositori Amazon ECR baru Anda (misalnya,). `MyImage`

1. Dalam **Definisi Tugas **SourceArtifact****, pilih, lalu verifikasi **taskdef.json** dimasukkan.

1. Di **AWS CodeDeploy AppSpec File**, pilih **SourceArtifact**, lalu verifikasi **appspec.yaml** dimasukkan.

1. Dalam **Perbarui gambar definisi tugas secara dinamis**, di **Artifact Input dengan URI Gambar**, **MyImage**pilih, lalu masukkan teks placeholder yang digunakan dalam file:. `taskdef.json` ** IMAGE1\$1NAME** Pilih **Simpan**.

1. Di AWS CodePipeline panel, pilih **Simpan perubahan pipeline**, lalu pilih **Simpan perubahan**. Lihat pipeline Anda yang diperbarui.

   Setelah contoh pipeline ini dibuat, konfigurasi tindakan untuk entri konsol muncul di struktur pipeline sebagai berikut:

   ```
   "configuration": {
     "AppSpecTemplateArtifact": "SourceArtifact",
     "AppSpecTemplatePath": "appspec.yaml",
     "TaskDefinitionTemplateArtifact": "SourceArtifact",
     "TaskDefinitionTemplatePath": "taskdef.json",
     "ApplicationName": "codedeployapp",
     "DeploymentGroupName": "codedeploydeplgroup",
     "Image1ArtifactName": "MyImage",
     "Image1ContainerName": "IMAGE1_NAME"
   },
   ```

1. Untuk mengirimkan perubahan dan memulai pembuatan pipeline, pilih **Rilis perubahan**, lalu pilih **Rilis**.

1. Pilih tindakan penerapan untuk melihatnya CodeDeploy dan melihat kemajuan pergeseran lalu lintas.
**catatan**  
Anda mungkin melihat langkah penerapan yang menunjukkan waktu tunggu opsional. Secara default, CodeDeploy menunggu satu jam setelah penerapan berhasil sebelum menghentikan set tugas asli. Anda dapat menggunakan waktu ini untuk memutar kembali atau menghentikan tugas, tetapi penerapan Anda akan selesai saat set tugas dihentikan.

## Langkah 7: Buat perubahan pada pipeline Anda dan verifikasi penerapan
<a name="tutorials-ecs-ecr-codedeploy-update"></a>

Buat perubahan pada gambar Anda dan kemudian dorong perubahan ke repositori Amazon ECR Anda. Ini memicu pipeline Anda untuk berjalan. Verifikasi bahwa perubahan sumber gambar Anda diterapkan.

# Tutorial: Buat pipeline yang menerapkan keterampilan Amazon Alexa
<a name="tutorials-alexa-skills-kit"></a>

Dalam tutorial ini, Anda mengonfigurasi pipeline yang terus-menerus memberikan keterampilan Alexa Anda menggunakan Alexa Skills Kit sebagai penyedia penerapan di tahap penerapan Anda. Pipeline yang telah selesai mendeteksi perubahan pada keahlian Anda saat Anda membuat perubahan pada file sumber di repositori sumber Anda. Pipeline kemudian menggunakan Alexa Skills Kit untuk menyebarkan ke tahap pengembangan keterampilan Alexa.

**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.

**catatan**  
Fitur ini tidak tersedia di Wilayah Asia Pasifik (Hong Kong) atau Eropa (Milan). Untuk menggunakan tindakan penerapan lain yang tersedia di Wilayah tersebut, lihat[Menerapkan integrasi tindakan](integrations-action-type.md#integrations-deploy).

Untuk membuat skill kustom Anda sebagai fungsi Lambda, lihat [Menghosting Keterampilan Kustom sebagai Fungsi Lambda AWS](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html). Anda juga dapat membuat pipeline yang menggunakan file sumber Lambda dan CodeBuild proyek untuk menyebarkan perubahan ke Lambda untuk keahlian Anda.

## Prasyarat
<a name="tutorials-alexa-skills-kit-prereq"></a>

Anda harus sudah memiliki yang berikut:
+ Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ Akun pengembang Amazon. Ini adalah akun yang memiliki keterampilan Alexa Anda. Anda dapat membuat akun secara gratis di [Alexa Skills Kit](https://developer.amazon.com/alexa-skills-kit). 
+ Keterampilan Alexa. Anda dapat membuat contoh keterampilan menggunakan tutorial [Get Custom Skill Sample Code](https://developer.amazon.com/docs/custom-skills/use-the-alexa-skills-kit-samples.html).
+ Instal ASK CLI dan konfigurasikan menggunakan kredensional `ask init` Anda AWS . Lihat [Menginstal dan menginisialisasi ASK CLI](https://developer.amazon.com/docs/smapi/quick-start-alexa-skills-kit-command-line-interface.html#install-initialize).

## Langkah 1: Buat profil keamanan LWA layanan pengembang Alexa
<a name="tutorials-alexa-skills-kit-profile"></a>

Di bagian ini, Anda membuat profil keamanan untuk digunakan dengan Login with Amazon (LWA). Jika Anda sudah memiliki profil, Anda dapat melewati langkah ini.
+ Gunakan langkah-langkah [generate-lwa-tokens](https://developer.amazon.com/docs/smapi/ask-cli-command-reference.html#generate-lwa-tokens)untuk membuat Profil Keamanan.
+ Setelah Anda membuat profil, catat **ID Klien** dan **Rahasia Klien**.
+ Pastikan Anda memasukkan **Pengembalian yang Diizinkan URLs** seperti yang disediakan dalam instruksi. URLs Izinkan perintah ASK CLI untuk mengarahkan ulang permintaan token penyegaran.

## Langkah 2: Buat file sumber keterampilan Alexa dan dorong ke repositori Anda CodeCommit
<a name="tutorials-alexa-skills-kit-push"></a>

Di bagian ini, Anda membuat dan mendorong file sumber keterampilan Alexa Anda ke repositori yang digunakan pipeline untuk tahap sumber Anda. Untuk keterampilan yang telah Anda buat di konsol pengembang Amazon, Anda memproduksi dan mendorong yang berikut ini: 
+ File `skill.json`.
+ Sebuah `interactionModel/custom` folder.
**catatan**  
Struktur direktori ini sesuai dengan persyaratan format paket keterampilan Alexa Skills Kit, sebagaimana diuraikan dalam format paket [Keterampilan](https://developer.amazon.com/docs/smapi/skill-package-api-reference.html#skill-package-format). Jika struktur direktori Anda tidak menggunakan format paket keterampilan yang benar, perubahan tidak berhasil diterapkan ke konsol Alexa Skills Kit.

**Untuk membuat file sumber untuk keahlian Anda**

1. Ambil ID keahlian Anda dari konsol pengembang Alexa Skills Kit. Gunakan perintah ini:

   ```
   ask api list-skills
   ```

   Temukan keahlian Anda berdasarkan nama dan kemudian salin ID terkait di `skillId` bidang.

1. Hasilkan `skill.json` file yang berisi detail keahlian Anda. Gunakan perintah ini:

   ```
   ask api get-skill -s skill-ID > skill.json
   ```

1. (Opsional) Buat `interactionModel/custom` folder.

   Gunakan perintah ini untuk menghasilkan file model interaksi di dalam folder. Untuk lokal, tutorial ini menggunakan en-US sebagai lokal dalam nama file.

   ```
   ask api get-model --skill-id skill-ID --locale locale >
       ./interactionModel/custom/locale.json
   ```

**Untuk mendorong file ke CodeCommit repositori Anda**

1. Dorong atau unggah file ke CodeCommit repositori Anda. File-file ini adalah artefak sumber yang dibuat oleh wizard **Create Pipeline** untuk tindakan penerapan Anda. AWS CodePipeline File Anda akan terlihat seperti ini di direktori lokal Anda:

   ```
   skill.json
   /interactionModel
     /custom
       |en-US.json
   ```

1. Pilih metode yang ingin Anda gunakan untuk mengunggah file Anda:

   1. Untuk menggunakan baris perintah Git dari repositori kloning di komputer lokal Anda:

      1. Jalankan perintah berikut untuk mementaskan semua file Anda sekaligus:

         ```
         git add -A
         ```

      1. Jalankan perintah berikut untuk mengkomit file dengan pesan komit:

         ```
         git commit -m "Added Alexa skill files"
         ```

      1. Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke CodeCommit repositori Anda:

         ```
         git push
         ```

   1. Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda: 

      1. **Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.**

      1. Pilih **Tambahkan file**, lalu pilih **Unggah file**. 

      1. Pilih **Pilih file**, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih **Perubahan commit**.

      1. Ulangi langkah ini untuk setiap file yang ingin Anda unggah.

## Langkah 3: Gunakan perintah ASK CLI untuk membuat token penyegaran
<a name="tutorials-alexa-skills-kit-token"></a>

CodePipeline menggunakan token penyegaran berdasarkan ID klien dan rahasia di akun pengembang Amazon Anda untuk mengotorisasi tindakan yang dilakukannya atas nama Anda. Di bagian ini, Anda menggunakan ASK CLI untuk membuat token. Anda menggunakan kredensi ini saat menggunakan wizard **Create Pipeline**.

**Untuk membuat token penyegaran dengan kredensi akun pengembang Amazon Anda**

1. Gunakan perintah berikut ini. 

   ```
   ask util generate-lwa-tokens
   ```

1. Saat diminta, masukkan ID klien dan rahasia Anda seperti yang ditunjukkan dalam contoh ini: 

   ```
   ? Please type in the client ID: 
   amzn1.application-client.example112233445566
   ? Please type in the client secret:
   example112233445566
   ```

1. Halaman browser masuk ditampilkan. Masuk dengan kredensi akun pengembang Amazon Anda.

1. Kembali ke layar baris perintah. Token akses dan token penyegaran dihasilkan dalam output. Salin token penyegaran yang dikembalikan dalam output.

## Langkah 4: Buat pipeline Anda
<a name="tutorials-alexa-skills-kit-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan CodeCommit aksi di mana artefak sumber adalah file keterampilan Alexa yang mendukung keahlian Anda.
+ Tahap penyebaran dengan tindakan penerapan Alexa Skills Kit.

**Untuk membuat alur dengan wizard**

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. Pilih AWS Wilayah tempat Anda ingin membuat proyek dan sumber dayanya. Runtime skill Alexa hanya tersedia di Wilayah berikut:
   + Asia Pasifik (Tokyo)
   + Eropa (Irlandia)
   + AS Timur (Virginia Utara)
   + AS Barat (Oregon)

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**MyAlexaPipeline**.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan tahap sumber**, di **penyedia Sumber**, pilih **AWS CodeCommit**. Dalam **nama Repositori**, pilih nama CodeCommit repositori yang Anda buat. [Langkah 1: Buat CodeCommit repositori](tutorials-simple-codecommit.md#codecommit-create-repository) Di **Nama cabang**, pilih nama cabang yang berisi pembaruan kode terbaru Anda.

   Setelah Anda memilih nama repositori dan cabang, pesan menunjukkan aturan Amazon CloudWatch Events yang akan dibuat untuk pipeline ini. 

   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**:

   1. Di **penyedia Deploy**, pilih **Alexa Skills Kit**. 

   1. Di **ID keterampilan Alexa, masukkan ID** keterampilan yang ditetapkan untuk keahlian Anda di konsol pengembang Alexa Skills Kit.

   1. Di **Client ID**, masukkan ID aplikasi yang Anda daftarkan.

   1. Dalam **rahasia Klien**, masukkan rahasia yang Anda pilih saat mendaftar.

   1. Di **Refresh token**, masukkan token yang Anda buat di langkah 3.  
![\[Langkah 6: Menyebarkan halaman untuk tindakan Alexa Skills Kit\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/alexa-deploy.png)

   1. Pilih **Berikutnya**.

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

## Langkah 5: Buat perubahan pada file sumber apa pun dan verifikasi penyebaran
<a name="tutorials-alexa-skills-kit-update"></a>

Buat perubahan pada keahlian Anda dan kemudian dorong perubahan ke repositori Anda. Ini memicu pipeline Anda untuk berjalan. Verifikasi bahwa keahlian Anda diperbarui di [konsol pengembang Alexa Skills Kit](https://developer.amazon.com/alexa/console/ask).

# Tutorial: Membuat pipeline yang menggunakan Amazon S3 sebagai penyedia penerapan
<a name="tutorials-s3deploy"></a>

Dalam tutorial ini, Anda mengonfigurasi pipeline yang terus-menerus mengirimkan file menggunakan Amazon S3 sebagai penyedia tindakan penerapan di tahap penerapan. Pipeline yang telah selesai mendeteksi perubahan saat Anda membuat perubahan pada file sumber di repositori sumber Anda. Pipeline kemudian menggunakan Amazon S3 untuk menyebarkan file ke bucket Anda. Setiap kali Anda memodifikasi atau menambahkan file situs web Anda di lokasi sumber Anda, penyebaran membuat situs web dengan file terbaru Anda. 

**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.

**catatan**  
Bahkan jika Anda menghapus file dari repositori sumber, tindakan penerapan S3 tidak menghapus objek S3 yang sesuai dengan file yang dihapus.

Tutorial ini menyediakan dua opsi:
+ Buat pipeline yang menyebarkan situs web statis ke bucket publik S3 Anda. Contoh ini membuat pipeline dengan aksi AWS CodeCommit sumber dan tindakan penerapan Amazon S3. Lihat [Opsi 1: Menyebarkan file situs web statis ke Amazon S3](#tutorials-s3deploy-acc).
+ Buat pipeline yang mengkompilasi TypeScript kode sampel ke dalam JavaScript dan menyebarkan artefak CodeBuild keluaran ke bucket S3 Anda untuk arsip. Contoh ini membuat pipeline dengan aksi sumber Amazon S3, tindakan CodeBuild build, dan tindakan penerapan Amazon S3. Lihat [Opsi 2: Menerapkan file arsip bawaan ke Amazon S3 dari bucket sumber S3](#tutorials-s3deploy-s3source).

**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).

## Opsi 1: Menyebarkan file situs web statis ke Amazon S3
<a name="tutorials-s3deploy-acc"></a>

Dalam contoh ini, Anda mengunduh contoh file template situs web statis, mengunggah file ke AWS CodeCommit repositori, membuat bucket, dan mengonfigurasinya untuk hosting. Selanjutnya, Anda menggunakan AWS CodePipeline konsol untuk membuat pipeline dan menentukan konfigurasi penerapan Amazon S3.

### Prasyarat
<a name="tutorials-s3deploy-acc-prereq"></a>

Anda harus sudah memiliki yang berikut:
+ Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. [Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md)
+ File sumber untuk situs web statis Anda. Gunakan tautan ini untuk mengunduh [contoh situs web statis](samples/sample-website.zip). Unduhan sample-website.zip menghasilkan file-file berikut: 
  + Sebuah `index.html` file
  + Sebuah `main.css` file
  + Sebuah `graphic.jpg` file
+ Bucket S3 yang dikonfigurasi untuk hosting situs web. Lihat [Hosting situs web statis di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). Pastikan Anda membuat bucket di Wilayah yang sama dengan pipeline.
**catatan**  
Untuk meng-host situs web, bucket Anda harus memiliki akses baca publik, yang memberi semua orang akses baca. Dengan pengecualian hosting situs web, Anda harus menjaga pengaturan akses default yang memblokir akses publik ke bucket S3.

### Langkah 1: Dorong file sumber ke CodeCommit repositori Anda
<a name="tutorials-s3deploy-acc-push"></a>

Di bagian ini, dorong file sumber Anda ke repositori yang digunakan pipeline untuk tahap sumber Anda.

**Untuk mendorong file ke CodeCommit repositori Anda**

1. Ekstrak file sampel yang diunduh. Jangan mengunggah file ZIP ke repositori Anda.

1. Dorong atau unggah file ke CodeCommit repositori Anda. File-file ini adalah artefak sumber yang dibuat oleh wizard **Create Pipeline** untuk tindakan penerapan Anda. CodePipeline File Anda akan terlihat seperti ini di direktori lokal Anda:

   ```
   index.html
   main.css
   graphic.jpg
   ```

1. Anda dapat menggunakan Git atau CodeCommit konsol untuk mengunggah file Anda:

   1. Untuk menggunakan baris perintah Git dari repositori kloning di komputer lokal Anda:

      1. Jalankan perintah berikut untuk mementaskan semua file Anda sekaligus:

         ```
         git add -A
         ```

      1. Jalankan perintah berikut untuk mengkomit file dengan pesan komit:

         ```
         git commit -m "Added static website files"
         ```

      1. Jalankan perintah berikut untuk mendorong file dari repo lokal Anda ke CodeCommit repositori Anda:

         ```
         git push
         ```

   1. Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda: 

      1. **Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.**

      1. Pilih **Tambahkan file**, lalu pilih **Unggah file**. 

      1. Pilih **Pilih file**, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih **Perubahan commit**.

      1. Ulangi langkah ini untuk setiap file yang ingin Anda unggah.

### Langkah 2: Buat alur Anda
<a name="tutorials-s3deploy-acc-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan CodeCommit tindakan di mana artefak sumber adalah file untuk situs web Anda.
+ Tahap penerapan dengan tindakan penerapan Amazon S3.

**Untuk membuat alur dengan wizard**

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 **Alur**, pilih **Buat alur**.

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**MyS3DeployPipeline**.

1. Dalam **tipe Pipeline**, pilih **V2**. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md). Pilih **Berikutnya**.

1. Dalam **peran Layanan**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan tahap sumber**, di **penyedia Sumber**, pilih **AWS CodeCommit**. Dalam **nama Repositori**, pilih nama CodeCommit repositori yang Anda buat. [Langkah 1: Buat CodeCommit repositori](tutorials-simple-codecommit.md#codecommit-create-repository) Di **Nama cabang**, pilih nama cabang yang berisi pembaruan kode terbaru Anda. Kecuali Anda membuat cabang yang berbeda sendiri, hanya `main` tersedia. 

   Setelah Anda memilih nama repositori dan cabang, aturan Amazon CloudWatch Events yang akan dibuat untuk pipeline ini akan ditampilkan. 

   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**:

   1. Di **penyedia Deploy**, pilih **Amazon** S3. 

   1. Di **Bucket**, masukkan nama ember publik Anda.

   1. Pilih **Ekstrak file sebelum menerapkan**.
**catatan**  
Penerapan gagal jika Anda tidak memilih **Ekstrak file sebelum menerapkan**. Ini karena AWS CodeCommit tindakan dalam pipeline Anda meritsleting artefak sumber dan file Anda adalah file ZIP.

      Saat **Ekstrak file sebelum penerapan** dipilih, **jalur Deployment ditampilkan**. Masukkan nama jalur yang ingin Anda gunakan. Ini menciptakan struktur folder di Amazon S3 tempat file diekstraksi. Untuk tutorial ini, biarkan bidang ini kosong.  
![\[Langkah 6: Tambahkan halaman tahap penerapan untuk tindakan penerapan S3 dengan sumber AWS CodeCommit\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/tutorial-s3deploy-stage-codecommit.png)

   1. (Opsional) Di **ACL Kalengan**, Anda dapat menerapkan serangkaian hibah yang telah ditentukan sebelumnya, yang dikenal sebagai [ACL kalengan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl), ke artefak yang diunggah. 

   1. (Opsional) Dalam **kontrol Cache**, masukkan parameter caching. Anda dapat mengatur ini untuk mengontrol perilaku caching untuk permintaan/tanggapan. Untuk nilai yang valid, lihat bidang [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9)header untuk operasi HTTP.

   1. Pilih **Berikutnya**.

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

1. Setelah pipeline berhasil berjalan, buka konsol Amazon S3 dan verifikasi bahwa file Anda muncul di bucket publik seperti yang ditunjukkan:

   ```
   index.html
   main.css
   graphic.jpg
   ```

1. Akses titik akhir Anda untuk menguji situs web. Titik akhir Anda mengikuti format ini:`http://bucket-name.s3-website-region.amazonaws.com/`.

   Contoh titik akhir:`http://my-bucket.s3-website-us-west-2.amazonaws.com/`. 

   Halaman web sampel muncul.

### Langkah 3: Buat perubahan pada file sumber apa pun dan verifikasi penyebaran
<a name="tutorials-s3deploy-acc-update"></a>

Buat perubahan pada file sumber Anda dan kemudian dorong perubahan ke repositori Anda. Ini memicu pipeline Anda untuk berjalan. Verifikasi bahwa situs web Anda diperbarui.

## Opsi 2: Menerapkan file arsip bawaan ke Amazon S3 dari bucket sumber S3
<a name="tutorials-s3deploy-s3source"></a>

Dalam opsi ini, perintah build di tahap build Anda mengompilasi TypeScript kode ke dalam JavaScript kode dan menerapkan output ke bucket target S3 Anda di bawah folder stempel waktu terpisah. Pertama, Anda membuat TypeScript kode dan file buildspec.yml. Setelah Anda menggabungkan file sumber dalam file ZIP, Anda mengunggah file ZIP sumber ke bucket sumber S3 Anda, dan menggunakan CodeBuild panggung untuk menyebarkan file ZIP aplikasi bawaan ke bucket target S3 Anda. Kode yang dikompilasi dipertahankan sebagai arsip di bucket target Anda.

### Prasyarat
<a name="tutorials-s3deploy-s3source-prereq"></a>

Anda harus sudah memiliki yang berikut:
+ Bucket sumber S3. Anda dapat menggunakan ember yang Anda buat[Tutorial: Buat pipeline sederhana (ember S3)](tutorials-simple-s3.md).
+ Ember target S3. Lihat [Hosting situs web statis di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). Pastikan Anda membuat bucket Wilayah AWS sama dengan pipeline yang ingin Anda buat.
**catatan**  
Contoh ini menunjukkan penerapan file ke bucket pribadi. Jangan aktifkan bucket target Anda untuk hosting situs web atau lampirkan kebijakan apa pun yang membuat bucket publik.

### Langkah 1: Buat dan unggah file sumber ke bucket sumber S3 Anda
<a name="tutorials-s3deploy-s3source-upload"></a>

Di bagian ini, Anda membuat dan mengunggah file sumber ke bucket yang digunakan pipeline untuk tahap sumber Anda. Bagian ini memberikan instruksi untuk membuat file sumber berikut:
+ `buildspec.yml`File, yang digunakan untuk CodeBuild membangun proyek.
+ Sebuah `index.ts` file. 

**Untuk membuat file buildspec.yml.**
+ Buat file bernama `buildspec.yml` dengan isi berikut ini. Perintah build ini menginstal TypeScript dan menggunakan TypeScript compiler untuk menulis ulang kode `index.ts` ke JavaScript kode.

  ```
  version: 0.2
  
  phases:
    install:
      commands:
        - npm install -g typescript
    build:
      commands:
        - tsc index.ts
  artifacts:
    files:
      - index.js
  ```

**Untuk membuat file index.ts**
+ Buat file bernama `index.ts` dengan isi berikut ini.

  ```
  interface Greeting {
      message: string;
  }
  
  class HelloGreeting implements Greeting {
      message = "Hello!";
  }
  
  function greet(greeting: Greeting) {
      console.log(greeting.message);
  }
  
  let greeting = new HelloGreeting();
  
  greet(greeting);
  ```

**Untuk mengunggah file ke bucket sumber S3**

1. File Anda akan terlihat seperti ini di direktori lokal Anda:

   ```
   buildspec.yml
   index.ts
   ```

   Zip file dan beri nama file`source.zip`.

1. **Di konsol Amazon S3, untuk bucket sumber Anda, pilih Unggah.** Pilih **Tambahkan file**, lalu telusuri file ZIP yang Anda buat.

1.  Pilih **Unggah**. File-file ini adalah artefak sumber yang dibuat oleh wizard **Create Pipeline** untuk tindakan penerapan Anda. CodePipeline File Anda akan terlihat seperti ini di bucket Anda:

   ```
   source.zip
   ```

### Langkah 2: Buat alur Anda
<a name="tutorials-s3deploy-s3source-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan aksi Amazon S3 di mana artefak sumber adalah file untuk aplikasi yang dapat Anda unduh.
+ Tahap penerapan dengan tindakan penerapan Amazon S3.

**Untuk membuat alur dengan wizard**

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 **Alur**, pilih **Buat alur**.

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**MyS3DeployPipeline**.

1. Dalam **peran Layanan**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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**, pilih nama bucket sumber Anda. Dalam **kunci objek S3**, masukkan nama file ZIP sumber Anda. Pastikan Anda menyertakan ekstensi file.zip.

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**:

   1. Di **Penyedia pembangunan**, pilih **CodeBuild**.

   1. Pilih **Buat proyek build**. Pada halaman **Create project**:

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Lingkungan**, pilih **Gambar terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **versi Runtime**, aws/codebuild/standard pilih:1.0.**

   1. Dalam **versi Gambar**, pilih **Selalu gunakan gambar terbaru untuk versi runtime ini**.

   1. Untuk **peran Layanan**, pilih peran CodeBuild layanan Anda, atau buat peran layanan.

   1. Untuk **spesifikasi Build**, pilih **Gunakan file buildspec**.

   1. Pilih **Lanjutkan ke CodePipeline**. Pesan ditampilkan jika proyek berhasil dibuat.

   1. Pilih **Berikutnya**.

1. Pada **Langkah 5: Tambahkan tahap penerapan**:

   1. Di **penyedia Deploy**, pilih **Amazon** S3. 

   1. Di **Bucket**, masukkan nama bucket target S3 Anda.

   1. Pastikan **file Extract sebelum deploy** dihapus.

      Saat **Ekstrak file sebelum penerapan** dihapus, **kunci objek S3 ditampilkan**. Masukkan nama jalur yang ingin Anda gunakan:`js-application/{datetime}.zip`.

      Ini membuat `js-application` folder di Amazon S3 tempat file diekstraksi. Di folder ini, `{datetime}` variabel membuat stempel waktu pada setiap file keluaran saat pipeline Anda berjalan.  
![\[Langkah 5: Menerapkan halaman untuk tindakan penerapan Amazon S3 dengan sumber Amazon S3\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/tutorial-s3deploy-stage-s3source.png)

   1. (Opsional) Di **ACL Kalengan**, Anda dapat menerapkan serangkaian hibah yang telah ditentukan sebelumnya, yang dikenal sebagai [ACL kalengan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl), ke artefak yang diunggah. 

   1. (Opsional) Dalam **kontrol Cache**, masukkan parameter caching. Anda dapat mengatur ini untuk mengontrol perilaku caching untuk permintaan/tanggapan. Untuk nilai yang valid, lihat bidang [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9)header untuk operasi HTTP.

   1. Pilih **Berikutnya**.

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

1. Setelah pipeline berhasil berjalan, lihat bucket Anda di konsol Amazon S3. Verifikasi bahwa file ZIP yang Anda gunakan ditampilkan di bucket target Anda di bawah `js-application` folder. JavaScript File yang terkandung dalam file ZIP harus`index.js`. `index.js`File berisi output berikut:

   ```
   var HelloGreeting = /** @class */ (function () {
       function HelloGreeting() {
           this.message = "Hello!";
       }
       return HelloGreeting;
   }());
   function greet(greeting) {
       console.log(greeting.message);
   }
   var greeting = new HelloGreeting();
   greet(greeting);
   ```

### Langkah 3: Buat perubahan pada file sumber apa pun dan verifikasi penyebaran
<a name="tutorials-s3deploy-s3source-update"></a>

Buat perubahan pada file sumber Anda dan kemudian unggah ke keranjang sumber Anda. Ini memicu pipeline Anda untuk berjalan. Lihat bucket target Anda dan verifikasi bahwa file keluaran yang digunakan tersedia di `js-application` folder seperti yang ditunjukkan:

![\[Contoh unduhan ZIP\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/tutorial-s3deploy-pipeline-appzip.png)


# Tutorial: Buat pipeline yang menerbitkan aplikasi tanpa server Anda ke AWS Serverless Application Repository
<a name="tutorials-serverlessrepo-auto-publish"></a>

Anda dapat menggunakan AWS CodePipeline untuk terus mengirimkan aplikasi AWS SAM tanpa server Anda ke. AWS Serverless Application Repository

**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.

Tutorial ini menunjukkan cara membuat dan mengkonfigurasi pipeline untuk membangun aplikasi tanpa server Anda yang di-host GitHub dan mempublikasikannya secara otomatis. AWS Serverless Application Repository Pipeline digunakan GitHub sebagai penyedia sumber dan CodeBuild sebagai penyedia build. Untuk memublikasikan aplikasi tanpa server ke AWS Serverless Application Repository, Anda menerapkan [aplikasi](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~aws-serverless-codepipeline-serverlessrepo-publish ) (dari AWS Serverless Application Repository) dan mengaitkan fungsi Lambda yang dibuat oleh aplikasi tersebut sebagai penyedia tindakan Invoke di pipeline Anda. Kemudian Anda dapat terus mengirimkan pembaruan aplikasi ke AWS Serverless Application Repository, tanpa menulis kode apa pun.

**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 kamu memulai
<a name="tutorials-serverlessrepo-auto-publish-prereq"></a>

Dalam tutorial ini, kita asumsikan sebagai berikut. 
+ Anda sudah familiar dengan [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/) dan [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/).
+ Anda memiliki aplikasi tanpa server yang dihosting di mana GitHub Anda telah mempublikasikan ke AWS Serverless Application Repository menggunakan CLI AWS SAM . Untuk mempublikasikan contoh aplikasi ke AWS Serverless Application Repository, lihat [Mulai Cepat: Menerbitkan Aplikasi](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverlessrepo-quick-start.html) di *Panduan AWS Serverless Application Repository Pengembang*. Untuk mempublikasikan aplikasi Anda sendiri ke AWS Serverless Application Repository, lihat [Menerbitkan Aplikasi Menggunakan AWS SAM CLI di Panduan AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) *Pengembang*.

## Langkah 1: Buat file buildspec.yml.
<a name="serverlessrepo-auto-publish-create-buildspec"></a>

Buat `buildspec.yml` file dengan konten berikut, dan tambahkan ke repositori aplikasi tanpa server Anda. GitHub Ganti *template.yml* dengan AWS SAM template aplikasi Anda dan *bucketname* dengan bucket S3 tempat aplikasi paket Anda disimpan.

```
version: 0.2
phases:
  install:
    runtime-versions:
        python: 3.8
  build:
    commands:
      - sam package --template-file template.yml --s3-bucket bucketname --output-template-file packaged-template.yml
artifacts:
  files:
    - packaged-template.yml
```

## Langkah 2: Buat dan konfigurasikan pipeline Anda
<a name="serverlessrepo-auto-publish-create-pipeline"></a>

Ikuti langkah-langkah ini untuk membuat pipeline Anda di Wilayah AWS tempat Anda ingin mempublikasikan aplikasi tanpa server Anda.

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

1. Jika perlu, beralihlah ke Wilayah AWS tempat Anda ingin mempublikasikan aplikasi tanpa server Anda.

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. Pilih **Buat pipeline**. Pada **Langkah 2: Pilih halaman pengaturan pipeline**, dalam **nama Pipeline**, masukkan nama untuk pipeline Anda.

1. Dalam **tipe Pipeline**, pilih **V2**. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md). Pilih **Berikutnya**.

1. Dalam **peran Layanan**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, di **penyedia Sumber**, pilih **GitHub**.

1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

1. Di **Repositori, pilih repositori** GitHub sumber Anda.

1. Di **Cabang**, pilih GitHub cabang Anda.

1. Biarkan default yang tersisa untuk tindakan sumber. Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan halaman tahap build**, tambahkan tahap build:

   1. Di **Penyedia pembangunan**, pilih **AWS CodeBuild**. Untuk **Wilayah**, gunakan Wilayah pipa.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **versi **Runtime** dan Runtime**, pilih runtime dan versi yang diperlukan untuk aplikasi tanpa server Anda.

   1. Untuk **Peran layanan**, pilih **Peran layanan baru**.

   1. Untuk **spesifikasi Build**, pilih **Gunakan file buildspec**.

   1. Pilih **Lanjutkan ke CodePipeline**. Ini membuka CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan `buildspec.yml` di repositori Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

1. Pada **Langkah 7: Tinjau**, pilih **Buat pipeline**. Anda harus melihat diagram yang menunjukkan tahapan.

1. Berikan izin peran CodeBuild layanan untuk mengakses bucket S3 tempat aplikasi paket Anda disimpan.

   1. Pada tahap **Build** pipeline baru Anda, pilih **CodeBuild**.

   1. Pilih tab **Build details**.

   1. Di **Lingkungan**, pilih peran CodeBuild layanan untuk membuka konsol IAM.

   1. Perluas pilihan untuk`CodeBuildBasePolicy`, dan pilih **Edit kebijakan**.

   1. Pilih**JSON**.

   1. Tambahkan pernyataan kebijakan baru dengan konten berikut. Pernyataan ini memungkinkan CodeBuild untuk memasukkan objek ke dalam bucket S3 tempat aplikasi paket Anda disimpan. Ganti *bucketname* dengan nama bucket S3 Anda.

      ```
              {
                  "Effect": "Allow",
                  "Resource": [
                      "arn:aws:s3:::bucketname/*"
                  ],
                  "Action": [
                      "s3:PutObject"
                  ]
              }
      ```

   1. Pilih **Tinjau kebijakan**.

   1. Pilih **Simpan perubahan**.

## Langkah 3: Menyebarkan aplikasi publikasi
<a name="serverlessrepo-auto-publish-deploy-app"></a>

Ikuti langkah-langkah ini untuk menyebarkan aplikasi yang berisi fungsi Lambda yang melakukan publikasi ke. AWS Serverless Application Repository Aplikasi ini adalah **aws-serverless-codepipeline-serverlessrepo-publish**.

**catatan**  
Anda harus menerapkan aplikasi yang Wilayah AWS sama dengan pipeline Anda.

1. Buka halaman [aplikasi](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~aws-serverless-codepipeline-serverlessrepo-publish ), dan pilih **Deploy**.

1. Pilih**Saya mengakui bahwa aplikasi ini menciptakan IAM role kustom**. 

1. Pilih **Deploy**.

1. Pilih **View CloudFormation Stack** untuk membuka CloudFormation konsol.

1. Perluas bagian **Sumber Daya**. Anda lihat **ServerlessRepoPublish**, yang merupakan tipe **AWS::Lambda::Function**. Catat ID fisik sumber daya ini untuk langkah selanjutnya. Anda menggunakan ID fisik ini saat membuat tindakan publikasi baru di CodePipeline.

## Langkah 4: Buat tindakan publikasi
<a name="serverlessrepo-auto-publish-create-action"></a>

Ikuti langkah-langkah ini untuk membuat tindakan publikasi di pipeline Anda.

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

1. Di bagian navigasi kiri, pilih pipeline yang ingin Anda edit.

1. Pilih **Edit**.

1. Setelah tahap terakhir dari pipeline Anda saat ini, pilih **\$1 Tambah tahap**. Di **Nama panggung** masukkan nama, seperti**Publish**, dan pilih **Tambah tahap**.

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

1. Masukkan nama tindakan. Dari **penyedia Action**, di **Invoke**, pilih **AWS Lambda**.

1. Dari **artefak Input**, pilih **BuildArtifact**.

1. Dari **nama Fungsi**, pilih ID fisik dari fungsi Lambda yang Anda catat di langkah sebelumnya.

1. Pilih **Simpan** untuk tindakan.

1. Pilih **Selesai** untuk panggung.

1. Di kanan atas, pilih **Simpan**.

1. Untuk memverifikasi pipeline Anda, buat perubahan pada aplikasi Anda di GitHub. Misalnya, ubah deskripsi aplikasi di `Metadata` bagian file AWS SAM template Anda. Lakukan perubahan dan dorong ke GitHub cabang Anda. Ini memicu pipeline Anda untuk berjalan. Ketika pipeline selesai, periksa apakah aplikasi Anda telah diperbarui dengan perubahan Anda di file [AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

# Tutorial: Penerapan fungsi Lambda dengan CodePipeline
<a name="tutorials-lambda-deploy"></a>

Tutorial ini membantu Anda membuat tindakan penerapan yang menyebarkan kode Anda ke fungsi CodePipeline yang telah Anda konfigurasikan di Lambda. Anda akan membuat contoh fungsi Lambda di mana Anda akan membuat alias dan versi, menambahkan fungsi Lambda zip ke lokasi sumber Anda, dan menjalankan tindakan Lambda di pipeline Anda.

**catatan**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 akan digunakan oleh 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.

**catatan**  
Tindakan `Lambda` penerapan hanya tersedia untuk saluran pipa tipe V2.

## Prasyarat
<a name="tutorials-lambda-deploy-prereqs"></a>

Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai:

**catatan**  
Semua sumber daya ini harus dibuat dalam AWS Wilayah yang sama.
+ Repositori kontrol sumber, seperti GitHub, atau bucket S3 sumber (tutorial ini menggunakan S3) tempat Anda akan menyimpan `.zip` file yang Anda buat untuk fungsi Lambda Anda.
+ Anda harus menggunakan peran CodePipeline layanan yang ada yang telah diperbarui dengan izin untuk tindakan ini. Untuk memperbarui peran layanan Anda, lihat[Izin kebijakan peran layanan untuk tindakan penerapan Lambda](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action).

Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.

## Langkah 1: Buat fungsi Lambda sampel Anda
<a name="tutorials-lambda-deploy-instances"></a>

Pada langkah ini, Anda membuat fungsi Lambda tempat Anda akan menyebarkan.

**Untuk membuat fungsi Lambda Anda**

1. Akses konsol Lambda dan ikuti langkah-langkah dalam tutorial berikut untuk membuat contoh fungsi Lambda: tautan.

1. Dari navigasi atas, pilih **Buat**, dan pilih **Mulai dari awal** dari bagian atas halaman.

1. Di **Nama**, masukkan **MyLambdaFunction**. 

1. Publikasikan versi baru. Ini akan menjadi versi yang akan ditunjukkan oleh alias.

   1. Pilih fungsi Anda.

   1. Pilih **dropdown Tindakan**.

   1. Pilih**Publikasikan versi baru**.

   1. (Opsional) Tambahkan ke deskripsi di **Deskripsi**.

   1. Pilih **Terbitkan**.

1. Buat alias untuk fungsi Anda, seperti`aliasV1`.

1. Pastikan alias menunjuk ke versi yang baru saja Anda buat (seperti 1).
**catatan**  
Jika Anda memilih \$1LATEST, Anda tidak dapat menggunakan fitur perpindahan lalu lintas karena Lambda tidak mendukung \$1LATEST untuk alias yang menunjuk ke lebih dari 1 versi.

## Langkah 2: Unggah file fungsi ke repositori Anda
<a name="tutorials-lambda-deploy-file"></a>

Unduh fungsinya dan simpan sebagai file zip. Unggah file zip ke bucket S3 Anda menggunakan langkah-langkah berikut.

**Untuk menambahkan `.zip` file ke repositori sumber Anda**

1. Buka ember S3 Anda.

1. Pilih **Unggah**.

1. Unggah file zip yang berisi `sample_lambda_source.zip` file Anda ke bucket sumber Anda.

   Catat jalannya.

   ```
   object key
   ```

## Langkah 3: Membuat pipeline Anda
<a name="tutorials-lambda-deploy-pipeline"></a>

Gunakan CodePipeline wizard untuk membuat tahapan pipeline dan menghubungkan repositori sumber Anda.

**Untuk membuat alur Anda**

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

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**MyPipeline**.

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. Di **peran Layanan**, pilih **Gunakan peran layanan yang ada**, lalu pilih peran CodePipeline layanan yang telah diperbarui dengan izin yang diperlukan untuk tindakan ini. Untuk mengonfigurasi peran CodePipeline layanan Anda untuk tindakan ini, lihat[Izin kebijakan peran layanan untuk tindakan penerapan Lambda](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action).

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

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **Amazon S3**.

   1. Dalam **kunci Object**, tambahkan nama file.zip Anda, termasuk ekstensi file, seperti`sample_lambda_source.zip`.

      

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan halaman tahap build**, pilih **Lewati**.

1. Pada **Langkah 5: Tambahkan halaman tahap pengujian**, pilih **Lewati**.

1. Pada **Langkah 6: Tambahkan halaman tahap penerapan**, pilih **Lambda**.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)

   1. Tambahkan nama fungsi dan alias Anda. 

   1. Pilih strategi penerapan Anda.

   1. Pilih **Berikutnya**.

1. Pada halaman **Langkah 7: Tinjau**, tinjau konfigurasi pipeline Anda dan pilih **Buat pipeline** untuk membuat pipeline.  
![\[\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/lambdadeploy-pipeline-screen.png)

## Langkah 4: Uji Pipa Anda
<a name="tutorials-lambda-deploy-test"></a>

Pipeline Anda harus memiliki segalanya untuk menjalankan penerapan AWS berkelanjutan end-to-end asli. Sekarang, uji fungsinya dengan mendorong perubahan kode ke repositori sumber Anda.

**Untuk menguji pipa Anda**

1. Buat perubahan kode ke repositori sumber yang dikonfigurasi, komit, dan dorong perubahan.

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

1. Pilih pipeline Anda dari daftar.

1. Perhatikan kemajuan pipa melalui tahapannya. Pipeline Anda harus selesai dan tindakan Anda diterapkan ke fungsi Lambda Anda.

## Pelajari selengkapnya
<a name="tutorials-lambda-deploy-learn"></a>

Tindakan penyebaran Lambda memungkinkan dua metode penerapan. Salah satu metode adalah pergeseran lalu lintas sendiri tanpa artefak input dari aksi sumber. Metode lainnya adalah memperbarui kode fungsi menggunakan artefak input dari tindakan sumber, kemudian menerbitkan versi baru berdasarkan kode yang diperbarui. Untuk metode kedua, jika alias disediakan, CodePipeline akan melakukan pergeseran lalu lintas juga. Tutorial tindakan penyebaran Lambda ini menunjukkan memperbarui fungsi Anda menggunakan artefak sumber.

Untuk mempelajari lebih lanjut tentang tindakan, lihat halaman referensi tindakan di[AWS Lambda menyebarkan referensi tindakan](action-reference-LambdaDeploy.md).

# Tutorial: Menggunakan variabel dengan tindakan panggilan Lambda
<a name="tutorials-lambda-variables"></a>

Tindakan pemanggilan Lambda dapat menggunakan variabel dari tindakan lain sebagai bagian dari inputnya dan mengembalikan variabel baru bersama dengan outputnya. Untuk informasi tentang variabel untuk tindakan CodePipeline, lihat[Referensi variabel](reference-variables.md).

**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.

Di akhir tutorial ini, Anda akan memiliki:
+ Lambda memanggil tindakan yang:
  + Mengkonsumsi `CommitId` variabel dari aksi CodeCommit sumber
  + Menghasilkan tiga variabel baru:`dateTime`,`testRunId`, dan `region`
+ Tindakan persetujuan manual yang menggunakan variabel baru dari tindakan pemanggilan Lambda Anda untuk menyediakan URL pengujian dan ID uji coba
+ Pipeline diperbarui dengan tindakan baru

**Topics**
+ [Prasyarat](#lambda-variables-prereqs)
+ [Langkah 1: Membuat fungsi Lambda](#lambda-variables-function)
+ [Langkah 2: Tambahkan tindakan pemanggilan Lambda dan tindakan persetujuan manual ke pipeline Anda](#lambda-variables-pipeline)

## Prasyarat
<a name="lambda-variables-prereqs"></a>

Sebelum memulai, Anda harus memiliki hal-hal berikut: 
+ Anda dapat membuat atau menggunakan pipeline dengan CodeCommit sumbernya[Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md).
+ Edit pipeline Anda yang ada sehingga tindakan CodeCommit sumber memiliki namespace. Tetapkan namespace `SourceVariables` untuk tindakan.

## Langkah 1: Membuat fungsi Lambda
<a name="lambda-variables-function"></a>

Gunakan langkah-langkah berikut untuk membuat fungsi Lambda dan peran eksekusi Lambda. Anda menambahkan tindakan Lambda ke pipeline setelah Anda membuat fungsi Lambda.

**Untuk membuat fungsi Lambda dan peran eksekusi**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Pilih **Buat fungsi**. Biarkan **Penulis dari awal** dipilih.

1. Dalam **nama Fungsi**, masukkan nama fungsi Anda, seperti**myInvokeFunction**. Di **Runtime**, biarkan opsi default dipilih.

1. Perluas **Pilih atau buat peran eksekusi**. Pilih **Buat peran baru dengan izin Lambda dasar**.

1. Pilih **Buat fungsi**.

1. Untuk menggunakan variabel dari tindakan lain, itu harus diteruskan ke konfigurasi tindakan `UserParameters` pemanggilan Lambda. Anda akan mengonfigurasi tindakan di pipeline kami nanti di tutorial, tetapi Anda akan menambahkan kode dengan asumsi variabel akan diteruskan.

   Untuk menghasilkan variabel baru, atur properti yang dipanggil `outputVariables` pada input ke`putJobSuccessResult`. Perhatikan bahwa Anda tidak dapat menghasilkan variabel sebagai bagian dari a`putJobFailureResult`.

   ```
    const putJobSuccess = async (message) => {
           const params = {
               jobId: jobId,
               outputVariables: {
                   testRunId: Math.floor(Math.random() * 1000).toString(),
                   dateTime: Date(Date.now()).toString(),
                   region: lambdaRegion
               }
           };
   ```

   Dalam fungsi baru Anda, pada tab **Kode**, tempel kode contoh berikut di bawah`index.mjs`.

   ```
   import { CodePipeline } from '@aws-sdk/client-codepipeline';
   
   export const handler = async (event, context) => {
       const codepipeline = new CodePipeline({});
       
       // Retrieve the Job ID from the Lambda action
       const jobId = event["CodePipeline.job"].id;
       
       // Retrieve UserParameters
       const params = event["CodePipeline.job"].data.actionConfiguration.configuration.UserParameters;
       
       // The region from where the lambda function is being executed
       const lambdaRegion = process.env.AWS_REGION;
       
       // Notify CodePipeline of a successful job
       const putJobSuccess = async (message) => {
           const params = {
               jobId: jobId,
               outputVariables: {
                   testRunId: Math.floor(Math.random() * 1000).toString(),
                   dateTime: Date(Date.now()).toString(),
                   region: lambdaRegion
               }
           };
           
           try {
               await codepipeline.putJobSuccessResult(params);
               return message;
           } catch (err) {
               throw err;
           }
       };
       
       // Notify CodePipeline of a failed job
       const putJobFailure = async (message) => {
           const params = {
               jobId: jobId,
               failureDetails: {
                   message: JSON.stringify(message),
                   type: 'JobFailed',
                   externalExecutionId: context.invokeid
               }
           };
           
           try {
               await codepipeline.putJobFailureResult(params);
               throw message;
           } catch (err) {
               throw err;
           }
       };
       
       try {
           console.log("Testing commit - " + params);
           
           // Your tests here
           
           // Succeed the job
           return await putJobSuccess("Tests passed.");
       } catch (ex) {
           // If any of the assertions failed then fail the job
           return await putJobFailure(ex);
       }
   };
   ```

1. Izinkan fungsi untuk menyimpan secara otomatis.

1. Salin Nama Sumber Daya Amazon (ARN) yang terdapat di bidang **Fungsi ARN** di bagian atas layar.

1. Sebagai langkah terakhir, buka konsol AWS Identity and Access Management (IAM) di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). Ubah peran eksekusi Lambda untuk menambahkan kebijakan berikut:. [AWSCodePipelineCustomActionAccess](https://console.aws.amazon.com/iam/home?region=us-west-2#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSCodePipelineCustomActionAccess) Untuk langkah-langkah membuat peran eksekusi Lambda atau mengubah kebijakan peran, lihat. [Langkah 2: Buat fungsi Lambda](actions-invoke-lambda-function.md#actions-invoke-lambda-function-create-function) 

## Langkah 2: Tambahkan tindakan pemanggilan Lambda dan tindakan persetujuan manual ke pipeline Anda
<a name="lambda-variables-pipeline"></a>

Pada langkah ini, Anda menambahkan tindakan pemanggilan Lambda ke pipeline Anda. Anda menambahkan tindakan sebagai bagian dari tahap bernama **Test**. Jenis tindakan adalah tindakan pemanggilan. Anda kemudian menambahkan tindakan persetujuan manual setelah tindakan pemanggilan.

**Untuk menambahkan tindakan Lambda dan tindakan persetujuan manual ke pipeline**

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

   Nama-nama semua saluran pipa yang terkait dengan AWS akun Anda ditampilkan. Pilih pipeline tempat Anda ingin menambahkan tindakan.

1. Tambahkan tindakan pengujian Lambda ke pipeline Anda.

   1. Untuk mengedit pipeline Anda, pilih **Edit**. Tambahkan tahapan setelah aksi sumber di pipeline yang ada. Masukkan nama untuk panggung, seperti**Test**.

   1. Di tahap baru, pilih **Tambahkan grup tindakan** untuk menambahkan tindakan. Dalam **nama Tindakan**, masukkan nama tindakan pemanggilan, seperti**Test\$1Commit**.

   1. Di **penyedia Action**, pilih **AWS Lambda**.

   1. Di **artefak Input**, pilih nama artefak keluaran aksi sumber Anda, seperti. `SourceArtifact`

   1. Di **FunctionName**, tambahkan ARN dari fungsi Lambda yang Anda buat.

   1. Di **Namespace Variable**, tambahkan nama namespace, seperti. **TestVariables**

   1. Dalam **artefak Output**, tambahkan nama artefak keluaran, seperti. **LambdaArtifact**

   1. Pilih **Selesai**.

1. Tambahkan tindakan persetujuan manual ke pipeline Anda.

   1. Dengan pipeline Anda masih dalam mode pengeditan, tambahkan tahapan setelah tindakan pemanggilan. Masukkan nama untuk panggung, seperti**Approval**.

   1. Di tahap baru, pilih ikon untuk menambahkan tindakan. Di **Nama tindakan**, masukkan nama tindakan persetujuan, seperti**Change\$1Approval**.

   1. Di **penyedia Tindakan**, pilih **Persetujuan manual**.

   1. Di **URL untuk ditinjau**, buat URL dengan menambahkan sintaks variabel untuk `region` variabel dan variabel. `CommitId` Pastikan Anda menggunakan ruang nama yang ditetapkan untuk tindakan yang menyediakan variabel output. 

      Untuk contoh ini, URL dengan sintaks variabel untuk CodeCommit tindakan memiliki `SourceVariables` namespace default. Variabel keluaran wilayah Lambda memiliki namespace. `TestVariables` URL terlihat seperti berikut ini.

      ```
      https://#{TestVariables.region}.console.aws.amazon.com/codesuite/codecommit/repositories/MyDemoRepo/commit/#{SourceVariables.CommitId}
      ```

      Di **Komentar**, buat teks pesan persetujuan dengan menambahkan sintaks variabel untuk variabel. `testRunId` Untuk contoh ini, URL dengan sintaks variabel untuk variabel keluaran `testRunId` Lambda memiliki `TestVariables` namespace. Masukkan pesan berikut.

      ```
      Make sure to review the code before approving this action. Test Run ID: #{TestVariables.testRunId}
      ```

1. Pilih **Selesai** untuk menutup layar edit untuk tindakan, lalu pilih **Selesai** untuk menutup layar edit untuk panggung. Untuk menyimpan pipa, pilih **Selesai**. Pipeline yang telah selesai sekarang berisi struktur dengan tahapan sumber, pengujian, persetujuan, dan penerapan.

   Pilih **Rilis perubahan** untuk menjalankan perubahan terbaru melalui struktur pipa.

1. Saat pipa mencapai tahap persetujuan manual, pilih **Tinjau**. Variabel yang diselesaikan muncul sebagai URL untuk ID komit. Penyetuju Anda dapat memilih URL untuk melihat komit.

1. Setelah pipeline berjalan dengan sukses, Anda juga dapat melihat nilai variabel pada halaman riwayat eksekusi tindakan.

# Tutorial: Gunakan AWS Step Functions tindakan pemanggilan dalam pipeline
<a name="tutorials-step-functions"></a>

Anda dapat menggunakan AWS Step Functions untuk membuat dan mengkonfigurasi mesin negara. Tutorial ini menunjukkan cara menambahkan tindakan pemanggilan ke pipeline yang mengaktifkan eksekusi mesin status dari pipeline Anda. 

**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.

Dalam tutorial ini, Anda melakukan tugas-tugas berikut:
+ Buat mesin status standar di AWS Step Functions.
+ Masukkan input mesin status JSON secara langsung. Anda juga dapat mengunggah file input mesin status ke bucket Amazon Simple Storage Service (Amazon S3).
+ Perbarui pipeline Anda dengan menambahkan tindakan mesin status.

**Topics**
+ [Prasyarat: Buat atau pilih pipa sederhana](#tutorials-step-functions-prereq)
+ [Langkah 1: Buat mesin status sampel](#tutorials-step-functions-sample)
+ [Langkah 2: Tambahkan tindakan pemanggilan Step Functions ke pipeline Anda](#tutorials-step-functions-pipeline)

## Prasyarat: Buat atau pilih pipa sederhana
<a name="tutorials-step-functions-prereq"></a>

Dalam tutorial ini, Anda menambahkan tindakan pemanggilan ke pipeline yang ada. Anda dapat menggunakan pipeline yang Anda buat di [Tutorial: Buat pipeline sederhana (ember S3)](tutorials-simple-s3.md) atau[Tutorial: Buat pipeline sederhana (CodeCommit repositori)](tutorials-simple-codecommit.md).

Anda menggunakan pipeline yang ada dengan aksi sumber dan setidaknya struktur dua tahap, tetapi Anda tidak menggunakan artefak sumber untuk contoh ini.

**catatan**  
Anda mungkin perlu memperbarui peran layanan yang digunakan oleh pipeline Anda dengan izin tambahan yang diperlukan untuk menjalankan tindakan ini. Untuk melakukannya, buka konsol AWS Identity and Access Management (IAM), cari peran, lalu tambahkan izin ke kebijakan peran. Untuk informasi selengkapnya, lihat [Menambahkan izin ke peran CodePipeline layanan](how-to-custom-role.md#how-to-update-role-new-services).

## Langkah 1: Buat mesin status sampel
<a name="tutorials-step-functions-sample"></a>

Di konsol Step Functions, buat mesin status menggunakan template `HelloWorld` sampel. Untuk petunjuk, lihat [Membuat Mesin Status](https://docs.aws.amazon.com/step-functions/latest/dg/getting-started.html#create-state-machine) di *Panduan AWS Step Functions Pengembang*.

## Langkah 2: Tambahkan tindakan pemanggilan Step Functions ke pipeline Anda
<a name="tutorials-step-functions-pipeline"></a>

Tambahkan tindakan pemanggilan Step Functions ke pipeline Anda sebagai berikut:

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).

   Nama-nama semua pipeline yang terkait dengan AWS akun Anda ditampilkan.

1. Di **Nama**, pilih nama pipeline yang ingin Anda edit. Ini membuka tampilan rinci dari pipa, termasuk keadaan masing-masing tindakan di setiap tahap pipa.

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

1. Pada tahap kedua dari pipeline sederhana Anda, pilih **Edit tahap**. Pilih **Hapus**. Ini menghapus tahap kedua sekarang karena Anda tidak lagi membutuhkannya.

1. Di bagian bawah diagram, pilih **\$1 Tambahkan tahap**.

1. Di **Nama panggung**, masukkan nama untuk panggung, seperti**Invoke**, lalu pilih **Tambah tahap**.

1. Pilih **\$1 Tambahkan grup tindakan**.

1. Dalam **nama Action**, masukkan nama, seperti**Invoke**.

1. Di **penyedia Action**, pilih **AWS Step Functions**. Izinkan **Wilayah** ke default ke Wilayah alur.

1. Di **artefak Input**, pilih`SourceArtifact`.

1. Di **mesin ARN negara**, pilih Nama Sumber Daya Amazon (ARN) untuk mesin status yang Anda buat sebelumnya.

1. (Opsional) Dalam **awalan nama Eksekusi**, masukkan awalan yang akan ditambahkan ke ID eksekusi mesin negara.

1. Di **tipe Input**, pilih **Literal**.

1. Di **Input**, masukkan input JSON yang diharapkan oleh mesin status `HelloWorld` sampel.
**catatan**  
Input untuk eksekusi mesin keadaan berbeda dari istilah yang digunakan CodePipeline untuk menggambarkan artefak input untuk tindakan.

   Untuk contoh ini, masukkan JSON berikut:

   ```
   {"IsHelloWorldExample": true}
   ```

1. Pilih **Selesai**.

1. Di panggung yang Anda edit, pilih **Selesai**. Di AWS CodePipeline panel, pilih **Simpan**, lalu pilih **Simpan** pada pesan peringatan.

1. Untuk mengirimkan perubahan dan memulai eksekusi pipeline, pilih **Rilis perubahan**, lalu pilih **Rilis**.

1. Pada pipeline yang telah selesai, pilih **AWS Step Functions** dalam tindakan pemanggilan Anda. Di AWS Step Functions konsol, lihat ID eksekusi mesin status Anda. ID menunjukkan nama mesin status Anda `HelloWorld` dan ID eksekusi mesin status dengan awalan`my-prefix`.

   ```
   arn:aws:states:us-west-2:account-ID:execution:HelloWorld:my-prefix-0d9a0900-3609-4ebc-925e-83d9618fcca1
   ```

# Tutorial: Buat pipeline yang digunakan AWS AppConfig sebagai penyedia penyebaran
<a name="tutorials-AppConfig"></a>

Dalam tutorial ini, Anda mengonfigurasi pipeline yang terus-menerus mengirimkan file konfigurasi menggunakan AWS AppConfig sebagai penyedia tindakan penerapan di tahap penerapan Anda.

**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.

**Topics**
+ [Prasyarat](#tutorials-AppConfig-prereq)
+ [Langkah 1: Buat AWS AppConfig sumber daya Anda](#tutorials-AppConfig-application)
+ [Langkah 2: Unggah file ke bucket sumber S3 Anda](#tutorials-AppConfig-bucket)
+ [Langkah 3: Buat pipeline Anda](#tutorials-AppConfig-pipeline)
+ [Langkah 4: Buat perubahan pada file sumber apa pun dan verifikasi penyebaran](#tutorials-AppConfig-verify)

## Prasyarat
<a name="tutorials-AppConfig-prereq"></a>

Sebelum Anda mulai, Anda harus menyelesaikan yang berikut:
+ Contoh ini menggunakan sumber S3 untuk pipeline Anda. Buat atau gunakan bucket Amazon S3 dengan versi diaktifkan. Ikuti instruksi [Langkah 1: Buat bucket sumber S3 untuk aplikasi Anda](tutorials-simple-s3.md#s3-create-s3-bucket) untuk membuat ember S3.

## Langkah 1: Buat AWS AppConfig sumber daya Anda
<a name="tutorials-AppConfig-application"></a>

Di bagian ini, Anda membuat sumber daya berikut:
+ *Aplikasi* dalam AWS AppConfig adalah unit kode logis yang menyediakan kemampuan untuk pelanggan Anda.
+ *Environment* in AWS AppConfig adalah kelompok AppConfig target penyebaran logis, seperti aplikasi dalam lingkungan beta atau produksi.
+ *Profil konfigurasi* adalah kumpulan pengaturan yang memengaruhi perilaku aplikasi Anda. Profil konfigurasi memungkinkan AWS AppConfig untuk mengakses konfigurasi Anda di lokasi yang disimpan.
+ (Opsional) *Strategi penerapan* dalam AWS AppConfig mendefinisikan perilaku penerapan konfigurasi, seperti berapa persentase klien yang harus menerima konfigurasi baru yang diterapkan pada waktu tertentu selama penerapan.

**Untuk membuat aplikasi, lingkungan, profil konfigurasi, dan strategi penyebaran**

1. Masuk ke Konsol Manajemen AWS.

1. Gunakan langkah-langkah dalam topik berikut untuk membuat sumber daya Anda AWS AppConfig.
   + [Buat aplikasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-application.html).
   + [Buat lingkungan](https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-environment.html).
   + [Buat profil AWS CodePipeline konfigurasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-configuration-and-profile.html).
   + (Opsional) [Pilih strategi penerapan yang telah ditentukan sebelumnya atau buat sendiri](https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-deployment-strategy.html).

## Langkah 2: Unggah file ke bucket sumber S3 Anda
<a name="tutorials-AppConfig-bucket"></a>

Di bagian ini, buat file atau file konfigurasi Anda. Kemudian zip dan dorong file sumber Anda ke bucket yang digunakan pipeline untuk tahap sumber Anda.

**Untuk membuat file konfigurasi**

1. Buat `configuration.json` file untuk setiap konfigurasi di setiap Wilayah. Sertakan konten berikut:

   ```
   Hello World!
   ```

1. Gunakan langkah-langkah berikut untuk zip dan mengunggah file konfigurasi Anda.

**Untuk zip dan mengunggah file sumber**

1. Buat file.zip dengan file Anda dan beri nama file.zip. `configuration-files.zip` Sebagai contoh, file.zip Anda dapat menggunakan struktur berikut:

   ```
   .
   └── appconfig-configurations
       └── MyConfigurations
           ├── us-east-1
           │   └── configuration.json
           └── us-west-2
               └── configuration.json
   ```

1. Di konsol Amazon S3 untuk bucket Anda, pilih **Unggah**, dan ikuti petunjuk untuk mengunggah file.zip Anda.

## Langkah 3: Buat pipeline Anda
<a name="tutorials-AppConfig-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan aksi Amazon S3 di mana artefak sumber adalah file untuk konfigurasi Anda.
+ Tahap penyebaran dengan tindakan AppConfig penerapan.

**Untuk membuat alur dengan wizard**

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**MyAppConfigPipeline**.

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**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

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**, pilih nama bucket sumber S3 Anda. 

   Di **tombol objek S3**, masukkan nama file.zip Anda:. `configuration-files.zip`

   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**:

   1. Di **Penyedia Deploy**, pilih **AWS AppConfig**. 

   1. Di **Aplikasi**, pilih nama aplikasi yang Anda buat AWS AppConfig. Bidang menunjukkan ID untuk aplikasi Anda.

   1. Di **Lingkungan**, pilih nama lingkungan yang Anda buat AWS AppConfig. Bidang menunjukkan ID untuk lingkungan Anda.

   1. Di **Profil konfigurasi**, pilih nama profil konfigurasi yang Anda buat AWS AppConfig. Bidang menunjukkan ID untuk profil konfigurasi Anda.

   1. Dalam **strategi Deployment**, pilih nama strategi penyebaran Anda. Ini bisa berupa strategi penerapan yang Anda buat AppConfig atau yang telah Anda pilih dari strategi penerapan yang telah ditentukan sebelumnya. AppConfig Bidang menunjukkan ID untuk strategi penerapan Anda.

   1. Di **jalur konfigurasi artefak input**, masukkan jalur file. Pastikan jalur konfigurasi artefak masukan Anda cocok dengan struktur direktori dalam file bucket S3. zip Anda. Untuk contoh ini, masukkan path file berikut:`appconfig-configurations/MyConfigurations/us-west-2/configuration.json`. 

   1. Pilih **Berikutnya**.

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

## Langkah 4: Buat perubahan pada file sumber apa pun dan verifikasi penyebaran
<a name="tutorials-AppConfig-verify"></a>

Buat perubahan pada file sumber Anda dan unggah perubahan ke bucket Anda. Ini memicu pipeline Anda untuk berjalan. Verifikasi bahwa konfigurasi Anda tersedia dengan melihat versinya.

# Tutorial: Gunakan klon lengkap dengan sumber GitHub pipa
<a name="tutorials-github-gitclone"></a>

Anda dapat memilih opsi klon lengkap untuk tindakan GitHub sumber Anda di CodePipeline. Gunakan opsi ini untuk menjalankan CodeBuild perintah untuk metadata Git dalam tindakan pembuatan pipeline Anda.

**catatan**  
Opsi klon lengkap yang dijelaskan di sini mengacu pada menentukan apakah CodePipeline harus mengkloning metadata repositori, yang hanya dapat digunakan oleh perintah. CodeBuild Untuk menggunakan [token akses GitHub pengguna](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) untuk digunakan dengan CodeBuild proyek, ikuti langkah-langkah di sini untuk menginstal AWS Konektor untuk GitHub aplikasi dan kemudian biarkan bidang Instalasi aplikasi kosong. CodeConnections akan menggunakan token akses pengguna untuk koneksi.



**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.

Dalam tutorial ini, Anda akan membuat pipeline yang terhubung ke GitHub repositori Anda, menggunakan opsi klon lengkap untuk data sumber, dan menjalankan CodeBuild build yang mengkloning repositori Anda dan melakukan perintah Git untuk repositori.

**catatan**  
Fitur ini tidak tersedia di Asia Pasifik (Hong Kong), Afrika (Cape Town), Timur Tengah (Bahrain), Eropa (Zurich), atau AWS GovCloud (AS-Barat). Untuk mereferensikan tindakan lain yang tersedia, lihat[Integrasi produk dan layanan dengan CodePipeline](integrations.md). Untuk pertimbangan dengan tindakan ini di Wilayah Eropa (Milan), lihat catatan di[CodeStarSourceConnection untuk Bitbucket Cloud, GitHub Enterprise Server GitHub, GitLab .com, dan tindakan yang dikelola GitLab sendiri](action-reference-CodestarConnectionSource.md).

**Topics**
+ [Prasyarat](#tutorials-github-gitclone-prereq)
+ [Langkah 1: Buat file README](#tutorials-github-gitclone-file)
+ [Langkah 2: Buat pipeline Anda dan bangun proyek](#tutorials-github-gitclone-pipeline)
+ [Langkah 3: Perbarui kebijakan peran CodeBuild layanan untuk menggunakan koneksi](#tutorials-github-gitclone-rolepolicy)
+ [Langkah 4: Lihat perintah repositori dalam output build](#tutorials-github-gitclone-view)

## Prasyarat
<a name="tutorials-github-gitclone-prereq"></a>

Sebelum Anda mulai, Anda harus melakukan hal berikut:
+ Buat GitHub repositori dengan akun Anda GitHub .
+ Siapkan GitHub kredensialmu. Ketika Anda menggunakan Konsol Manajemen AWS untuk mengatur koneksi, Anda diminta untuk masuk dengan GitHub kredensi Anda. 

## Langkah 1: Buat file README
<a name="tutorials-github-gitclone-file"></a>

Setelah Anda membuat GitHub repositori Anda, gunakan langkah-langkah ini untuk menambahkan file README.

1. Masuk ke repositori Anda dan pilih GitHub repositori Anda.

1. Untuk membuat file baru, pilih **Tambah file > Buat file baru**. Beri nama file`README.md`. file dan tambahkan teks berikut.

   ```
   This is a GitHub repository!
   ```

1. Pilih **Perubahan commit**.

   Pastikan file `README.md` berada di tingkat root repositori Anda..

## Langkah 2: Buat pipeline Anda dan bangun proyek
<a name="tutorials-github-gitclone-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan koneksi ke GitHub repositori dan tindakan Anda.
+ Tahap build dengan aksi AWS CodeBuild build.

**Untuk membuat alur dengan wizard**

1. Masuk ke CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Alur**, pilih **Buat alur**.

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**MyGitHubPipeline**.

1. Dalam **tipe Pipeline**, pilih **V1** untuk keperluan tutorial ini. Anda juga dapat memilih **V2**; Namun, perhatikan bahwa jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md).

1. Di **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Jika Anda memilih untuk menggunakan peran CodePipeline layanan yang ada, pastikan Anda telah menambahkan izin `codestar-connections:UseConnection` IAM ke kebijakan peran layanan Anda. Untuk petunjuk tentang peran CodePipeline layanan, lihat [Menambahkan izin ke peran CodePipeline layanan](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Di bawah **Pengaturan lanjutan**, biarkan default. Di **Penyimpanan artifact**, pilih **Lokasi default** untuk menggunakan penyimpanan artifact default, seperti bucket artifact Amazon S3 yang ditetapkan sebagai default, untuk alur Anda di Wilayah yang Anda pilih untuk alur Anda.
**catatan**  
Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur.

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md). 

      Anda menginstal satu aplikasi untuk semua koneksi Anda ke penyedia tertentu. Jika Anda telah menginstal AWS Connector for GitHub app, pilih dan lewati langkah ini.
**catatan**  
Jika Anda ingin membuat [token akses pengguna](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app), pastikan Anda telah menginstal AWS Connector for GitHub app lalu biarkan bidang Instalasi aplikasi kosong. CodeConnections akan menggunakan token akses pengguna untuk koneksi. Untuk informasi selengkapnya, lihat [Mengakses penyedia sumber Anda di CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html).

   1. Dalam nama **Repositori, pilih nama** repositori Anda GitHub.

   1. Dalam **nama Branch**, pilih cabang repositori yang ingin Anda gunakan.

   1. Pastikan opsi **Mulai pipeline pada perubahan kode sumber** dipilih.

   1. Di bawah **Format artefak keluaran**, pilih **Klon penuh** untuk mengaktifkan opsi klon Git untuk repositori sumber. Hanya tindakan yang disediakan oleh yang CodeBuild dapat menggunakan opsi klon Git. Anda akan menggunakan [Langkah 3: Perbarui kebijakan peran CodeBuild layanan untuk menggunakan koneksi](#tutorials-github-gitclone-rolepolicy) dalam tutorial ini untuk memperbarui izin untuk peran layanan CodeBuild proyek Anda untuk menggunakan opsi ini.

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, tambahkan tahap build:

   1. Di **Penyedia pembangunan**, pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

   1. Untuk **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Perhatikan nama peran CodeBuild layanan Anda. Anda akan membutuhkan nama peran untuk langkah terakhir dalam tutorial ini.

   1. Pada **Buildspec**, untuk **Spesifikasi membangun**, pilih **Sisipkan perintah membangun**. Pilih **Beralih ke editor**, dan tempel yang berikut ini di bawah **perintah Build**.
**catatan**  
Di `env` bagian spesifikasi build, pastikan credential helper untuk perintah git diaktifkan seperti yang ditunjukkan dalam contoh ini.

      ```
      version: 0.2
      
      env:
        git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
            # name: version
          #commands:
            # - command
            # - command
        pre_build:
          commands:
            - ls -lt
            - cat README.md
        build:
          commands:
            - git log | head -100
            - git status
            - ls
            - git archive --format=zip HEAD > application.zip
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
          - application.zip
          # - location
        #name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Pilih **Lanjutkan ke CodePipeline**. Ini kembali ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan perintah build Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

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

## Langkah 3: Perbarui kebijakan peran CodeBuild layanan untuk menggunakan koneksi
<a name="tutorials-github-gitclone-rolepolicy"></a>

Proses pipeline awal akan gagal karena peran CodeBuild layanan harus diperbarui dengan izin untuk menggunakan koneksi. Tambahkan izin `codestar-connections:UseConnection` IAM ke kebijakan peran layanan Anda. Untuk petunjuk memperbarui kebijakan di konsol IAM, lihat[Tambahkan CodeBuild GitClone izin untuk koneksi ke Bitbucket,, GitHub Enterprise Server GitHub, atau .com GitLab](troubleshooting.md#codebuild-role-connections).

## Langkah 4: Lihat perintah repositori dalam output build
<a name="tutorials-github-gitclone-view"></a>

1. Jika peran layanan Anda berhasil diperbarui, pilih **Coba lagi** pada CodeBuild tahap yang gagal.

1. Setelah pipeline berjalan dengan sukses, pada tahap build yang berhasil, pilih **Lihat detail**.

   Pada halaman detail, pilih tab **Log**. Lihat output CodeBuild build. Perintah menampilkan nilai variabel yang dimasukkan.

   Perintah menampilkan isi `README.md` file, daftar file dalam direktori, mengkloning repositori, melihat log, dan mengarsipkan repositori sebagai file ZIP.

# Tutorial: Gunakan klon lengkap dengan sumber CodeCommit pipa
<a name="tutorials-codecommit-gitclone"></a>

Anda dapat memilih opsi klon lengkap untuk tindakan CodeCommit sumber Anda di CodePipeline. Gunakan opsi ini CodeBuild untuk mengizinkan akses metadata Git dalam tindakan pembuatan pipeline Anda.

Dalam tutorial ini, Anda membuat pipeline yang mengakses CodeCommit repositori Anda, menggunakan opsi klon lengkap untuk data sumber, dan menjalankan CodeBuild build yang mengkloning repositori Anda dan melakukan perintah Git untuk repositori.

**catatan**  
CodeBuild action adalah satu-satunya tindakan hilir yang mendukung penggunaan metadata Git yang tersedia dengan opsi klon Git. Selain itu, meskipun pipeline Anda dapat berisi tindakan lintas akun, CodeCommit tindakan dan CodeBuild tindakan harus berada di akun yang sama agar opsi klon lengkap berhasil.

**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.

**Topics**
+ [Prasyarat](#tutorials-codecommit-gitclone-prereq)
+ [Langkah 1: Buat file README](#tutorials-codecommit-gitclone-file)
+ [Langkah 2: Buat pipeline Anda dan bangun proyek](#tutorials-codecommit-gitclone-pipeline)
+ [Langkah 3: Perbarui kebijakan peran CodeBuild layanan untuk mengkloning repositori](#tutorials-codecommit-gitclone-rolepolicy)
+ [Langkah 4: Lihat perintah repositori dalam output build](#tutorials-codecommit-gitclone-view)

## Prasyarat
<a name="tutorials-codecommit-gitclone-prereq"></a>

Sebelum memulai, Anda harus membuat CodeCommit repositori di AWS akun dan Wilayah yang sama dengan pipeline Anda.

## Langkah 1: Buat file README
<a name="tutorials-codecommit-gitclone-file"></a>

Gunakan langkah-langkah ini untuk menambahkan file README ke repositori sumber Anda. File README menyediakan file sumber contoh untuk tindakan CodeBuild hilir untuk dibaca.

**Untuk menambahkan file README**

1. Masuk ke repositori Anda dan pilih repositori Anda.

1. Untuk membuat file baru, pilih **Tambah file > Buat file**. Beri nama file`README.md`. file dan tambahkan teks berikut.

   ```
   This is a CodeCommit repository!
   ```

1. Pilih **Perubahan commit**.

   Pastikan file `README.md` berada di tingkat root repositori Anda..

## Langkah 2: Buat pipeline Anda dan bangun proyek
<a name="tutorials-codecommit-gitclone-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan aksi CodeCommit sumber.
+ Tahap build dengan aksi AWS CodeBuild build.

**Untuk membuat alur dengan wizard**

1. Masuk ke CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Alur**, pilih **Buat alur**.

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**MyCodeCommitPipeline**.

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 yang ada**.
   + Pilih peran CodePipeline layanan Anda yang ada. Peran ini harus memiliki izin `codecommit:GetRepository` IAM untuk kebijakan peran layanan Anda. Lihat [Menambahkan izin ke peran CodePipeline layanan](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Di bawah **Pengaturan lanjutan**, biarkan default. Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, lakukan hal berikut:

   1. Di **penyedia Sumber**, pilih **CodeCommit**.

   1. Dalam nama **Repositori, pilih nama** repositori Anda.

   1. Di **Nama cabang**, pilih nama cabang Anda.

   1. Pastikan opsi **Mulai pipeline pada perubahan kode sumber** dipilih.

   1. Di bawah **Format artefak keluaran**, pilih **Klon penuh** untuk mengaktifkan opsi klon Git untuk repositori sumber. Hanya tindakan yang disediakan oleh yang CodeBuild dapat menggunakan opsi klon Git. 

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, lakukan hal berikut:

   1. Di **Penyedia pembangunan**, pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

   1. Untuk **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Perhatikan nama peran CodeBuild layanan Anda. Anda akan membutuhkan nama peran untuk langkah terakhir dalam tutorial ini.

   1. Pada **Buildspec**, untuk **Spesifikasi membangun**, pilih **Sisipkan perintah membangun**. Pilih **Beralih ke editor**, lalu di bawah **perintah Build** paste kode berikut.

      ```
      version: 0.2
      
      env:
        git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
            # name: version
          #commands:
            # - command
            # - command
        pre_build:
          commands:
            - ls -lt
            - cat README.md
        build:
          commands:
            - git log | head -100
            - git status
            - ls
            - git describe --all
        #post_build:
          #commands:
            # - command
            # - command
      #artifacts:
        #files:
          # - location
        #name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Pilih **Lanjutkan ke CodePipeline**. Ini mengembalikan Anda ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan perintah build untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

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

## Langkah 3: Perbarui kebijakan peran CodeBuild layanan untuk mengkloning repositori
<a name="tutorials-codecommit-gitclone-rolepolicy"></a>

Proses pipeline awal akan gagal karena Anda perlu memperbarui peran CodeBuild layanan dengan izin untuk menarik dari repositori Anda.

Tambahkan izin `codecommit:GitPull` IAM ke kebijakan peran layanan Anda. Untuk petunjuk memperbarui kebijakan di konsol IAM, lihat[Tambahkan CodeBuild GitClone izin untuk tindakan CodeCommit sumber](troubleshooting.md#codebuild-role-codecommitclone).

## Langkah 4: Lihat perintah repositori dalam output build
<a name="tutorials-codecommit-gitclone-view"></a>

**Untuk melihat output build**

1. Jika peran layanan Anda berhasil diperbarui, pilih **Coba lagi** pada CodeBuild tahap yang gagal.

1. Setelah pipeline berjalan dengan sukses, pada tahap build yang berhasil, pilih **Lihat detail**.

   Pada halaman detail, pilih tab **Log**. Lihat output CodeBuild build. Perintah menampilkan nilai variabel yang dimasukkan.

   Perintah menampilkan isi `README.md` file, daftar file dalam direktori, mengkloning repositori, melihat log, dan menjalankan. `git describe --all` 

# Tutorial: Buat pipeline dengan AWS CloudFormation StackSets tindakan penerapan
<a name="tutorials-stackset-deployment"></a>

Dalam tutorial ini, Anda menggunakan AWS CodePipeline konsol untuk membuat pipeline dengan tindakan penerapan untuk membuat kumpulan tumpukan dan membuat instance tumpukan. Saat pipeline berjalan, template membuat kumpulan tumpukan dan juga membuat dan memperbarui instance tempat set tumpukan digunakan.

**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.

Ada dua cara untuk mengelola izin untuk kumpulan tumpukan: peran IAM yang dikelola sendiri dan AWS-dikelola. Tutorial ini memberikan contoh dengan izin yang dikelola sendiri.

Untuk menggunakan Stacksets secara efektif CodePipeline, Anda harus memiliki pemahaman yang jelas tentang konsep di balik CloudFormation StackSets dan cara kerjanya. Lihat [StackSets konsep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html) di *Panduan AWS CloudFormation Pengguna*.

**Topics**
+ [Prasyarat](#tutorials-stackset-deployment-prereq)
+ [Langkah 1: Unggah AWS CloudFormation template sampel dan file parameter](#tutorials-stackset-deployment-upload)
+ [Langkah 2: Buat alur Anda](#tutorials-stackset-action-pipeline)
+ [Langkah 3: Lihat penyebaran awal](#tutorials-stackset-action-initial)
+ [Langkah 4: Tambahkan CloudFormationStackInstances tindakan](#tutorials-stacksets-instances)
+ [Langkah 5: Lihat sumber daya set tumpukan untuk penerapan Anda](#tutorials-stacksets-view)
+ [Langkah 6: Buat pembaruan ke set tumpukan Anda](#tutorials-stacksets-update)

## Prasyarat
<a name="tutorials-stackset-deployment-prereq"></a>

Untuk operasi set tumpukan, Anda menggunakan dua akun berbeda: akun administrasi dan akun target. Anda membuat set tumpukan di akun administrator. Anda membuat tumpukan individual milik tumpukan yang ditetapkan di akun target.

**Untuk membuat peran administrator dengan akun administrator Anda**
+ Ikuti petunjuk di [Siapkan izin dasar untuk operasi set tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html#stacksets-prereqs-accountsetup). Peran Anda harus diberi nama **`AWSCloudFormationStackSetAdministrationRole`**.

**Untuk membuat peran layanan di akun target**
+ Buat peran layanan di akun target yang mempercayai akun administrator. Ikuti petunjuk di [Siapkan izin dasar untuk operasi set tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html#stacksets-prereqs-accountsetup). Peran Anda harus diberi nama **`AWSCloudFormationStackSetExecutionRole`**. 

## Langkah 1: Unggah AWS CloudFormation template sampel dan file parameter
<a name="tutorials-stackset-deployment-upload"></a>

Buat bucket sumber untuk template set tumpukan dan file parameter Anda. Unduh file AWS CloudFormation templat sampel, atur file parameter, lalu zip file sebelum diunggah ke bucket sumber S3 Anda.

**catatan**  
Pastikan untuk ZIP file sumber sebelum Anda mengunggah ke bucket sumber S3 Anda, meskipun satu-satunya file sumber adalah template.



**Untuk membuat bucket sumber S3**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Pilih **Buat bucket**.

1. Dalam **nama Bucket**, masukkan nama untuk bucket Anda.

   Di **Wilayah**, pilih Wilayah tempat Anda ingin membuat pipeline. 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.**

**Untuk membuat file AWS CloudFormation template**

1. Unduh contoh file template berikut untuk menghasilkan CloudTrail konfigurasi untuk set tumpukan:[https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml).

1. Simpan file sebagai `template.yml`.

**Untuk membuat file parameters.txt**

1. Buat file dengan parameter untuk penyebaran Anda. Parameter adalah nilai yang ingin Anda perbarui di tumpukan Anda saat runtime. File contoh berikut memperbarui parameter template untuk kumpulan tumpukan Anda untuk mengaktifkan validasi logging dan peristiwa global.

   ```
   [
     {
       "ParameterKey": "EnableLogFileValidation",
       "ParameterValue": "true"
     }, 
     {
       "ParameterKey": "IncludeGlobalEvents",
       "ParameterValue": "true"
     }
   ]
   ```

1. Simpan file sebagai `parameters.txt`.

**Untuk membuat file accounts.txt**

1. Buat file dengan akun tempat Anda ingin membuat instance, seperti yang ditunjukkan pada file contoh berikut.

   ```
   [
       "111111222222","333333444444"
   ]
   ```

1. Simpan file sebagai `accounts.txt`.

**Untuk membuat dan mengunggah file sumber**

1. Gabungkan file menjadi satu file ZIP. File Anda akan terlihat seperti ini di file ZIP Anda.

   ```
   template.yml
   parameters.txt
   accounts.txt
   ```

1. Unggah file ZIP ke bucket S3 Anda. File ini adalah artefak sumber yang dibuat oleh wizard **Create Pipeline** untuk tindakan penerapan Anda. CodePipeline

## Langkah 2: Buat alur Anda
<a name="tutorials-stackset-action-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan aksi sumber S3 di mana artefak sumber adalah file template Anda dan file sumber pendukung apa pun.
+ Tahap penerapan dengan aksi penyebaran set CloudFormation tumpukan yang membuat kumpulan tumpukan.
+ Tahap penerapan dengan aksi penerapan instance CloudFormation tumpukan yang membuat tumpukan dan instance di dalam akun target.

**Untuk membuat pipeline dengan CloudFormationStackSet tindakan**

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 **Alur**, pilih **Buat alur**.

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**MyStackSetsPipeline**.

1. Dalam **tipe Pipeline**, pilih **V1** untuk keperluan tutorial ini. Anda juga dapat memilih **V2**; Namun, perhatikan bahwa jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat [Jenis pipa](pipeline-types.md).

1. Dalam **peran Layanan**, pilih **Peran layanan baru** CodePipeline untuk memungkinkan membuat peran layanan di IAM.

1. Di **toko Artifact**, tinggalkan default.
**catatan**  
Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur. Saat membuat atau mengedit pipeline, Anda harus memiliki bucket artefak di Wilayah pipeline dan satu bucket artefak per AWS Wilayah tempat Anda menjalankan tindakan.  
Untuk informasi selengkapnya, lihat [Artefak input dan output](welcome-introducing-artifacts.md) dan [CodePipeline referensi struktur pipa](reference-pipeline-structure.md).

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, di **penyedia Sumber**, pilih **Amazon S3**.

1. Di **Bucket**, masukkan bucket sumber S3 yang Anda buat untuk tutorial ini, seperti`BucketName`. Dalam **kunci objek S3**, masukkan path file dan nama file untuk file ZIP Anda, seperti`MyFiles.zip`.

1. 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**:

   1. Di **penyedia Deploy**, pilih **AWS CloudFormation Stack Set**.

   1. Di **Stack set name**, masukkan nama untuk stack set. Ini adalah nama kumpulan tumpukan yang dibuat template.
**catatan**  
Catat nama set tumpukan Anda. Anda akan menggunakannya saat menambahkan tindakan StackSets penerapan kedua ke pipeline Anda.

   1. Di **jalur Template**, masukkan nama artefak dan jalur file tempat Anda mengunggah file template Anda. Misalnya, masukkan yang berikut ini menggunakan nama `SourceArtifact` artefak sumber default.

      ```
      SourceArtifact::template.yml
      ```

   1. Di **target Deployment**, masukkan nama artefak dan jalur file tempat Anda mengunggah file akun. Misalnya, masukkan yang berikut ini menggunakan nama `SourceArtifact` artefak sumber default.

      ```
      SourceArtifact::accounts.txt
      ```

   1. Di **target Deployment Wilayah AWS**, masukkan satu Wilayah untuk penerapan instance tumpukan awal Anda, seperti. `us-east-1`

   1. Perluas **opsi Deployment**. Di **Parameter**, masukkan nama artefak dan jalur file tempat Anda mengunggah file parameter Anda. Misalnya, masukkan yang berikut ini menggunakan nama `SourceArtifact` artefak sumber default.

      ```
      SourceArtifact::parameters.txt
      ```

      Untuk memasukkan parameter sebagai input literal daripada jalur file, masukkan yang berikut ini:

      ```
      ParameterKey=EnableLogFileValidation,ParameterValue=true
      ParameterKey=IncludeGlobalEvents,ParameterValue=true
      ```

   1. Di **Capabilities**, pilih CAPABILITY\$1IAM dan CAPABILITY\$1NAMED\$1IAM.

   1. Dalam **model Izin**, pilih SELF\$1MANAGED.

   1. Dalam **persentase toleransi kegagalan**, masukkan`20`.

   1. Dalam **persentase bersamaan Max**, masukkan`25`.

   1. Pilih **Berikutnya**.

   1. Pada **Langkah 7: Tinjau**, pilih **Buat pipeline**. Tampilan pipa Anda. 

   1. Biarkan pipeline Anda berjalan. 

## Langkah 3: Lihat penyebaran awal
<a name="tutorials-stackset-action-initial"></a>

Lihat sumber daya dan status untuk penerapan awal Anda. Setelah memverifikasi penerapan berhasil membuat kumpulan tumpukan Anda, Anda dapat menambahkan tindakan kedua ke tahap **Deploy** Anda.

**Untuk melihat sumber daya**

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

1. Di bawah **Pipelines**, pilih pipeline Anda dan pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Pilih CloudFormation tindakan pada **CloudFormationStackSet**tindakan di pipeline Anda. Templat, sumber daya, dan peristiwa untuk kumpulan tumpukan Anda ditampilkan di CloudFormation konsol.

1. Di panel navigasi kiri, pilih **StackSets**. Dalam daftar, pilih set tumpukan baru.

1. Pilih tab **Stack instance**. Verifikasi bahwa satu instance tumpukan untuk setiap akun yang Anda berikan telah dibuat di Wilayah us-east-1. Verifikasi bahwa status untuk setiap instance stack adalah`CURRENT`.

## Langkah 4: Tambahkan CloudFormationStackInstances tindakan
<a name="tutorials-stacksets-instances"></a>

Buat tindakan berikutnya di pipeline Anda yang memungkinkan Anda CloudFormation StackSets membuat instance tumpukan yang tersisa.

**Untuk membuat tindakan selanjutnya di pipeline Anda**

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

   Di bawah **Pipelines**, pilih pipeline Anda dan pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Pilih untuk mengedit pipeline. Pipeline ditampilkan dalam mode **Edit**. 

1. Pada tahap **Deploy**, pilih **Edit**.

1. Di bawah tindakan penyebaran **AWS CloudFormation Stack Set**, pilih **Tambahkan grup tindakan**.

1. Pada halaman **Edit tindakan**, tambahkan detail tindakan:

   1. Di **Nama tindakan**, masukkan nama untuk tindakan tersebut.

   1. Di **penyedia Action**, pilih **AWS CloudFormation Stack Instances.**

   1. Di bawah **Input artefak**, pilih **SourceArtifact**.

   1. Di **Stack set name**, masukkan nama untuk stack set. Ini adalah nama kumpulan tumpukan yang Anda berikan dalam tindakan pertama.

   1. Di **target Deployment**, masukkan nama artefak dan jalur file tempat Anda mengunggah file akun. Misalnya, masukkan yang berikut ini menggunakan nama `SourceArtifact` artefak sumber default.

      ```
      SourceArtifact::accounts.txt
      ```

   1. Di **target Deployment Wilayah AWS**, masukkan Wilayah untuk penerapan instance tumpukan Anda yang tersisa, seperti `us-east-2` dan `eu-central-1` sebagai berikut:

      ```
      us-east2, eu-central-1
      ```

   1. Dalam **persentase toleransi kegagalan**, masukkan`20`.

   1. Dalam **persentase bersamaan Max**, masukkan`25`.

   1. Pilih **Simpan**.

   1. .Secara manual melepaskan perubahan. Pipeline Anda yang diperbarui ditampilkan dengan dua tindakan di tahap Deploy.

## Langkah 5: Lihat sumber daya set tumpukan untuk penerapan Anda
<a name="tutorials-stacksets-view"></a>

Anda dapat melihat sumber daya dan status untuk penerapan set tumpukan Anda.

**Untuk melihat sumber daya**

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

1. Di bawah **Pipelines**, pilih pipeline Anda, lalu pilih **View**. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

1. Pilih CloudFormation tindakan pada **`AWS CloudFormation Stack Instances`**tindakan di pipeline Anda. Templat, sumber daya, dan peristiwa untuk kumpulan tumpukan Anda ditampilkan di CloudFormation konsol.

1. Di panel navigasi kiri, pilih **StackSets**. Dalam daftar, pilih set tumpukan Anda.

1. Pilih tab **Stack instance**. Verifikasi bahwa semua instance tumpukan yang tersisa untuk setiap akun yang Anda berikan telah dibuat atau diperbarui di Wilayah yang diharapkan. Verifikasi bahwa status untuk setiap instance stack adalah`CURRENT`.

## Langkah 6: Buat pembaruan ke set tumpukan Anda
<a name="tutorials-stacksets-update"></a>

Buat pembaruan ke set tumpukan Anda dan terapkan pembaruan ke instance. Dalam contoh ini, Anda juga membuat perubahan pada target penerapan yang ingin Anda tetapkan untuk pembaruan. Contoh yang bukan bagian dari pembaruan pindah ke status usang.

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

1. Di bawah **Pipelines**, pilih pipeline Anda dan kemudian pilih **Edit**. Pada tahap **Deploy**, pilih **Edit**.

1. Pilih untuk mengedit tindakan **AWS CloudFormation Stack Set** di pipeline Anda. Dalam **Deskripsi**, tulis deskripsi yang ada dengan deskripsi baru untuk kumpulan tumpukan.

1. Pilih untuk mengedit tindakan **AWS CloudFormation Stack Instances** di pipeline Anda. Di **target Deployment Wilayah AWS**, hapus `us-east-2` nilai yang dimasukkan saat tindakan dibuat.

1. Simpan perubahan. Pilih **Rilis perubahan** untuk menjalankan pipeline Anda.

1. Buka tindakan Anda di CloudFormation. Pilih tab **StackSet info**. Dalam **StackSet deskripsi**, verifikasi bahwa deskripsi baru ditampilkan.

1. Pilih tab **Stack instance**. Di bawah **Status**, verifikasi bahwa status untuk instance tumpukan di us-east-2 adalah. `OUTDATED`

# Tutorial: Buat aturan pemeriksaan variabel untuk pipeline sebagai kondisi entri
<a name="tutorials-varcheckrule"></a>

Dalam tutorial ini, Anda mengonfigurasi pipeline yang terus-menerus mengirimkan file menggunakan GitHub sebagai penyedia tindakan sumber di tahap sumber Anda. Pipeline yang telah selesai mendeteksi perubahan saat Anda membuat perubahan pada file sumber di repositori sumber Anda. Pipeline berjalan dan kemudian memeriksa variabel output terhadap nama repositori sumber dan nama cabang yang disediakan dalam kondisi untuk masuk ke tahap build.

**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.

**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).

Contoh ini menggunakan pipeline contoh dengan aksi sumber GitHub (Version2) dan aksi CodeBuild build di mana kondisi entri untuk tahap build akan memeriksa variabel.

## Prasyarat
<a name="tutorials-varcheckrule-prereq"></a>

Sebelum Anda mulai, Anda harus melakukan hal berikut:
+ Buat GitHub repositori dengan akun Anda GitHub .
+ Siapkan GitHub kredensialmu. Ketika Anda menggunakan Konsol Manajemen AWS untuk mengatur koneksi, Anda diminta untuk masuk dengan GitHub kredensi Anda. 
+ Koneksi ke repositori Anda untuk disiapkan GitHub (melalui GitHub Aplikasi) sebagai tindakan sumber untuk pipeline Anda. Untuk membuat koneksi ke GitHub repositori Anda, lihat. [GitHub koneksi](connections-github.md)

## Langkah 1: Buat file sumber sampel dan tambahkan ke GitHub repositori Anda
<a name="tutorials-varcheckrule-push"></a>

Di bagian ini, Anda membuat dan menambahkan file sumber contoh Anda ke repositori yang digunakan pipeline untuk tahap sumber Anda. Untuk contoh ini, Anda menghasilkan dan menambahkan yang berikut: 
+ File `README.md`.

Setelah Anda membuat GitHub repositori Anda, gunakan langkah-langkah ini untuk menambahkan file README Anda.

1. Masuk ke repositori Anda dan pilih GitHub repositori Anda.

1. Untuk membuat file baru, pilih **Tambah file**, lalu pilih **Buat file baru**. Beri nama file `README.md` dan tambahkan teks berikut.

   ```
   This is a GitHub repository!
   ```

1. Pilih **Perubahan commit**. Untuk keperluan tutorial ini, tambahkan pesan komit yang berisi kata huruf besar “Update” seperti pada contoh berikut:

   ```
   Update to source files
   ```
**catatan**  
Pemeriksaan aturan untuk string peka huruf besar/kecil.

   Pastikan file `README.md` berada di tingkat root repositori Anda..

## Langkah 2: Buat alur Anda
<a name="tutorials-varcheckrule-create-pipeline"></a>

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:
+ Tahap sumber dengan koneksi ke GitHub repositori dan tindakan Anda.
+ Tahap CodeBuild build di mana stage memiliki kondisi On Entry yang dikonfigurasi untuk aturan pemeriksaan variabel.

**Untuk membuat alur dengan wizard**

1. Masuk ke CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Alur**, pilih **Buat alur**.

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**MyVarCheckPipeline**.

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. Di **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Jika Anda memilih untuk menggunakan peran CodePipeline layanan yang ada, pastikan Anda telah menambahkan izin `codeconnections:UseConnection` IAM ke kebijakan peran layanan Anda. Untuk petunjuk tentang peran CodePipeline layanan, lihat [Menambahkan izin ke peran CodePipeline layanan](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Di bawah **Pengaturan lanjutan**, biarkan default.

   Pilih **Berikutnya**.

1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, tambahkan tahap sumber:

   1. Di **penyedia Sumber**, pilih **GitHub(melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Dalam nama **Repositori, pilih nama** repositori Anda GitHub .

   1. Dalam **nama Branch**, pilih cabang repositori yang ingin Anda gunakan.

   1. Pastikan opsi **Tidak ada pemicu** dipilih.

   Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, tambahkan tahap build:

   1. Di **Penyedia pembangunan**, pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

   1. Untuk **Peran layanan**, pilih **Peran layanan baru**.
**catatan**  
Perhatikan nama peran CodeBuild layanan Anda. Anda akan membutuhkan nama peran untuk langkah terakhir dalam tutorial ini.

   1. Pada **Buildspec**, untuk **Spesifikasi membangun**, pilih **Sisipkan perintah membangun**. Pilih **Beralih ke editor**, dan tempel yang berikut ini di bawah **perintah Build**.

      ```
      version: 0.2
      #env:
        #variables:
           # key: "value"
           # key: "value"
        #parameter-store:
           # key: "value"
           # key: "value"
        #git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
          #commands:
            # - command
            # - command
        #pre_build:
          #commands:
            # - command
            # - command
        build:
          commands:
            - 
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
           - '*'
          # - location
        name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Pilih **Lanjutkan ke CodePipeline**. Ini kembali ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan perintah build Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. 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 halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

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

## Langkah 2: Edit tahap build untuk menambahkan kondisi dan aturan
<a name="tutorials-varcheckrule-create-condition"></a>

Pada langkah ini, Anda mengedit tahap untuk menambahkan kondisi On Entry untuk aturan pemeriksaan variabel.

1. Pilih pipeline Anda, lalu pilih **Edit**. Pilih untuk menambahkan aturan entri pada tahap build. 

   Di **Penyedia aturan**, pilih **VariableCheck**.

1. Di **Variable**, masukkan variabel atau variabel yang ingin Anda periksa. Di **Nilai**, masukkan nilai string untuk memeriksa variabel yang diselesaikan. Di layar contoh berikut, aturan dibuat untuk pemeriksaan “sama dengan”, dan aturan lain dibuat untuk pemeriksaan “berisi”.  
![\[Halaman pembuatan aturan untuk pemeriksaan variabel “sama”\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/varcheck-tut-create-rule-equals.png)  
![\[Halaman pembuatan aturan untuk pemeriksaan variabel “berisi”\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/varcheck-tut-create-rule-contains.png)

1. Pilih **Simpan**. 

   Pilih **Selesai**.

## Langkah 3: Jalankan pipeline dan lihat variabel yang diselesaikan
<a name="tutorials-varcheckrule-run"></a>

Pada langkah ini, Anda melihat nilai dan hasil yang diselesaikan dari aturan pemeriksaan variabel.

1. Lihat proses yang diselesaikan setelah pemeriksaan aturan berhasil seperti yang ditunjukkan pada contoh berikut.  
![\[Lari yang sukses\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/varcheck-tut-run-succeeded.png)

1. Lihat informasi variabel pada tab **Timeline**.   
![\[Halaman riwayat yang menampilkan tab Timline dengan variabel berhasil\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/varcheck-tut-history.png)