

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

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

Bagian ini mencakup beberapa tutorial untuk membantu Anda mempelajari cara menggunakan CodeDeploy.

Prosedur dalam tutorial ini memberikan saran untuk lokasi tempat menyimpan file (misalnya, c:\$1temp) dan nama yang akan diberikan ke ember, subfolder, atau file (misalnya, amzn-s3-demo-bucket,, dan CodeDeployDemo - EC2 -trust.json, masing-masing) HelloWorldApp, tetapi Anda tidak diharuskan menggunakannya. Pastikan untuk mengganti lokasi dan nama file Anda saat Anda melakukan prosedur.

**Topics**
+ [Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)](tutorials-wordpress.md)
+ [Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)](tutorials-windows.md)
+ [Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)](tutorials-on-premises-instance.md)
+ [Tutorial: Gunakan CodeDeploy untuk menyebarkan aplikasi ke grup Auto Scaling](tutorials-auto-scaling-group.md)
+ [Tutorial: Gunakan CodeDeploy untuk menyebarkan aplikasi dari GitHub](tutorials-github.md)
+ [Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md)
+ [Tutorial: Menyebarkan layanan Amazon ECS dengan uji validasi](tutorial-ecs-deployment-with-hooks.md)
+ [Tutorial: Menyebarkan fungsi Lambda yang diperbarui CodeDeploy dengan dan Model Aplikasi Tanpa AWS Server](tutorial-lambda-sam.md)

# Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)
<a name="tutorials-wordpress"></a>

Dalam tutorial ini, Anda menyebarkan WordPress, alat blogging open source dan sistem manajemen konten berdasarkan PHP dan MySQL, ke satu instans Amazon EC2 yang menjalankan Amazon Linux atau Red Hat Enterprise Linux (RHEL).

Bukan apa yang Anda cari?
+ Untuk mempraktikkan penerapan ke instans Amazon EC2 yang menjalankan Windows Server sebagai gantinya, lihat. [Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)](tutorials-windows.md)
+ Untuk mempraktikkan penerapan ke instans lokal, bukan instans Amazon EC2, lihat. [Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)](tutorials-on-premises-instance.md)

Langkah-langkah tutorial ini disajikan dari perspektif mesin pengembangan lokal yang menjalankan Linux, macOS, atau Unix. Meskipun Anda dapat menyelesaikan sebagian besar langkah-langkah ini pada mesin lokal yang menjalankan Windows, Anda harus menyesuaikan langkah-langkah yang mencakup perintah seperti **chmod** dan**wget**, aplikasi seperti sed, dan jalur direktori seperti`/tmp`.

Sebelum Anda memulai tutorial ini, Anda harus menyelesaikan prasyarat di. [Memulai dengan CodeDeploy](getting-started-codedeploy.md) Ini termasuk mengonfigurasi pengguna, menginstal atau meningkatkan AWS CLI, dan membuat profil instans IAM dan peran layanan.

**Topics**
+ [Langkah 1: Luncurkan dan konfigurasikan instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux](tutorials-wordpress-launch-instance.md)
+ [Langkah 2: Konfigurasikan konten sumber Anda untuk digunakan ke instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux Amazon EC2](tutorials-wordpress-configure-content.md)
+ [Langkah 3: Unggah WordPress aplikasi Anda ke Amazon S3](tutorials-wordpress-upload-application.md)
+ [Langkah 4: Menyebarkan aplikasi Anda WordPress](tutorials-wordpress-deploy-application.md)
+ [Langkah 5: Perbarui dan terapkan ulang aplikasi Anda WordPress](tutorials-wordpress-update-and-redeploy-application.md)
+ [Langkah 6: Bersihkan WordPress aplikasi Anda dan sumber daya terkait](tutorials-wordpress-clean-up.md)

# Langkah 1: Luncurkan dan konfigurasikan instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux
<a name="tutorials-wordpress-launch-instance"></a>

Untuk menerapkan WordPress aplikasi CodeDeploy, Anda memerlukan instans Amazon EC2 yang menjalankan Amazon Linux atau Red Hat Enterprise Linux (RHEL). Instans Amazon EC2 memerlukan aturan keamanan masuk baru yang memungkinkan koneksi HTTP. Aturan ini diperlukan untuk melihat WordPress halaman di browser setelah berhasil digunakan.

Ikuti petunjuk dalam [Buat instans Amazon EC2 untuk CodeDeploy](instances-ec2-create.md). Saat Anda mendapatkan bagian dalam instruksi tersebut tentang menetapkan tag instans Amazon EC2 ke instance, pastikan untuk menentukan kunci tag dan **Name** nilai tag. **CodeDeployDemo** (Jika Anda menentukan kunci tag atau nilai tag yang berbeda, maka instruksi di [Langkah 4: Menyebarkan aplikasi Anda WordPress](tutorials-wordpress-deploy-application.md) dapat menghasilkan hasil yang tidak terduga.)

Setelah Anda mengikuti petunjuk untuk meluncurkan instans Amazon EC2, kembali ke halaman ini, dan lanjutkan ke bagian berikutnya. Jangan melanjutkan ke [Buat aplikasi dengan CodeDeploy](applications-create.md) langkah berikutnya.

## Connect ke instans Amazon Linux atau RHEL Amazon EC2
<a name="tutorials-wordpress-launch-instance-connect"></a>

Setelah instans Amazon EC2 baru Anda diluncurkan, ikuti petunjuk ini untuk berlatih menghubungkannya.

1. Gunakan **ssh** perintah (atau emulator terminal berkemampuan SSH seperti [PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)) untuk terhubung ke instans Amazon Linux atau RHEL Amazon EC2 Anda. Anda akan memerlukan alamat DNS publik dari instance dan kunci pribadi untuk key pair yang Anda gunakan saat memulai instans Amazon EC2. Untuk informasi selengkapnya, lihat [Connect to Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-connect-to-instance-linux.html).

   Misalnya, jika alamat DNS publik**ec2-01-234-567-890.compute-1.amazonaws.com**, dan key pair instans Amazon EC2 untuk akses SSH **codedeploydemo.pem** diberi nama, Anda akan mengetik:

   ```
   ssh -i /path/to/codedeploydemo.pem ec2-user@ec2-01-234-567-890.compute-1.amazonaws.com
   ```

   Ganti `/path/to/codedeploydemo.pem` dengan jalur ke `.pem` file Anda dan contoh alamat DNS dengan alamat ke instans Amazon Linux atau RHEL Amazon EC2 Anda.
**catatan**  
Jika Anda menerima kesalahan tentang izin file kunci Anda yang terlalu terbuka, Anda harus membatasi izinnya untuk memberikan akses hanya kepada pengguna saat ini (Anda). Misalnya, dengan **chmod** perintah di Linux, macOS, atau Unix, ketik:

   ```
   chmod 400 /path/to/codedeploydemo.pem
   ```

1. Setelah Anda masuk, Anda akan melihat spanduk AMI untuk instans Amazon EC2. Untuk Amazon Linux, seharusnya terlihat seperti ini:

   ```
          __|  __|_  )
          _|  (     /   Amazon Linux AMI
         ___|\___|___|
   ```

1. Anda sekarang dapat keluar dari instans Amazon EC2 yang sedang berjalan.
**Awas**  
Jangan menghentikan atau menghentikan instans Amazon EC2. Jika CodeDeploy tidak, tidak akan dapat menerapkannya.

## Tambahkan aturan masuk yang memungkinkan lalu lintas HTTP ke instans Amazon Linux atau RHEL Amazon EC2 Anda
<a name="tutorials-wordpress-launch-instance-add-inbound-rule"></a>

Langkah selanjutnya mengonfirmasi instans Amazon EC2 Anda memiliki port HTTP terbuka sehingga Anda dapat melihat halaman beranda WordPress aplikasi yang digunakan di browser. 

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. Pilih **Instans**, lalu pilih instans Anda. 

1. Pada tab **Deskripsi**, di bawah **Grup keamanan**, pilih **lihat aturan masuk**. 

   Anda akan melihat daftar aturan di grup keamanan Anda seperti berikut ini:

   ```
   Security Groups associated with i-1234567890abcdef0
    Ports     Protocol     Source     launch-wizard-N
    22        tcp          0.0.0.0/0          ✔
   ```

1.  Di bawah **Grup keamanan**, pilih grup keamanan untuk instans Amazon EC2 Anda. Itu bisa diberi nama**launch-wizard-*N***. ***N***Dalam nama adalah nomor yang ditetapkan ke grup keamanan Anda saat instance Anda dibuat. 

    Pilih tab **Masuk**. Jika grup keamanan untuk instans Anda dikonfigurasi dengan benar, Anda akan melihat aturan dengan nilai-nilai berikut: 
   + **Jenis**: HTTP
   + **Protokol**: TCP
   + **Rentang Port**: 80
   + **Sumber**: 0.0.0.0/0

1.  Jika Anda tidak melihat aturan dengan nilai-nilai ini, gunakan prosedur dalam [Menambahkan Aturan ke Grup Keamanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) untuk menambahkannya ke aturan keamanan baru. 

# Langkah 2: Konfigurasikan konten sumber Anda untuk digunakan ke instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux Amazon EC2
<a name="tutorials-wordpress-configure-content"></a>

Sekarang saatnya untuk mengonfigurasi konten sumber aplikasi Anda sehingga Anda memiliki sesuatu untuk diterapkan ke instance.

**Topics**
+ [Dapatkan kode sumbernya](#tutorials-wordpress-configure-content-download-code)
+ [Buat skrip untuk menjalankan aplikasi Anda](#tutorials-wordpress-configure-content-create-scripts)
+ [Tambahkan file spesifikasi aplikasi](#tutorials-wordpress-configure-content-add-appspec-file)

## Dapatkan kode sumbernya
<a name="tutorials-wordpress-configure-content-download-code"></a>

Untuk tutorial ini, Anda menerapkan platform penerbitan WordPress konten dari mesin pengembangan Anda ke instans Amazon EC2 target. Untuk mendapatkan kode WordPress sumber, Anda dapat menggunakan panggilan baris perintah bawaan. Atau, jika Anda telah menginstal Git di mesin pengembangan Anda, Anda dapat menggunakannya sebagai gantinya.

Untuk langkah-langkah ini, kami berasumsi Anda mengunduh salinan kode WordPress sumber ke `/tmp` direktori di mesin pengembangan Anda. (Anda dapat memilih direktori apa pun yang Anda suka, tetapi ingat untuk mengganti lokasi Anda `/tmp` di mana pun itu ditentukan dalam langkah-langkah ini.)

Pilih salah satu dari dua opsi berikut untuk menyalin file WordPress sumber ke mesin pengembangan Anda. Opsi pertama menggunakan panggilan baris perintah bawaan. Opsi kedua menggunakan Git.

**Topics**
+ [Untuk mendapatkan salinan kode WordPress sumber (panggilan baris perintah bawaan)](#tutorials-wordpress-configure-content-download-code-command-line)
+ [Untuk mendapatkan salinan kode WordPress sumber (Git)](#tutorials-wordpress-configure-content-download-code-git)

### Untuk mendapatkan salinan kode WordPress sumber (panggilan baris perintah bawaan)
<a name="tutorials-wordpress-configure-content-download-code-command-line"></a>

1. Panggil **wget** perintah untuk mengunduh salinan kode WordPress sumber, sebagai file.zip, ke direktori saat ini:

   ```
   wget https://github.com/WordPress/WordPress/archive/master.zip
   ```

1. Panggil**unzip**,**mkdir**,**cp**, dan **rm** perintah untuk:
   + Buka paket `master` file.zip ke dalam `/tmp/WordPress_Temp` direktori (folder).
   + Salin isinya yang tidak di-zip ke folder `/tmp/WordPress` tujuan.
   + Hapus `/tmp/WordPress_Temp` folder dan `master` file sementara.

   Jalankan perintah satu per satu:

   ```
   unzip master -d /tmp/WordPress_Temp
   ```

   ```
   mkdir -p /tmp/WordPress
   ```

   ```
   cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
   ```

   ```
   rm -rf /tmp/WordPress_Temp
   ```

   ```
   rm -f master
   ```

   Ini meninggalkan Anda dengan satu set file kode WordPress sumber yang bersih di `/tmp/WordPress` folder.

### Untuk mendapatkan salinan kode WordPress sumber (Git)
<a name="tutorials-wordpress-configure-content-download-code-git"></a>

1. Unduh dan instal [Git](http://git-scm.com) di mesin pengembangan Anda.

1. Di `/tmp/WordPress` folder, panggil **git init** perintah. 

1. Panggil **git clone** perintah untuk mengkloning WordPress repositori publik, buat salinannya sendiri di folder tujuan: `/tmp/WordPress`

   ```
   git clone https://github.com/WordPress/WordPress.git /tmp/WordPress
   ```

   Ini meninggalkan Anda dengan satu set file kode WordPress sumber yang bersih di `/tmp/WordPress` folder.

## Buat skrip untuk menjalankan aplikasi Anda
<a name="tutorials-wordpress-configure-content-create-scripts"></a>

Selanjutnya, buat folder dan skrip di direktori. CodeDeploy menggunakan skrip ini untuk menyiapkan dan menerapkan revisi aplikasi Anda pada instans Amazon EC2 target. Anda dapat menggunakan editor teks apa pun untuk membuat skrip.

1. Buat direktori skrip dalam salinan kode WordPress sumber Anda:

   ```
   mkdir -p /tmp/WordPress/scripts
   ```

1. Buat `install_dependencies.sh` file di`/tmp/WordPress/scripts`. Tambahkan baris berikut ke file. `install_dependencies.sh`Script ini menginstal Apache, MySQL, dan PHP. Ini juga menambahkan dukungan MySQL ke PHP.

   ```
   #!/bin/bash
   sudo amazon-linux-extras install php7.4
   sudo yum install -y httpd mariadb-server php
   ```

1. Buat `start_server.sh` file di`/tmp/WordPress/scripts`. Tambahkan baris berikut ke file. `start_server.sh`Script ini dimulai Apache dan MySQL.

   ```
   #!/bin/bash
   systemctl start mariadb.service
   systemctl start httpd.service
   systemctl start php-fpm.service
   ```

1. Buat `stop_server.sh` file di`/tmp/WordPress/scripts`. Tambahkan baris berikut ke file. `stop_server.sh`Script ini menghentikan Apache dan MySQL.

   ```
   #!/bin/bash
   isExistApp="pgrep httpd"
   if [[ -n $isExistApp ]]; then
   systemctl stop httpd.service
   fi
   isExistApp=pgrep mysqld
   if [[ -n $isExistApp ]]; then
   systemctl stop mariadb.service
   fi
   isExistApp=pgrep php-fpm
   if [[ -n $isExistApp ]]; then
   systemctl stop php-fpm.service
   
   fi
   ```

1. Buat `create_test_db.sh` file di`/tmp/WordPress/scripts`. Tambahkan baris berikut ke file. `create_test_db.sh`Script ini menggunakan MySQL untuk membuat **test** database WordPress untuk digunakan.

   ```
   #!/bin/bash
   mysql -uroot <<CREATE_TEST_DB
   CREATE DATABASE IF NOT EXISTS test;
   CREATE_TEST_DB
   ```

1. Akhirnya, buat `change_permissions.sh` skrip di`/tmp/WordPress/scripts`. Ini digunakan untuk mengubah izin folder di Apache.
**penting**  
 Skrip ini memperbarui izin pada `/tmp/WordPress` folder sehingga siapa pun dapat menulis ke sana. Ini diperlukan agar WordPress dapat menulis ke database-nya selama[Langkah 5: Perbarui dan terapkan ulang aplikasi Anda WordPress](tutorials-wordpress-update-and-redeploy-application.md). Setelah WordPress aplikasi diatur, jalankan perintah berikut untuk memperbarui izin ke pengaturan yang lebih aman:  

   ```
   chmod -R 755 /var/www/html/WordPress
   ```

   ```
   #!/bin/bash
   chmod -R 777 /var/www/html/WordPress
   ```

1. Berikan semua skrip izin yang dapat dieksekusi. Pada baris perintah, ketik:

   ```
   chmod +x /tmp/WordPress/scripts/*
   ```

## Tambahkan file spesifikasi aplikasi
<a name="tutorials-wordpress-configure-content-add-appspec-file"></a>

Selanjutnya, tambahkan file spesifikasi aplikasi (AppSpec file), file berformat [YAMB](http://www.yaml.org) yang digunakan oleh ke: CodeDeploy 
+ Petakan file sumber dalam revisi aplikasi Anda ke tujuannya pada instans Amazon EC2 target.
+ Tentukan izin khusus untuk file yang digunakan.
+ Tentukan skrip yang akan dijalankan pada instans Amazon EC2 target selama penerapan.

 AppSpec File harus diberi nama`appspec.yml`. Itu harus ditempatkan di direktori root kode sumber aplikasi. Dalam tutorial ini, direktori root adalah `/tmp/WordPress`

Dengan editor teks Anda, buat file bernama`appspec.yml`. Tambahkan baris berikut ke file:

```
version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/WordPress
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/change_permissions.sh
      timeout: 300
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
    - location: scripts/create_test_db.sh
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: root
```

CodeDeploy menggunakan AppSpec file ini untuk menyalin semua file dalam `/tmp/WordPress` folder pada mesin pengembangan ke `/var/www/html/WordPress` folder pada instans Amazon EC2 target. Selama penerapan, CodeDeploy jalankan skrip yang ditentukan seperti pada `/var/www/html/WordPress/scripts` folder `root` pada instans Amazon EC2 target pada peristiwa tertentu selama siklus hidup penerapan, seperti dan. **BeforeInstall** **AfterInstall** Jika salah satu skrip ini membutuhkan waktu lebih dari 300 detik (5 menit) untuk dijalankan, CodeDeploy hentikan penerapan dan tandai penerapan sebagai gagal.

Untuk informasi selengkapnya tentang pengaturan ini, lihat[CodeDeploy AppSpec referensi file](reference-appspec-file.md).

**penting**  
Lokasi dan jumlah spasi antara masing-masing item dalam file ini penting. Jika spasi salah, CodeDeploy memunculkan kesalahan yang mungkin sulit untuk di-debug. Lihat informasi yang lebih lengkap di [AppSpec Spasi file](reference-appspec-file.md#reference-appspec-file-spacing).

# Langkah 3: Unggah WordPress aplikasi Anda ke Amazon S3
<a name="tutorials-wordpress-upload-application"></a>

Sekarang Anda akan mempersiapkan dan mengunggah konten sumber Anda ke lokasi yang CodeDeploy dapat menyebarkannya. Petunjuk berikut menunjukkan cara menyediakan bucket Amazon S3, menyiapkan file revisi aplikasi untuk bucket, menggabungkan file revisi, lalu mendorong revisi ke bucket.

**catatan**  
Meskipun tidak tercakup dalam tutorial ini, Anda dapat menggunakan CodeDeploy untuk menyebarkan aplikasi dari GitHub repositori ke instance. Untuk informasi selengkapnya, lihat [Integrasi dengan CodeDeploy GitHub](integrations-partners-github.md).

**Topics**
+ [Menyediakan bucket Amazon S3](#tutorials-wordpress-upload-application-create-s3-bucket)
+ [Siapkan file aplikasi untuk ember](#tutorials-wordpress-upload-application-prepare-application-files)
+ [Bundel file aplikasi ke dalam satu file arsip dan dorong file arsip](#tutorials-wordpress-upload-application-bundle-and-push-archive)

## Menyediakan bucket Amazon S3
<a name="tutorials-wordpress-upload-application-create-s3-bucket"></a>

Buat wadah penyimpanan atau *bucket di* Amazon S3—atau gunakan bucket yang sudah ada. Pastikan Anda dapat mengunggah revisi ke bucket dan instans Amazon EC2 yang digunakan dalam penerapan dapat mengunduh revisi dari bucket.

Anda dapat menggunakan konsol Amazon S3, atau Amazon S3 untuk membuat APIs bucket Amazon S3. AWS CLI Setelah Anda membuat bucket, pastikan untuk memberikan izin akses ke bucket dan AWS akun Anda.

**catatan**  
Nama bucket harus unik di Amazon S3 untuk semua AWS akun. Jika Anda tidak dapat menggunakannya**amzn-s3-demo-bucket**, coba nama bucket yang berbeda, seperti **amzn-s3-demo-bucket** diikuti dengan tanda hubung dan inisiasi Anda atau pengenal unik lainnya. Kemudian pastikan untuk mengganti nama bucket Anda ke **amzn-s3-demo-bucket** mana pun Anda melihatnya di seluruh tutorial ini.  
Bucket Amazon S3 harus dibuat di AWS wilayah yang sama tempat instans Amazon EC2 target Anda diluncurkan. Misalnya, jika Anda membuat bucket di Wilayah AS Timur (Virginia N.), instans Amazon EC2 target Anda harus diluncurkan di Wilayah AS Timur (Virginia Utara).

**Topics**
+ [Untuk membuat bucket Amazon S3 (CLI)](#tutorials-wordpress-upload-application-create-s3-bucket-cli)
+ [Untuk membuat bucket Amazon S3 (konsol)](#tutorials-wordpress-upload-application-create-s3-bucket-console)
+ [Berikan izin ke bucket dan akun Amazon S3 AWS](#tutorials-wordpress-upload-application-create-s3-bucket-grant-permissions)

### Untuk membuat bucket Amazon S3 (CLI)
<a name="tutorials-wordpress-upload-application-create-s3-bucket-cli"></a>

Panggil **mb** perintah untuk membuat bucket Amazon S3 bernama: **amzn-s3-demo-bucket**

```
aws s3 mb s3://amzn-s3-demo-bucket --region region
```

### Untuk membuat bucket Amazon S3 (konsol)
<a name="tutorials-wordpress-upload-application-create-s3-bucket-console"></a>

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

1. Di konsol Amazon S3, pilih **Buat** ember.

1. Di kotak **nama Bucket**, ketikkan nama untuk bucket.

1. Dalam daftar **Wilayah**, pilih wilayah target, lalu pilih **Buat**.

### Berikan izin ke bucket dan akun Amazon S3 AWS
<a name="tutorials-wordpress-upload-application-create-s3-bucket-grant-permissions"></a>

Anda harus memiliki izin untuk mengunggah ke bucket Amazon S3. Anda dapat menentukan izin ini melalui kebijakan bucket Amazon S3. Misalnya, dalam kebijakan bucket Amazon S3 berikut, menggunakan karakter wildcard (\$1) memungkinkan AWS akun `111122223333` untuk mengunggah file ke direktori apa pun di bucket Amazon S3 bernama: `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "111122223333"
                ]
            }
        }
    ]
}
```

Untuk melihat ID AWS akun, lihat [Menemukan ID AWS akun Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

Sekarang adalah saat yang tepat untuk memverifikasi bucket Amazon S3 akan memungkinkan permintaan unduhan dari setiap instans Amazon EC2 yang berpartisipasi. Anda dapat menentukan ini melalui kebijakan bucket Amazon S3. Misalnya, dalam kebijakan bucket Amazon S3 berikut, menggunakan karakter wildcard (\$1) memungkinkan instans Amazon EC2 dengan profil instans IAM terlampir yang berisi ARN `arn:aws:iam::444455556666:role/CodeDeployDemo` untuk mengunduh file dari direktori apa pun di bucket Amazon S3 bernama: `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::444455556666:role/CodeDeployDemo"
                ]
            }
        }
    ]
}
```

 Untuk informasi tentang cara membuat dan melampirkan kebijakan bucket Amazon S3, lihat contoh [kebijakan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

Untuk informasi tentang cara membuat dan melampirkan kebijakan IAM, lihat [Bekerja dengan kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html#AddingPermissions_Console).

## Siapkan file aplikasi untuk ember
<a name="tutorials-wordpress-upload-application-prepare-application-files"></a>

Pastikan file WordPress aplikasi, AppSpec file, dan skrip diatur pada mesin pengembangan Anda mirip dengan yang berikut ini:

```
/tmp/
  |--WordPress/
      |-- appspec.yml  
      |-- scripts/
      |    |-- change_permissions.sh
      |    |-- create_test_db.sh
      |    |-- install_dependencies.sh
      |    |-- start_server.sh
      |    |-- stop_server.sh
      |-- wp-admin/
      |    |-- (various files...)
      |-- wp-content/
      |    |-- (various files...)
      |-- wp-includes/
      |    |-- (various files...)
      |-- index.php
      |-- license.txt
      |-- readme.html
      |-- (various files ending with .php...)
```

## Bundel file aplikasi ke dalam satu file arsip dan dorong file arsip
<a name="tutorials-wordpress-upload-application-bundle-and-push-archive"></a>

Bundel file WordPress aplikasi dan AppSpec file ke dalam file arsip (dikenal sebagai *revisi* aplikasi).

**catatan**  
Anda mungkin dikenakan biaya untuk menyimpan objek dalam ember dan untuk mentransfer revisi aplikasi ke dalam dan keluar dari ember. Untuk informasi selengkapnya, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/). 

1. Pada mesin pengembangan, beralih ke folder tempat file disimpan: 

   ```
   cd /tmp/WordPress
   ```
**catatan**  
Jika Anda tidak beralih ke folder ini, maka bundling file akan dimulai di folder Anda saat ini. Misalnya, jika folder Anda saat ini `/tmp` bukan`/tmp/WordPress`, maka bundling akan dimulai dengan file dan subfolder di `tmp` folder, yang mungkin mencakup lebih dari subfolder`WordPress`.

1. Panggil **create-application** perintah untuk mendaftarkan aplikasi baru bernama**WordPress\$1App**:

   ```
   aws deploy create-application --application-name WordPress_App
   ```

1. Panggil perintah CodeDeploy [push](https://docs.aws.amazon.com/cli/latest/reference/deploy/push.html) untuk menggabungkan file bersama-sama, mengunggah revisi ke Amazon S3, dan mendaftarkan informasi tentang revisi CodeDeploy yang diunggah, semuanya dalam satu tindakan. 

   ```
   aws deploy push \
     --application-name WordPress_App \
     --s3-location s3://amzn-s3-demo-bucket/WordPressApp.zip \
     --ignore-hidden-files
   ```

   Perintah ini menggabungkan file dari direktori saat ini (tidak termasuk file tersembunyi) ke dalam satu file arsip bernama**WordPressApp.zip**, mengunggah revisi ke **amzn-s3-demo-bucket** bucket, dan mendaftarkan informasi tentang revisi yang CodeDeploy diunggah.

# Langkah 4: Menyebarkan aplikasi Anda WordPress
<a name="tutorials-wordpress-deploy-application"></a>

Sekarang Anda menerapkan contoh revisi WordPress aplikasi yang Anda unggah ke Amazon S3. Anda dapat menggunakan AWS CLI atau CodeDeploy konsol untuk menerapkan revisi dan memantau kemajuan penerapan. Setelah revisi aplikasi berhasil digunakan, Anda memeriksa hasilnya.

**Topics**
+ [Terapkan revisi aplikasi Anda dengan CodeDeploy](#tutorials-wordpress-deploy-application-create-deployment)
+ [Pantau dan pecahkan masalah penerapan Anda](#tutorials-wordpress-deploy-application-monitor)
+ [Verifikasi penerapan Anda](#tutorials-wordpress-deploy-application-verify-deployment)

## Terapkan revisi aplikasi Anda dengan CodeDeploy
<a name="tutorials-wordpress-deploy-application-create-deployment"></a>

Gunakan AWS CLI atau konsol untuk menerapkan revisi aplikasi Anda.

**Topics**
+ [Untuk menerapkan revisi aplikasi Anda (CLI)](#tutorials-wordpress-deploy-application-create-deployment-cli)
+ [Untuk menerapkan revisi aplikasi Anda (konsol)](#tutorials-wordpress-deploy-application-create-deployment-console)

### Untuk menerapkan revisi aplikasi Anda (CLI)
<a name="tutorials-wordpress-deploy-application-create-deployment-cli"></a>

1. Penyebaran membutuhkan grup penyebaran. Namun, sebelum Anda membuat grup penyebaran, Anda memerlukan peran layanan ARN. Peran layanan adalah peran IAM yang memberikan izin layanan untuk bertindak atas nama Anda. Dalam hal ini, peran layanan memberikan CodeDeploy izin untuk mengakses instans Amazon EC2 Anda untuk memperluas (membaca) tag instans Amazon EC2 mereka.

   Anda seharusnya sudah mengikuti instruksi [Buat peran layanan (CLI)](getting-started-create-service-role.md#getting-started-create-service-role-cli) untuk membuat peran layanan. Untuk mendapatkan ARN dari peran layanan, lihat. [Dapatkan peran layanan ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)

1. Sekarang setelah Anda memiliki peran layanan ARN, panggil **create-deployment-group** perintah untuk membuat grup penyebaran bernama**WordPress\$1DepGroup**, terkait dengan aplikasi bernama**WordPress\$1App**, menggunakan tag Amazon EC2 bernama dan konfigurasi penerapan bernama**CodeDeployDemo**: **CodeDeployDefault.OneAtATime**

   ```
   aws deploy create-deployment-group \
     --application-name WordPress_App \
     --deployment-group-name WordPress_DepGroup \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \
     --service-role-arn serviceRoleARN
   ```

   
**catatan**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)Perintah ini menyediakan dukungan untuk membuat pemicu yang menghasilkan pengiriman notifikasi Amazon SNS ke pelanggan topik tentang peristiwa tertentu dalam penerapan dan instance. Perintah ini juga mendukung opsi untuk memutar kembali penerapan secara otomatis dan mengatur alarm untuk menghentikan penerapan saat memantau ambang batas di alarm Amazon terpenuhi. CloudWatch Perintah untuk tindakan ini tidak termasuk dalam tutorial ini.

1. Sebelum Anda membuat penerapan, instance dalam grup penyebaran Anda harus memiliki agen yang diinstal. CodeDeploy Anda dapat menginstal agen dari baris perintah AWS Systems Manager dengan perintah berikut:

   ```
   aws ssm create-association \
     --name AWS-ConfigureAWSPackage \
     --targets Key=tag:Name,Values=CodeDeployDemo \
     --parameters action=Install,name=AWSCodeDeployAgent \
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

   Perintah ini menciptakan asosiasi di Systems Manager State Manager yang akan menginstal CodeDeploy agen dan kemudian mencoba memperbaruinya pada pukul 2:00 setiap Minggu pagi. Untuk informasi lebih lanjut tentang CodeDeploy agen, lihat [Bekerja dengan CodeDeploy agen](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html). Untuk informasi selengkapnya tentang Systems Manager, lihat [Apa itu AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html).

1. Sekarang panggil **create-deployment** perintah untuk membuat deployment yang terkait dengan aplikasi bernama**WordPress\$1App**, konfigurasi deployment bernama**CodeDeployDefault.OneAtATime**, dan grup deployment bernama**WordPress\$1DepGroup**, menggunakan revisi aplikasi yang dinamai **WordPressApp.zip** dalam bucket bernama: **amzn-s3-demo-bucket**

   ```
   aws deploy create-deployment \
     --application-name WordPress_App \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name WordPress_DepGroup \
     --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=WordPressApp.zip
   ```

### Untuk menerapkan revisi aplikasi Anda (konsol)
<a name="tutorials-wordpress-deploy-application-create-deployment-console"></a>

1. Sebelum Anda menggunakan CodeDeploy konsol untuk menyebarkan revisi aplikasi Anda, Anda memerlukan peran layanan ARN. Peran layanan adalah peran IAM yang memberikan izin layanan untuk bertindak atas nama Anda. Dalam hal ini, peran layanan memberikan CodeDeploy izin untuk mengakses instans Amazon EC2 Anda untuk memperluas (membaca) tag instans Amazon EC2 mereka.

   Anda seharusnya sudah mengikuti instruksi [Buat peran layanan (konsol)](getting-started-create-service-role.md#getting-started-create-service-role-console) untuk membuat peran layanan. Untuk mendapatkan ARN dari peran layanan, lihat. [Dapatkan peran layanan ARN (konsol)](getting-started-create-service-role.md#getting-started-get-service-role-console)

1. Sekarang setelah Anda memiliki ARN, gunakan CodeDeploy konsol untuk menyebarkan revisi aplikasi Anda:

   Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

1. Dalam daftar aplikasi, pilih **WordPress\$1App**.

1. Pada tab **Deployment groups**, pilih **Create deployment** group.

1. Dalam **nama grup Deployment**, masukkan**WordPress\$1DepGroup**.

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

1. Dalam **konfigurasi Lingkungan**, pilih **instans Amazon EC2**.

1. Dalam **konfigurasi Agen dengan AWS Systems Manager**, pertahankan defaultnya.

1. Di **Key**, masukkan**Name**.

1. Dalam **Value** (Nilai), masukkan **CodeDeployDemo**.
**catatan**  
Setelah Anda mengetik**CodeDeployDemo**, **1** akan muncul di bawah **Instans pencocokan untuk mengonfirmasi CodeDeploy ditemukan satu instans** Amazon EC2 yang cocok.

1. **Dalam **konfigurasi Deployment**, pilihCodeDeployDefault. OneAtATime**.

1. **Di **ARN peran Layanan, pilih ARN** peran layanan, lalu pilih Buat grup penyebaran.**

1. Pilih **Buat penerapan**.

1. Di **grup Deployment** pilih**WordPress\$1DepGroup**.

1. Di samping **jenis Repositori**, pilih **Aplikasi saya disimpan di Amazon S3**. Di **lokasi Revisi**, masukkan lokasi contoh revisi WordPress aplikasi yang sebelumnya Anda unggah ke Amazon S3. Untuk mendapatkan lokasi:

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

   1. Dalam daftar bucket, pilih **amzn-s3-demo-bucket (atau nama bucket** tempat Anda mengunggah revisi aplikasi). 

   1. Dalam daftar objek, **WordPressApppilih.zip.**

   1. Pada tab **Ikhtisar**, salin nilai bidang **Tautan** ke clipboard Anda.

      Mungkin terlihat seperti ini:

      **https://s3.amazonaws.com/amzn-s3-demo-bucket/WordPressApp.zip**

   1. Kembali ke CodeDeploy konsol, dan di **lokasi Revisi**, tempel nilai bidang **Tautan**.

1. Jika pesan muncul di daftar **Jenis file** yang menyatakan jenis file tidak dapat dideteksi, **pilih.zip.**

1. (Opsional) Ketik komentar di kotak **Deskripsi Deployment**. 

1. **Perluas **penggantian grup Deployment**, dan dari konfigurasi **Deployment**, pilih. CodeDeployDefault OneAtATime**.

1. Pilih **Mulai penerapan**. Informasi tentang penerapan yang baru dibuat muncul di halaman **Deployment**.

## Pantau dan pecahkan masalah penerapan Anda
<a name="tutorials-wordpress-deploy-application-monitor"></a>

Gunakan AWS CLI atau konsol untuk memantau dan memecahkan masalah penyebaran Anda.

**Topics**
+ [Untuk memantau dan memecahkan masalah penerapan Anda (CLI)](#tutorials-wordpress-deploy-application-monitor-cli)
+ [Untuk memantau dan memecahkan masalah penerapan Anda (konsol)](#tutorials-wordpress-deploy-application-monitor-console)

### Untuk memantau dan memecahkan masalah penerapan Anda (CLI)
<a name="tutorials-wordpress-deploy-application-monitor-cli"></a>

1. Dapatkan ID penerapan dengan memanggil **list-deployments** perintah terhadap aplikasi bernama **WordPress\$1App** dan grup penyebaran bernama: **WordPress\$1DepGroup**

   ```
   aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query 'deployments' --output text
   ```

1. Panggil **get-deployment** perintah dengan ID penyebaran:

   ```
   aws deploy get-deployment --deployment-id deploymentID --query 'deploymentInfo.status' --output text
   ```

1. Perintah mengembalikan status keseluruhan penerapan. Jika berhasil, nilainya`Succeeded`.

   Jika status keseluruhannya`Failed`, Anda dapat memanggil perintah seperti [list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html)dan [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)untuk memecahkan masalah. Untuk opsi pemecahan masalah lainnya, lihat. [Menganalisis file log untuk menyelidiki kegagalan penerapan pada instance](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)

### Untuk memantau dan memecahkan masalah penerapan Anda (konsol)
<a name="tutorials-wordpress-deploy-application-monitor-console"></a>

**Pada halaman **Deployment** di CodeDeploy konsol, Anda dapat memantau status penerapan di kolom Status.**

Untuk mendapatkan informasi selengkapnya tentang penerapan Anda, terutama jika nilai kolom **Status** memiliki nilai selain **Berhasil**:

1. Dalam tabel **Deployment**, pilih nama penyebaran. Setelah penerapan gagal, pesan yang menjelaskan alasan kegagalan ditampilkan.

1. Dalam **aktivitas Instance**, informasi lebih lanjut tentang penerapan ditampilkan. Setelah penerapan gagal, Anda mungkin dapat menentukan instans Amazon EC2 mana dan pada langkah mana penerapan gagal.

1. Jika Anda ingin melakukan lebih banyak pemecahan masalah, Anda dapat menggunakan teknik seperti yang dijelaskan di. [Lihat detail contoh dengan CodeDeploy](instances-view-details.md) Anda juga dapat menganalisis file log penyebaran pada instans Amazon EC2. Untuk informasi selengkapnya, lihat [Menganalisis file log untuk menyelidiki kegagalan penerapan pada instance](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures).

## Verifikasi penerapan Anda
<a name="tutorials-wordpress-deploy-application-verify-deployment"></a>

Setelah penerapan Anda berhasil, verifikasi WordPress penginstalan Anda berfungsi. Gunakan alamat DNS publik instans Amazon EC2, diikuti `/WordPress` oleh, untuk melihat situs Anda di browser web. ****(Untuk mendapatkan nilai DNS publik, di konsol Amazon EC2, pilih instans Amazon EC2, dan pada tab Deskripsi, cari nilai DNS Publik.)****

Misalnya, jika alamat DNS publik instans **ec2-01-234-567-890.compute-1.amazonaws.com** Amazon EC2 Anda, Anda akan menggunakan URL berikut:

```
http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress
```

Ketika Anda melihat situs di browser Anda, Anda akan melihat halaman WordPress selamat datang yang terlihat mirip dengan berikut ini:

![\[WordPress halaman selamat datang\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/WordPress-Welcome-Page-013118.png)


 Jika instans Amazon EC2 Anda tidak memiliki aturan masuk HTTP yang ditambahkan ke grup keamanannya, maka halaman WordPress selamat datang tidak akan muncul. Jika Anda melihat pesan yang mengatakan server jarak jauh tidak merespons, pastikan grup keamanan untuk instans Amazon EC2 Anda memiliki aturan masuk. Lihat informasi yang lebih lengkap di [Tambahkan aturan masuk yang memungkinkan lalu lintas HTTP ke instans Amazon Linux atau RHEL Amazon EC2 AndaTambahkan aturan masuk yang memungkinkan lalu lintas HTTP ke instans Amazon EC2 Windows Server Anda](tutorials-wordpress-launch-instance.md#tutorials-wordpress-launch-instance-add-inbound-rule). 

# Langkah 5: Perbarui dan terapkan ulang aplikasi Anda WordPress
<a name="tutorials-wordpress-update-and-redeploy-application"></a>

Sekarang setelah Anda berhasil menerapkan revisi aplikasi Anda, perbarui WordPress kode pada mesin pengembangan, dan kemudian gunakan CodeDeploy untuk menerapkan ulang situs. Setelah itu, Anda akan melihat perubahan kode pada instans Amazon EC2.

**Topics**
+ [Siapkan WordPress situs](#tutorials-wordpress-update-and-redeploy-application-configure-and-install)
+ [Memodifikasi situs](#tutorials-wordpress-update-and-redeploy-application-modify-code)
+ [Menerapkan ulang situs](#tutorials-wordpress-update-and-redeploy-application-deploy-updates)

## Siapkan WordPress situs
<a name="tutorials-wordpress-update-and-redeploy-application-configure-and-install"></a>

Untuk melihat efek perubahan kode, selesaikan pengaturan WordPress situs sehingga Anda memiliki instalasi yang berfungsi penuh.

1. Ketik URL situs Anda ke browser web Anda. URL adalah alamat DNS publik dari instans Amazon EC2 ditambah `/WordPress` ekstensi. Untuk WordPress situs contoh ini (dan contoh alamat DNS publik instans Amazon EC2), URL-nya adalah. **http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress**

1. Jika Anda belum menyiapkan situs, halaman selamat datang WordPress default akan muncul. Pilih **Ayo pergi\$1** .

1. Untuk menggunakan database MySQL default, pada halaman konfigurasi database, ketikkan nilai berikut:
   + **Nama Database**: **test**
   + **Nama pengguna**: **root**
   + **Kata sandi**: Biarkan kosong.
   + **Host Database**: **localhost**
   + **Awalan Tabel**: **wp\$1**

   Pilih **Kirim** untuk mengatur database.

1. Lanjutkan pengaturan situs. Pada halaman **Selamat Datang**, isi nilai apa pun yang Anda inginkan, dan pilih **Instal WordPress**. Setelah instalasi selesai, Anda dapat masuk ke dasbor Anda.

**penting**  
 Selama penyebaran WordPress aplikasi, **change\$1permissions.sh** skrip memperbarui izin `/tmp/WordPress` folder sehingga siapa pun dapat menulis ke sana. Sekarang adalah saat yang tepat untuk menjalankan perintah berikut untuk membatasi izin sehingga hanya Anda, pemilik, yang dapat menulis kepadanya:  

```
chmod -R 755 /var/www/html/WordPress
```

## Memodifikasi situs
<a name="tutorials-wordpress-update-and-redeploy-application-modify-code"></a>

Untuk memodifikasi WordPress situs, buka folder aplikasi di mesin pengembangan Anda:

```
cd /tmp/WordPress
```

Untuk memodifikasi beberapa warna situs, dalam `wp-content/themes/twentyfifteen/style.css` file, gunakan editor teks atau **sed** `#fff` untuk mengubahnya`#768331`. 

Di Linux atau sistem lain dengan GNU**sed**, gunakan:

```
sed -i 's/#fff/#768331/g' wp-content/themes/twentyfifteen/style.css
```

Di macOS, Unix, atau sistem lain dengan **sed** BSD, gunakan:

```
sed -i '' 's/#fff/#768331/g' wp-content/themes/twentyfifteen/style.css
```

## Menerapkan ulang situs
<a name="tutorials-wordpress-update-and-redeploy-application-deploy-updates"></a>

Sekarang setelah Anda memodifikasi kode situs, gunakan Amazon S3 dan CodeDeploy untuk menyebarkan kembali situs.

Bundel dan unggah perubahan ke Amazon S3, seperti yang dijelaskan dalam. [Bundel file aplikasi ke dalam satu file arsip dan dorong file arsip](tutorials-wordpress-upload-application.md#tutorials-wordpress-upload-application-bundle-and-push-archive) (Saat Anda mengikuti instruksi tersebut, ingatlah bahwa Anda tidak perlu membuat aplikasi.) Berikan revisi baru kunci yang sama seperti before (**WordPressApp.zip**). Unggah ke bucket Amazon S3 yang sama yang Anda buat sebelumnya (misalnya,**amzn-s3-demo-bucket**).

Gunakan AWS CLI, CodeDeploy konsol, atau CodeDeploy APIs untuk menyebarkan kembali situs.

**Topics**
+ [Untuk menyebarkan kembali situs (CLI)](#tutorials-wordpress-update-and-redeploy-application-deploy-updates-cli)
+ [Untuk menyebarkan kembali situs (konsol)](#tutorials-wordpress-update-and-redeploy-application-deploy-updates-console)

### Untuk menyebarkan kembali situs (CLI)
<a name="tutorials-wordpress-update-and-redeploy-application-deploy-updates-cli"></a>

Panggil **create-deployment** perintah untuk membuat penerapan berdasarkan revisi yang baru diunggah. Gunakan aplikasi bernama**WordPress\$1App**, konfigurasi penerapan bernama**CodeDeployDefault.OneAtATime**, grup penyebaran bernama**WordPress\$1DepGroup**, dan revisi yang disebutkan **WordPressApp.zip** dalam bucket bernama: **amzn-s3-demo-bucket**

```
 aws deploy create-deployment \
  --application-name WordPress_App \
  --deployment-config-name CodeDeployDefault.OneAtATime \
  --deployment-group-name WordPress_DepGroup \  
  --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=WordPressApp.zip
```

Anda dapat memeriksa status penerapan, seperti yang dijelaskan dalam[Pantau dan pecahkan masalah penerapan Anda](tutorials-wordpress-deploy-application.md#tutorials-wordpress-deploy-application-monitor).

 CodeDeploy Setelah menempatkan kembali situs, kunjungi kembali situs di browser web Anda untuk memverifikasi warna telah diubah. (Anda mungkin perlu menyegarkan browser Anda.) Jika warnanya telah diubah, selamat\$1 Anda telah berhasil memodifikasi dan memindahkan situs Anda\$1

### Untuk menyebarkan kembali situs (konsol)
<a name="tutorials-wordpress-update-and-redeploy-application-deploy-updates-console"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

1. Dalam daftar aplikasi, pilih **WordPress\$1App**.

1. Pada tab **Grup Deployment**, pilih**WordPress\$1DepGroup**.

1. Pilih **Buat penerapan**. 

1. Pada halaman **Create deployment**:

   1. Di **grup Deployment**, pilih**WordPress\$1DepGroup**.

   1. **Di area **tipe Repositori**, pilih **Aplikasi saya disimpan di Amazon S3, lalu salin tautan Amazon** S3 revisi Anda ke kotak lokasi Revisi.** Untuk menemukan nilai tautan: 

      1. Di tab browser terpisah:

         Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

          Jelajahi dan buka **amzn-s3-demo-bucket**, lalu pilih revisi Anda,. **WordPressApp.zip** 

      1.  Jika panel **Properties** tidak terlihat di konsol Amazon S3, pilih tombol **Properties**. 

      1.  Di panel **Properti**, salin nilai bidang **Tautan** ke kotak **Lokasi revisi** di CodeDeploy konsol. 

   1. Jika muncul pesan yang mengatakan jenis file tidak dapat dideteksi, **pilih.zip.** 

   1. Biarkan kotak **deskripsi Deployment** kosong.

   1. **Perluas **penggantian grup Deployment** dan dari konfigurasi **Deployment**, pilih. CodeDeployDefault OneAtATime**.

   1. Pilih **Mulai penerapan**. Informasi tentang penerapan yang baru dibuat muncul di halaman **Deployment**.

   1. Anda dapat memeriksa status penerapan, seperti yang dijelaskan dalam[Pantau dan pecahkan masalah penerapan Anda](tutorials-wordpress-deploy-application.md#tutorials-wordpress-deploy-application-monitor).

       CodeDeploy Setelah menempatkan kembali situs, kunjungi kembali situs di browser web Anda untuk memverifikasi warna telah diubah. (Anda mungkin perlu menyegarkan browser Anda.) Jika warnanya telah diubah, selamat\$1 Anda telah berhasil memodifikasi dan memindahkan situs Anda\$1

# Langkah 6: Bersihkan WordPress aplikasi Anda dan sumber daya terkait
<a name="tutorials-wordpress-clean-up"></a>

Anda sekarang telah berhasil membuat pembaruan ke WordPress kode dan menerapkan kembali situs. Untuk menghindari biaya berkelanjutan untuk sumber daya yang Anda buat untuk tutorial ini, Anda harus menghapus:
+ Setiap CloudFormation tumpukan (atau menghentikan instans Amazon EC2, jika Anda membuatnya di luar). CloudFormation
+ Ember Amazon S3 apa pun.
+ `WordPress_App`Aplikasi di CodeDeploy.
+ Asosiasi Manajer AWS Systems Manager Negara untuk CodeDeploy agen.

Anda dapat menggunakan AWS CLI, Amazon S3 CloudFormation, Amazon EC2, CodeDeploy dan konsol, atau AWS APIs untuk melakukan pembersihan.

**Topics**
+ [Untuk membersihkan sumber daya (CLI)](#tutorials-wordpress-clean-up-cli)
+ [Untuk membersihkan sumber daya (konsol)](#tutorials-wordpress-clean-up-console)
+ [Apa selanjutnya?](#tutorials-wordpress-clean-up-whats-next)

## Untuk membersihkan sumber daya (CLI)
<a name="tutorials-wordpress-clean-up-cli"></a>

1. Jika Anda menggunakan CloudFormation template kami untuk tutorial ini, panggil **delete-stack** perintah terhadap tumpukan bernama**CodeDeployDemoStack**. Ini akan menghentikan semua instans Amazon EC2 yang menyertainya dan menghapus semua peran IAM yang menyertai tumpukan yang dibuat:

   ```
   aws cloudformation delete-stack --stack-name CodeDeployDemoStack
   ```

1. Untuk menghapus bucket Amazon S3, panggil **rm** perintah dengan **--recursive** sakelar terhadap bucket bernama. **amzn-s3-demo-bucket** Ini akan menghapus ember dan semua benda di ember:

   ```
   aws s3 rm s3://amzn-s3-demo-bucket --recursive --region region
   ```

1. Untuk menghapus `WordPress_App` aplikasi, panggil **delete-application** perintah. Ini juga akan menghapus semua catatan grup penyebaran terkait dan catatan penyebaran untuk aplikasi:

   ```
   aws deploy delete-application --application-name WordPress_App
   ```

1. Untuk menghapus asosiasi Manajer Negara Systems Manager, panggil **delete-association** perintah.

   ```
   aws ssm delete-association --assocation-id association-id
   ```

   Anda bisa mendapatkan *association-id* dengan memanggil **describe-association** perintah.

   ```
   aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo
   ```

Jika Anda tidak menggunakan CloudFormation tumpukan untuk tutorial ini, panggil **terminate-instances** perintah untuk menghentikan instans Amazon EC2 yang Anda buat secara manual. Berikan ID instans Amazon EC2 untuk mengakhiri:

```
aws ec2 terminate-instances --instance-ids instanceId
```

## Untuk membersihkan sumber daya (konsol)
<a name="tutorials-wordpress-clean-up-console"></a>

Jika Anda menggunakan CloudFormation template kami untuk tutorial ini, hapus CloudFormation tumpukan terkait.

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

1. Di kotak **Filter**, ketik nama CloudFormation tumpukan yang Anda buat sebelumnya (misalnya,**CodeDeployDemoStack**).

1. Pilih kotak di samping nama tumpukan. Di menu **Actions**, pilih **Delete Stack**.

   CloudFormation menghapus tumpukan, menghentikan semua instans Amazon EC2 yang menyertainya, dan menghapus semua peran IAM yang menyertainya.

Untuk menghentikan instans Amazon EC2 yang Anda buat di luar tumpukan: CloudFormation 

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. Dalam daftar **INSTANCES**, pilih **Instans**.

1. Di kotak pencarian, ketik nama instans Amazon EC2 yang ingin Anda akhiri (misalnya,**CodeDeployDemo**), lalu tekan Enter.

1. Pilih nama instans Amazon EC2.

1. Di menu **Actions**, arahkan ke **Instance State**, lalu pilih **Terminate.** Saat diminta, pilih **Ya, Hentikan**. 

Ulangi langkah-langkah ini untuk setiap contoh.

Untuk menghapus bucket Amazon 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. Dalam daftar bucket, telusuri dan pilih nama bucket Amazon S3 yang Anda buat sebelumnya (misalnya**amzn-s3-demo-bucket**,).

1. Sebelum Anda dapat menghapus ember, Anda harus terlebih dahulu menghapus isinya. Pilih semua file dalam ember, seperti**WordPressApp.zip**. Di menu **Tindakan**, pilih **Hapus**. **Ketika diminta untuk mengkonfirmasi penghapusan, pilih OK.** 

1. Setelah ember kosong, Anda dapat menghapus ember. Dalam daftar ember, pilih baris ember (tetapi bukan nama ember). Pilih **Hapus bucket**, dan ketika diminta untuk mengonfirmasi, pilih **OK**. 

Untuk menghapus `WordPress_App` aplikasi dari CodeDeploy:

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

1. Dalam daftar aplikasi, pilih **WordPress\$1App**.

1. Pada halaman **Detail aplikasi**, pilih **Hapus aplikasi**.

1. Saat diminta, masukkan nama aplikasi untuk mengonfirmasi bahwa Anda ingin menghapusnya, lalu pilih **Hapus**. 

Untuk menghapus asosiasi Manajer Negara Systems Manager:

1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com /systems-manager.

1. Di panel navigasi, pilih **State Manager**.

1. Pilih asosiasi yang Anda buat dan pilih **Hapus**.

## Apa selanjutnya?
<a name="tutorials-wordpress-clean-up-whats-next"></a>

Jika Anda sudah tiba di sini, selamat\$1 Anda telah berhasil menyelesaikan CodeDeploy penerapan, dan kemudian memperbarui kode situs Anda dan menerapkannya kembali. 

# Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)
<a name="tutorials-windows"></a>

Dalam tutorial ini, Anda menyebarkan satu halaman web ke satu instans Windows Server Amazon EC2 yang menjalankan Internet Information Services (IIS) sebagai server webnya. Halaman web ini menampilkan “Halo, Dunia\$1” sederhana pesan.

Bukan apa yang Anda cari?
+ Untuk mempraktikkan penerapan ke instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux (RHEL) Amazon EC2, lihat. [Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)](tutorials-wordpress.md)
+ Untuk mempraktikkan penerapan ke instans lokal, lihat. [Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)](tutorials-on-premises-instance.md)

Langkah-langkah tutorial ini disajikan dari perspektif Windows. Meskipun Anda dapat menyelesaikan sebagian besar langkah-langkah ini pada mesin lokal yang menjalankan Linux, macOS, atau Unix, Anda harus menyesuaikan langkah-langkah yang mencakup jalur direktori berbasis Windows seperti. `c:\temp` Selain itu, jika Anda ingin terhubung ke instans Amazon EC2, Anda memerlukan aplikasi klien yang dapat terhubung melalui Remote Desktop Protocol (RDP) ke instans Amazon EC2 yang menjalankan Windows Server. (Windows menyertakan aplikasi klien koneksi RDP secara default.)

Sebelum Anda memulai tutorial ini, Anda harus menyelesaikan prasyarat[Memulai dengan CodeDeploy](getting-started-codedeploy.md), termasuk mengonfigurasi pengguna Anda, menginstal atau meningkatkan AWS CLI, dan membuat profil instans IAM dan peran layanan.

**Topics**
+ [Langkah 1: Luncurkan instans Windows Server Amazon EC2](tutorials-windows-launch-instance.md)
+ [Langkah 2: Konfigurasikan konten sumber Anda untuk menyebarkan ke instans Windows Server Amazon EC2](tutorials-windows-configure-content.md)
+ [Langkah 3: Unggah “halo, dunia\$1” aplikasi ke Amazon S3](tutorials-windows-upload-application.md)
+ [Langkah 4: Menyebarkan aplikasi Hello World Anda](tutorials-windows-deploy-application.md)
+ [Langkah 5: Perbarui dan gunakan kembali “halo, dunia\$1” application](tutorials-windows-update-and-redeploy-application.md)
+ [Langkah 6: Bersihkan “halo, dunia\$1” aplikasi dan sumber daya terkait](tutorials-windows-clean-up.md)

# Langkah 1: Luncurkan instans Windows Server Amazon EC2
<a name="tutorials-windows-launch-instance"></a>

Untuk menggunakan aplikasi Hello World CodeDeploy, Anda memerlukan instans Amazon EC2 yang menjalankan Windows Server.

Ikuti petunjuk dalam [Buat instans Amazon EC2 untuk CodeDeploy](instances-ec2-create.md). Saat Anda siap menetapkan tag instans Amazon EC2 ke instance, pastikan untuk menentukan kunci tag dan **Name** nilai tag. **CodeDeployDemo** (Jika Anda menentukan kunci tag atau nilai tag yang berbeda, maka instruksi di [Langkah 4: Menyebarkan aplikasi Hello World Anda](tutorials-windows-deploy-application.md) mungkin menghasilkan hasil yang tidak terduga.)

Setelah meluncurkan instans Amazon EC2, kembali ke halaman ini, dan lanjutkan ke bagian berikutnya. Jangan melanjutkan ke [Buat aplikasi dengan CodeDeploy](applications-create.md) langkah berikutnya.

## Connect ke instans Amazon EC2 Anda
<a name="tutorials-windows-launch-instance-connect"></a>

Setelah instans Amazon EC2 diluncurkan, ikuti petunjuk ini untuk berlatih menghubungkannya. 

**catatan**  
Dalam petunjuk ini, kami menganggap Anda menjalankan Windows dan aplikasi klien Koneksi Desktop Windows. Untuk selengkapnya, lihat [Menyambungkan ke instans Windows menggunakan RDP](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html). Anda mungkin perlu menyesuaikan instruksi ini untuk sistem operasi lain atau aplikasi klien koneksi RDP lainnya.

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, di **Instans**, pilih **Instans**. 

1. Jelajahi dan pilih instance Windows Server Anda dalam daftar.

1. Pilih **Hubungkan**.

1. Pilih **Dapatkan Kata Sandi**, lalu pilih **Pilih File**.

1. **Jelajahi dan pilih file key pair instans Amazon EC2 yang terkait dengan instans Windows Server Amazon EC2, lalu pilih Buka.**

1. Pilih **Dekripsi Kata Sandi**. Catat kata sandi yang ditampilkan. Anda membutuhkannya di langkah 10.

1. Pilih **Unduh File Desktop Jarak Jauh**, lalu buka file tersebut.

1. Jika Anda diminta untuk terhubung meskipun penerbit koneksi jarak jauh tidak dapat diidentifikasi, lanjutkan.

1. Ketik kata sandi yang Anda catat di langkah 7, lalu lanjutkan. (Jika aplikasi klien koneksi RDP Anda meminta Anda untuk nama pengguna, ketik.) **Administrator**

1. Jika Anda diminta untuk terhubung meskipun identitas komputer jarak jauh tidak dapat diverifikasi, lanjutkan. 

1. Setelah Anda terhubung, desktop instans Amazon EC2 yang menjalankan Windows Server ditampilkan.

1. Anda sekarang dapat memutuskan sambungan dari instans Amazon EC2.
**Awas**  
Jangan menghentikan atau menghentikan instance. Jika tidak, tidak CodeDeploy dapat menerapkannya.

## Tambahkan aturan masuk yang memungkinkan lalu lintas HTTP ke instans Amazon EC2 Windows Server Anda
<a name="tutorials-windows-launch-instance-add-inbound-rule"></a>

Langkah selanjutnya mengonfirmasi instans Amazon EC2 Anda memiliki port HTTP terbuka sehingga Anda dapat melihat halaman web yang digunakan pada instans Amazon EC2 Windows Server Anda di browser. 

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. Pilih **Instans**, lalu pilih instans Anda. 

1. Pada tab **Deskripsi**, di bawah **Grup keamanan**, pilih **lihat aturan masuk**. 

   Anda akan melihat daftar aturan di grup keamanan Anda seperti berikut:

   ```
   Security Groups associated with i-1234567890abcdef0
    Ports     Protocol     Source     launch-wizard-N
    22        tcp          0.0.0.0/0          ✔
   ```

1.  Di bawah **Grup keamanan**, pilih grup keamanan untuk instans Amazon EC2 Anda. Itu bisa diberi nama**launch-wizard-*N***. ***N***Dalam nama adalah nomor yang ditetapkan ke grup keamanan Anda saat instance Anda dibuat. 

    Pilih tab **Masuk**. Jika grup keamanan untuk instans Anda dikonfigurasi dengan benar, Anda akan melihat aturan dengan nilai-nilai berikut: 
   + **Jenis**: HTTP
   + **Protokol**: TCP
   + **Rentang Port**: 80
   + **Sumber**: 0.0.0.0/0

1.  Jika Anda tidak melihat aturan dengan nilai-nilai ini, gunakan prosedur dalam [Menambahkan Aturan ke Grup Keamanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) untuk menambahkannya ke aturan keamanan baru. 

# Langkah 2: Konfigurasikan konten sumber Anda untuk menyebarkan ke instans Windows Server Amazon EC2
<a name="tutorials-windows-configure-content"></a>

Sekarang saatnya untuk mengonfigurasi konten sumber aplikasi Anda sehingga Anda memiliki sesuatu yang dapat Anda terapkan ke instans Amazon EC2. Untuk tutorial ini, Anda akan menyebarkan satu halaman web ke instans Amazon EC2 yang menjalankan Windows Server, yang akan menjalankan Internet Information Services (IIS) sebagai server webnya. Halaman web ini akan menampilkan “Halo, Dunia\$1” sederhana pesan.

**Topics**
+ [Buat halaman web](#tutorials-windows-configure-content-download-code)
+ [Buat skrip untuk menjalankan aplikasi Anda](#tutorials-windows-configure-content-create-scripts)
+ [Tambahkan file spesifikasi aplikasi](#tutorials-windows-configure-content-add-appspec-file)

## Buat halaman web
<a name="tutorials-windows-configure-content-download-code"></a>

1. Buat subdirektori (subfolder) bernama `HelloWorldApp` di `c:\temp` folder Anda, dan kemudian beralih ke folder itu.

   ```
   mkdir c:\temp\HelloWorldApp
   cd c:\temp\HelloWorldApp
   ```
**catatan**  
Anda tidak harus menggunakan lokasi `c:\temp` atau nama subfolder. `HelloWorldApp` Jika Anda menggunakan lokasi atau nama subfolder yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.

1. Gunakan editor teks untuk membuat file di dalam folder. Beri nama file`index.html`.

   ```
   notepad index.html
   ```

1. Tambahkan kode HTML berikut ke file, lalu simpan file tersebut.

   ```
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
   <html>
   <head>
     <title>Hello, World!</title>
     <style>
       body {
         color: #ffffff;
         background-color: #0188cc;
         font-family: Arial, sans-serif;  
         font-size:14px;
       }
     </style>
   </head>
   <body>
     <div align="center"><h1>Hello, World!</h1></div>
     <div align="center"><h2>You have successfully deployed an application using CodeDeploy</h2></div>
     <div align="center">
       <p>What to do next? Take a look through the <a href="https://aws.amazon.com/codedeploy">CodeDeploy Documentation</a>.</p>
     </div>
   </body>
   </html>
   ```

## Buat skrip untuk menjalankan aplikasi Anda
<a name="tutorials-windows-configure-content-create-scripts"></a>

Selanjutnya, Anda akan membuat skrip yang CodeDeploy akan digunakan untuk mengatur server web pada instans Amazon EC2 target.

1. Di subfolder yang sama tempat `index.html` file disimpan, gunakan editor teks untuk membuat file lain. Beri nama file`before-install.bat`.

   ```
   notepad before-install.bat
   ```

1. Tambahkan kode skrip batch berikut ke file, lalu simpan file.

   ```
   REM Install Internet Information Server (IIS).
   c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Import-Module -Name ServerManager
   c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Install-WindowsFeature Web-Server
   ```

## Tambahkan file spesifikasi aplikasi
<a name="tutorials-windows-configure-content-add-appspec-file"></a>

Selanjutnya, Anda akan menambahkan file spesifikasi aplikasi (AppSpec file) selain halaman web dan file skrip batch. AppSpec File tersebut adalah file berformat [YAMAL](http://www.yaml.org) yang digunakan oleh untuk: CodeDeploy 
+ Petakan file sumber dalam revisi aplikasi Anda ke tujuan mereka pada instance.
+ Tentukan skrip yang akan dijalankan pada instance selama penerapan.

 AppSpec File harus diberi nama`appspec.yml`. Itu harus ditempatkan di folder root kode sumber aplikasi.

1. Di subfolder yang sama tempat `before-install.bat` file `index.html` dan disimpan, gunakan editor teks untuk membuat file lain. Beri nama file`appspec.yml`.

   ```
   notepad appspec.yml
   ```

1. Tambahkan kode YAMAL berikut ke file, lalu simpan file tersebut.

   ```
   version: 0.0
   os: windows
   files:
     - source: \index.html
       destination: c:\inetpub\wwwroot
   hooks:
     BeforeInstall:
       - location: \before-install.bat
         timeout: 900
   ```

CodeDeploy akan menggunakan AppSpec file ini untuk menyalin `index.html` file di folder root kode sumber aplikasi ke `c:\inetpub\wwwroot` folder pada instans Amazon EC2 target. Selama penerapan, CodeDeploy akan menjalankan skrip `before-install.bat` batch pada instans Amazon EC2 target selama peristiwa siklus hidup **BeforeInstall** penerapan. Jika skrip ini membutuhkan waktu lebih dari 900 detik (15 menit) untuk dijalankan, CodeDeploy akan menghentikan penerapan dan menandai penerapan ke instans Amazon EC2 sebagai gagal.

Untuk informasi selengkapnya tentang pengaturan ini, lihat[CodeDeploy AppSpec referensi file](reference-appspec-file.md).

**penting**  
Lokasi dan jumlah spasi antara masing-masing item dalam file ini penting. Jika spasi salah, CodeDeploy akan memunculkan kesalahan yang mungkin sulit untuk di-debug. Lihat informasi yang lebih lengkap di [AppSpec Spasi file](reference-appspec-file.md#reference-appspec-file-spacing).

# Langkah 3: Unggah “halo, dunia\$1” aplikasi ke Amazon S3
<a name="tutorials-windows-upload-application"></a>

Sekarang Anda akan mempersiapkan dan mengunggah konten sumber Anda ke lokasi yang CodeDeploy dapat menyebarkannya. Petunjuk berikut menunjukkan cara menyediakan bucket Amazon S3, menyiapkan file revisi aplikasi untuk bucket, menggabungkan file revisi, lalu mendorong revisi ke bucket.

**catatan**  
Meskipun tidak tercakup dalam tutorial ini, Anda dapat menggunakan CodeDeploy untuk menyebarkan aplikasi dari GitHub repositori ke instance. Untuk informasi selengkapnya, lihat [Integrasi dengan CodeDeploy GitHub](integrations-partners-github.md).

**Topics**
+ [Menyediakan bucket Amazon S3](#tutorials-windows-upload-application-create-s3-bucket)
+ [Siapkan file aplikasi untuk ember](#tutorials-windows-upload-application-prepare-application-files)
+ [Bundel file aplikasi ke dalam satu file arsip dan dorong file arsip](#tutorials-windows-upload-application-bundle-and-push-archive)

## Menyediakan bucket Amazon S3
<a name="tutorials-windows-upload-application-create-s3-bucket"></a>

Buat wadah penyimpanan atau *bucket di* Amazon S3—atau gunakan bucket yang sudah ada. Pastikan Anda dapat mengunggah revisi ke bucket dan instans Amazon EC2 yang digunakan dalam penerapan dapat mengunduh revisi dari bucket.

Anda dapat menggunakan AWS CLI, konsol Amazon S3, atau Amazon S3 untuk membuat APIs bucket Amazon S3. Setelah Anda membuat bucket, pastikan untuk memberikan izin akses ke bucket dan CodeDeploy pengguna Anda.

**catatan**  
Nama bucket harus unik di Amazon S3 untuk semua AWS akun. Jika Anda tidak dapat menggunakannya**amzn-s3-demo-bucket**, coba nama bucket yang berbeda, seperti **amzn-s3-demo-bucket** diikuti dengan tanda hubung dan inisiasi Anda atau pengenal unik lainnya. Kemudian pastikan untuk mengganti nama bucket Anda dengan di **amzn-s3-demo-bucket** mana pun Anda melihatnya di seluruh tutorial ini.  
Bucket Amazon S3 harus dibuat di AWS wilayah yang sama tempat instans Amazon EC2 target Anda diluncurkan. Misalnya, jika Anda membuat bucket di Wilayah AS Timur (Virginia N.), maka instans Amazon EC2 target Anda harus diluncurkan di Wilayah AS Timur (Virginia Utara).

**Topics**
+ [Untuk membuat bucket Amazon S3 (CLI)](#tutorials-windows-upload-application-create-s3-bucket-cli)
+ [Untuk membuat bucket Amazon S3 (konsol)](#tutorials-windows-upload-application-create-s3-bucket-console)
+ [Berikan izin ke bucket Amazon S3 dan akun Anda AWS](#tutorials-windows-upload-application-create-s3-bucket-grant-permission)

### Untuk membuat bucket Amazon S3 (CLI)
<a name="tutorials-windows-upload-application-create-s3-bucket-cli"></a>

Panggil **mb** perintah untuk membuat bucket Amazon S3 bernama: **amzn-s3-demo-bucket**

```
aws s3 mb s3://amzn-s3-demo-bucket --region region
```

### Untuk membuat bucket Amazon S3 (konsol)
<a name="tutorials-windows-upload-application-create-s3-bucket-console"></a>

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

1. Di konsol Amazon S3, pilih **Buat** ember.

1. Di kotak **nama Bucket**, ketikkan nama untuk bucket.

1. Dalam daftar **Region**, pilih wilayah target, lalu pilih **Buat**.

### Berikan izin ke bucket Amazon S3 dan akun Anda AWS
<a name="tutorials-windows-upload-application-create-s3-bucket-grant-permission"></a>

Anda harus memiliki izin untuk mengunggah ke bucket Amazon S3. Anda dapat menentukan izin ini melalui kebijakan bucket Amazon S3. Misalnya, dalam kebijakan bucket Amazon S3 berikut, menggunakan karakter wildcard (\$1) memungkinkan AWS akun `111122223333` untuk mengunggah file ke direktori apa pun di bucket Amazon S3 bernama: `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "111122223333"
                ]
            }
        }
    ]
}
```

Untuk melihat ID AWS akun, lihat [Menemukan ID AWS akun Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

Sekarang adalah saat yang tepat untuk memverifikasi bucket Amazon S3 akan memungkinkan permintaan unduhan dari setiap instans Amazon EC2 yang berpartisipasi. Anda dapat menentukan ini melalui kebijakan bucket Amazon S3. Misalnya, dalam kebijakan bucket Amazon S3 berikut, menggunakan karakter wildcard (\$1) memungkinkan instans Amazon EC2 apa pun dengan profil instans IAM terlampir yang berisi ARN `arn:aws:iam::444455556666:role/CodeDeployDemo` untuk mengunduh file dari direktori mana pun di bucket Amazon S3 bernama: `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::444455556666:role/CodeDeployDemo"
                ]
            }
        }
    ]
}
```

Untuk informasi tentang cara membuat dan melampirkan kebijakan bucket Amazon S3, lihat contoh [kebijakan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

Pengguna CodeDeploy admin yang Anda buat juga [Langkah 1: Menyiapkan](getting-started-setting-up.md) harus memiliki izin untuk mengunggah revisi ke bucket Amazon S3. Salah satu cara untuk menentukan ini adalah melalui kebijakan IAM, yang Anda tambahkan ke set izin pengguna, atau ke peran IAM (yang Anda izinkan untuk diasumsikan oleh pengguna). Kebijakan IAM berikut memungkinkan pengguna untuk mengunggah revisi di mana saja di bucket Amazon S3 bernama: `amzn-s3-demo-bucket`

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

****  

```
{
  "Version":"2012-10-17",		 	 	   
  "Statement":[
    {
      "Effect":"Allow",
      "Action":["s3:PutObject"],
      "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
    }
  ]
}
```

------

Untuk informasi tentang cara membuat kebijakan IAM, lihat [Membuat kebijakan IAM di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) Pengguna *IAM*. Untuk informasi tentang menambahkan kebijakan ke set izin, lihat [Membuat set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html) di *Panduan AWS IAM Identity Center Pengguna*.

## Siapkan file aplikasi untuk ember
<a name="tutorials-windows-upload-application-prepare-application-files"></a>

Pastikan halaman web, AppSpec file, dan skrip diatur pada mesin pengembangan Anda seperti ini:

```
c:\
  |-- temp\
        |--HelloWorldApp\
             |-- appspec.yml
             |-- before-install.bat
             |-- index.html
```

## Bundel file aplikasi ke dalam satu file arsip dan dorong file arsip
<a name="tutorials-windows-upload-application-bundle-and-push-archive"></a>

Bundel file ke dalam file arsip (dikenal sebagai *revisi* aplikasi).

**catatan**  
Anda mungkin dikenakan biaya untuk menyimpan objek dalam ember dan untuk mentransfer revisi aplikasi ke dalam dan keluar dari ember. Untuk informasi selengkapnya, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/). 

1. Pada mesin pengembangan, beralih ke folder tempat file disimpan: 

   ```
   cd c:\temp\HelloWorldApp
   ```
**catatan**  
Jika Anda tidak beralih ke folder ini, maka bundling file akan dimulai di folder Anda saat ini. Misalnya, jika folder Anda saat ini `c:\temp` bukan`c:\temp\HelloWorldApp`, bundling akan dimulai dengan file dan subfolder di `c:\temp` folder, yang mungkin mencakup lebih dari subfolder`HelloWorldApp`.

1. Panggil **create-application** perintah untuk mendaftarkan aplikasi baru bernama **HelloWorld\$1App** dengan CodeDeploy:

   ```
   aws deploy create-application --application-name HelloWorld_App
   ```

1. Panggil perintah CodeDeploy [push](https://docs.aws.amazon.com/cli/latest/reference/deploy/push.html) untuk menggabungkan file bersama-sama, mengunggah revisi ke Amazon S3, dan mendaftarkan informasi tentang revisi CodeDeploy yang diunggah, semuanya dalam satu tindakan. 

   ```
   aws deploy push --application-name HelloWorld_App --s3-location s3://amzn-s3-demo-bucket/HelloWorld_App.zip --ignore-hidden-files
   ```

   Perintah ini menggabungkan file dari direktori saat ini (tidak termasuk file tersembunyi) ke dalam satu file arsip bernama`HelloWorld_App.zip`, mengunggah revisi ke **amzn-s3-demo-bucket** bucket, dan mendaftarkan informasi tentang revisi yang CodeDeploy diunggah.

# Langkah 4: Menyebarkan aplikasi Hello World Anda
<a name="tutorials-windows-deploy-application"></a>

Sekarang Anda menerapkan contoh revisi aplikasi Hello World yang Anda unggah ke Amazon S3. Anda menggunakan AWS CLI atau CodeDeploy konsol untuk menerapkan revisi dan memantau kemajuan penerapan. Setelah revisi aplikasi berhasil digunakan, Anda memeriksa hasilnya.

**Topics**
+ [Terapkan revisi aplikasi Anda dengan CodeDeploy](#tutorials-windows-deploy-application-create-deployment)
+ [Memantau dan memecahkan masalah penyebaran Anda](#tutorials-windows-deploy-application-monitor)
+ [Verifikasi penerapan Anda](#tutorials-windows-deploy-application-verify)

## Terapkan revisi aplikasi Anda dengan CodeDeploy
<a name="tutorials-windows-deploy-application-create-deployment"></a>

 Anda dapat menerapkan aplikasi Anda menggunakan CLI atau konsol. 

**Topics**
+ [Untuk menerapkan revisi aplikasi Anda (CLI)](#tutorials-windows-deploy-application-create-deployment-cli)
+ [Untuk menerapkan revisi aplikasi Anda (konsol)](#tutorials-windows-deploy-application-create-deployment-console)

### Untuk menerapkan revisi aplikasi Anda (CLI)
<a name="tutorials-windows-deploy-application-create-deployment-cli"></a>

1. Pertama, penyebaran membutuhkan grup penyebaran. Namun, sebelum Anda membuat grup penyebaran, Anda memerlukan peran layanan ARN. Peran layanan adalah peran IAM yang memberikan izin layanan untuk bertindak atas nama Anda. Dalam hal ini, peran layanan memberikan CodeDeploy izin untuk mengakses instans Amazon EC2 Anda untuk memperluas (membaca) tag instans Amazon EC2 mereka.

   Anda seharusnya sudah mengikuti instruksi [Buat peran layanan (CLI)](getting-started-create-service-role.md#getting-started-create-service-role-cli) untuk membuat peran layanan. Untuk mendapatkan ARN dari peran layanan, lihat. [Dapatkan peran layanan ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)

1. Sekarang setelah Anda memiliki ARN, panggil **create-deployment-group** perintah untuk membuat grup penyebaran bernama**HelloWorld\$1DepGroup**, terkait dengan aplikasi bernama**HelloWorld\$1App**, menggunakan tag instans Amazon EC2 bernama **CodeDeployDemo** dan konfigurasi penerapan bernama, **CodeDeployDefault.OneAtATime** dengan peran layanan ARN:

   ```
   aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN
   ```
**catatan**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)Perintah ini menyediakan dukungan untuk membuat pemicu yang menghasilkan pengiriman notifikasi Amazon SNS ke pelanggan topik tentang peristiwa tertentu dalam penerapan dan instance. Perintah ini juga mendukung opsi untuk memutar kembali penerapan secara otomatis dan mengatur alarm untuk menghentikan penerapan saat memantau ambang batas di alarm Amazon terpenuhi. CloudWatch Perintah untuk tindakan ini tidak termasuk dalam tutorial ini.

1. Sebelum Anda membuat penerapan, instance dalam grup penyebaran Anda harus memiliki agen yang diinstal. CodeDeploy Anda dapat menginstal agen dari baris perintah AWS Systems Manager dengan perintah berikut:

   ```
   aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install,name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)" 
   ```

   Perintah ini menciptakan asosiasi di Systems Manager State Manager yang akan menginstal CodeDeploy agen dan kemudian mencoba memperbaruinya pada pukul 2:00 setiap Minggu pagi. Untuk informasi lebih lanjut tentang CodeDeploy agen, lihat [Bekerja dengan CodeDeploy agen](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html). Untuk informasi selengkapnya tentang Systems Manager, lihat [Apa itu AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html).

1. Sekarang panggil **create-deployment** perintah untuk membuat deployment yang terkait dengan aplikasi bernama**HelloWorld\$1App**, konfigurasi deployment bernama**CodeDeployDefault.OneAtATime**, dan grup deployment bernama**HelloWorld\$1DepGroup**, menggunakan revisi aplikasi yang dinamai **HelloWorld\$1App.zip** dalam bucket bernama: **amzn-s3-demo-bucket**

   ```
   aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip
   ```

### Untuk menerapkan revisi aplikasi Anda (konsol)
<a name="tutorials-windows-deploy-application-create-deployment-console"></a>

1. Sebelum Anda menggunakan CodeDeploy konsol untuk menyebarkan revisi aplikasi Anda, Anda memerlukan peran layanan ARN. Peran layanan adalah peran IAM yang memberikan izin layanan untuk bertindak atas nama Anda. Dalam hal ini, peran layanan memberikan CodeDeploy izin untuk mengakses instans Amazon EC2 Anda untuk memperluas (membaca) tag instans Amazon EC2 mereka.

   Anda seharusnya sudah mengikuti instruksi [Buat peran layanan (konsol)](getting-started-create-service-role.md#getting-started-create-service-role-console) untuk membuat peran layanan. Untuk mendapatkan ARN dari peran layanan, lihat. [Dapatkan peran layanan ARN (konsol)](getting-started-create-service-role.md#getting-started-get-service-role-console)

1. Sekarang Anda memiliki ARN, Anda dapat menggunakan CodeDeploy konsol untuk menyebarkan revisi aplikasi Anda.

   Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

1. Pilih **HelloWorld\$1App**.

1. Pada tab **Deployment groups**, pilih **Create deployment** group.

1. Dalam **nama grup Deployment**, masukkan**HelloWorld\$1DepGroup**.

1. Di **Peran Layanan**, pilih nama peran layanan.

1. Di **tipe Deployment**, pilih **In-place**.

1. Dalam **konfigurasi Lingkungan**, pilih **instans Amazon EC2**.

1. Dalam **konfigurasi Agen dengan AWS Systems Manager**, pertahankan defaultnya.

1. Di **Key**, masukkan**Name**.

1. Dalam **Value** (Nilai), masukkan **CodeDeployDemo**.

1. **Dalam **konfigurasi Deployment**, pilihCodeDeployDefault. OneAtATime**.

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

1. Pilih **Buat grup penyebaran**.

1. Pilih **Buat penerapan**.

1. **Di **grup Deployment**, pilih \$1 HelloWorld DepGroup**

1. Pada **tipe Revisi**, pilih **Aplikasi saya disimpan di Amazon** S3, lalu **di lokasi Revisi, masukkan lokasi contoh revisi** aplikasi Hello World yang sebelumnya Anda unggah ke Amazon S3. Untuk mendapatkan lokasi:

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

   1. Dalam daftar bucket, pilih **amzn-s3-demo-bucket (atau nama bucket** tempat Anda mengunggah revisi aplikasi). 

   1. Dalam daftar objek, pilih **HelloWorld\$1App.zip**.

   1. Di tab **Ikhtisar**, pilih **Salin jalur**.

   1. Kembali ke CodeDeploy konsol, dan di **Lokasi Revisi**, tempel nilai bidang **Tautan**.

1. Untuk **jenis file Revisi**, **pilih.zip.** 

1. (Opsional) Masukkan komentar di **Deskripsi Deployment**.

1. Pilih **Buat penerapan**. Informasi tentang penerapan yang baru dibuat muncul di halaman **Deployment**.

## Memantau dan memecahkan masalah penyebaran Anda
<a name="tutorials-windows-deploy-application-monitor"></a>

Gunakan AWS CLI atau konsol untuk memantau dan memecahkan masalah penyebaran Anda.

**Topics**
+ [Untuk memantau dan memecahkan masalah penerapan Anda (CLI)](#tutorials-windows-deploy-application-monitor-cli)
+ [Untuk memantau dan memecahkan masalah penerapan Anda (konsol)](#tutorials-windows-deploy-application-monitor-console)

### Untuk memantau dan memecahkan masalah penerapan Anda (CLI)
<a name="tutorials-windows-deploy-application-monitor-cli"></a>

1. Dapatkan ID penerapan dengan memanggil **list-deployments** perintah terhadap aplikasi bernama **HelloWorld\$1App** dan grup penyebaran bernama: **HelloWorld\$1DepGroup**

   ```
   aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
   ```

1. Panggil **get-deployment** perintah dengan ID penyebaran:

   ```
   aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
   ```

1. Perintah mengembalikan status keseluruhan penerapan. Jika berhasil, nilainya`Succeeded`.

   Jika status keseluruhannya`Failed`, Anda dapat memanggil perintah seperti [list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html)dan [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)untuk memecahkan masalah. Untuk opsi pemecahan masalah lainnya, lihat. [Menganalisis file log untuk menyelidiki kegagalan penerapan pada instance](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)

### Untuk memantau dan memecahkan masalah penerapan Anda (konsol)
<a name="tutorials-windows-deploy-application-monitor-console"></a>

**Pada halaman **Deployment** di CodeDeploy konsol, Anda dapat memantau status penerapan di kolom Status.**

Untuk mendapatkan informasi selengkapnya tentang penerapan Anda, terutama jika nilai kolom **Status** memiliki nilai selain **Berhasil**:

1. Di tabel **Deployment**, pilih ID deployment Anda. Setelah penerapan gagal, pesan yang menjelaskan alasan kegagalan muncul di halaman detail penerapan.

1. . Informasi lebih lanjut tentang instance penerapan ditampilkan. Setelah penerapan gagal, Anda mungkin dapat menentukan instans Amazon EC2 mana dan pada langkah mana penerapan gagal.

1. Jika Anda ingin melakukan lebih banyak pemecahan masalah, Anda dapat menggunakan teknik seperti. [Lihat detail contoh dengan CodeDeploy](instances-view-details.md) Anda juga dapat menganalisis file log penyebaran pada instans Amazon EC2. Untuk informasi selengkapnya, lihat [Menganalisis file log untuk menyelidiki kegagalan penerapan pada instance](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures).

## Verifikasi penerapan Anda
<a name="tutorials-windows-deploy-application-verify"></a>

Setelah penerapan Anda berhasil, verifikasi instalasi Anda berfungsi. Gunakan alamat DNS publik instans Amazon EC2 untuk melihat halaman web di browser web. ****(Untuk mendapatkan nilai DNS publik, di konsol Amazon EC2, pilih instans Amazon EC2, dan pada tab Deskripsi, cari nilainya di DNS Publik.)****

Misalnya, jika alamat DNS publik instans **ec2-01-234-567-890.compute-1.amazonaws.com** Amazon EC2 Anda, Anda akan menggunakan URL berikut:

```
http://ec2-01-234-567-890.compute-1.amazonaws.com
```

Jika berhasil, Anda harus melihat halaman web Hello World.

# Langkah 5: Perbarui dan gunakan kembali “halo, dunia\$1” application
<a name="tutorials-windows-update-and-redeploy-application"></a>

Sekarang Anda telah berhasil menerapkan revisi aplikasi Anda, pada mesin pengembangan, buat pembaruan ke kode halaman web, dan kemudian gunakan CodeDeploy untuk menyebarkan ulang situs. Setelah pemindahan, Anda akan dapat melihat perubahan pada instans Amazon EC2.

**Topics**
+ [Ubah halaman web](#tutorials-windows-update-and-redeploy-application-modify-code)
+ [Menerapkan ulang situs](#tutorials-windows-update-and-redeploy-application-deploy-updates)

## Ubah halaman web
<a name="tutorials-windows-update-and-redeploy-application-modify-code"></a>

1. Buka `c:\temp\HelloWorldApp` subfolder Anda dan gunakan editor teks untuk memodifikasi `index.html` file:

   ```
   cd c:\temp\HelloWorldApp
   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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
   <html>
   <head>
     <title>Hello Again, World!</title>
     <style>
       body {
         color: #ffffff;
         background-color: #66cc00;
         font-family: Arial, sans-serif;  
         font-size:14px;
       }
     </style>
   </head>
   <body>
     <div align="center"><h1>Hello Again, World!</h1></div>
     <div align="center"><h2>You have successfully deployed a revision of an application using CodeDeploy</h2></div>
     <div align="center">
       <p>What to do next? Take a look through the <a href="https://aws.amazon.com/codedeploy">CodeDeploy Documentation</a>.</p>
     </div>
   </body>
   </html>
   ```

## Menerapkan ulang situs
<a name="tutorials-windows-update-and-redeploy-application-deploy-updates"></a>

Sekarang setelah Anda memodifikasi kode, gunakan Amazon S3 dan CodeDeploy untuk menerapkan ulang halaman web.

Bundel dan unggah perubahan ke Amazon S3 seperti yang dijelaskan dalam. [Bundel file aplikasi ke dalam satu file arsip dan dorong file arsip](tutorials-windows-upload-application.md#tutorials-windows-upload-application-bundle-and-push-archive) (Saat Anda mengikuti instruksi tersebut, Anda tidak perlu membuat aplikasi baru.) Berikan revisi kunci yang sama seperti sebelumnya (**HelloWorld\$1App.zip**). Unggah ke bucket Amazon S3 yang sama yang Anda buat sebelumnya (misalnya,**amzn-s3-demo-bucket**).

Gunakan AWS CLI atau CodeDeploy konsol untuk menyebarkan kembali situs.

**Topics**
+ [Untuk menyebarkan kembali situs (CLI)](#tutorials-windows-update-and-redeploy-application-deploy-updates-cli)
+ [Untuk menyebarkan kembali situs (konsol)](#tutorials-windows-update-and-redeploy-application-deploy-updates-console)

### Untuk menyebarkan kembali situs (CLI)
<a name="tutorials-windows-update-and-redeploy-application-deploy-updates-cli"></a>

Panggil **create-deployment** perintah untuk membuat penerapan berdasarkan revisi yang diunggah, sekali lagi menggunakan aplikasi bernama**HelloWorld\$1App**, konfigurasi penerapan bernama, grup penyebaran bernama **CodeDeployDefault.OneAtATime****HelloWorld\$1DepGroup**, dan revisi yang disebutkan dalam bucket bernama: **HelloWorld\$1App.zip** **amzn-s3-demo-bucket**

```
 aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip
```

Anda dapat memeriksa status penerapan baru, seperti yang dijelaskan dalam[Memantau dan memecahkan masalah penyebaran Anda](tutorials-windows-deploy-application.md#tutorials-windows-deploy-application-monitor).

Ketika CodeDeploy telah memindahkan situs, kunjungi kembali situs di browser web Anda untuk memverifikasi bahwa warna latar belakang dan teks pada halaman web telah diubah. (Anda mungkin perlu menyegarkan browser Anda.) Jika warna latar belakang dan teks telah diubah, maka selamat\$1 Anda telah memodifikasi dan memindahkan situs Anda\$1

### Untuk menyebarkan kembali situs (konsol)
<a name="tutorials-windows-update-and-redeploy-application-deploy-updates-console"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. Pada panel navigasi, pilih **Aplikasi**.

1. Dalam daftar **Aplikasi**, pilih **HelloWorld\$1App**.

1. Di tab **Deployment**, pilih **Create** deployment.

   1. Dalam daftar **grup Deployment**, pilih **HelloWorld\$1 DepGroup**.

   1.  Di **lokasi Revisi**, masukkan tautan Amazon S3 untuk revisi Anda.

      Untuk menemukan nilai tautan:

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

         Jelajahi dan buka **amzn-s3-demo-bucket, lalu pilih revisi Anda, **HelloWorld\$1App.zip** di** konsol Amazon S3.

      1. Jika panel **Properties** tidak terlihat di konsol Amazon S3, pilih tombol **Properties**.

      1. Di panel **Properti**, salin nilai bidang **Tautan**.

      1. Kembali ke CodeDeploy konsol, lalu tempel tautan ke **lokasi Revisi**.

   1. **Dalam **jenis file revisi**, jika muncul pesan yang menyatakan bahwa jenis file tidak dapat dideteksi, pilih.zip.**

   1. Biarkan **deskripsi Deployment** kosong.

   1. **Perluas **penggantian grup Deployment Dalam daftar** **konfigurasi Deployment**, pilih. CodeDeployDefault OneAtATime**, lalu pilih **Create deployment**. 

      Anda dapat memeriksa status penerapan seperti yang dijelaskan dalam[Memantau dan memecahkan masalah penyebaran Anda](tutorials-windows-deploy-application.md#tutorials-windows-deploy-application-monitor).

      Ketika CodeDeploy telah memindahkan situs, kunjungi kembali situs di browser web Anda untuk memverifikasi bahwa warna latar belakang dan teks pada halaman web telah diubah. (Anda mungkin perlu menyegarkan browser Anda.) Jika warna latar belakang dan teks telah diubah, selamat\$1 Anda telah memodifikasi dan memindahkan situs Anda\$1

# Langkah 6: Bersihkan “halo, dunia\$1” aplikasi dan sumber daya terkait
<a name="tutorials-windows-clean-up"></a>

Anda sekarang telah berhasil membuat pembaruan ke “Hello, World\$1” kode dan digunakan kembali situs. Untuk menghindari biaya berkelanjutan untuk sumber daya yang Anda buat untuk menyelesaikan tutorial ini, Anda harus menghapus:
+ Setiap CloudFormation tumpukan (atau menghentikan instans Amazon EC2 apa pun, jika Anda membuatnya di luar). CloudFormation
+ Ember Amazon S3 apa pun.
+ `HelloWorld_App`Aplikasi di CodeDeploy.
+ Asosiasi Manajer AWS Systems Manager Negara untuk CodeDeploy agen.

Anda dapat menggunakan AWS CLI, Amazon S3 CloudFormation, Amazon EC2, CodeDeploy dan konsol, atau AWS APIs untuk melakukan pembersihan.

**Topics**
+ [Untuk menggunakan sumber daya pembersih (CLI)](#tutorials-windows-clean-up-cli)
+ [Untuk membersihkan sumber daya (konsol)](#tutorials-windows-clean-up-console)
+ [Apa selanjutnya?](#tutorials-windows-clean-up-whats-next)

## Untuk menggunakan sumber daya pembersih (CLI)
<a name="tutorials-windows-clean-up-cli"></a>

1. Jika Anda menggunakan CloudFormation tumpukan untuk tutorial ini, hapus tumpukan dengan memanggil **delete-stack** perintah terhadap tumpukan bernama**CodeDeployDemoStack**. Ini mengakhiri semua instans Amazon EC2 yang menyertainya dan menghapus semua peran IAM yang menyertainya yang awalnya dibuat oleh tumpukan.

   ```
   aws cloudformation delete-stack --stack-name CodeDeployDemoStack
   ```

1. Untuk menghapus bucket Amazon S3, panggil **rm** perintah dengan **--recursive** sakelar terhadap bucket bernama. **amzn-s3-demo-bucket** Ini menghapus ember dan semua benda di ember.

   ```
   aws s3 rm s3://amzn-s3-demo-bucket --recursive --region region
   ```

1. Untuk menghapus `HelloWorld_App` aplikasi dari CodeDeploy, panggil **delete-application** perintah. Ini menghapus semua catatan grup penyebaran terkait dan catatan penyebaran untuk aplikasi.

   ```
   aws deploy delete-application --application-name HelloWorld_App
   ```

1. Untuk menghapus asosiasi Manajer Negara Systems Manager, panggil **delete-association** perintah.

   ```
   aws ssm delete-association --assocation-id association-id
   ```

   Anda bisa mendapatkan *association-id* dengan memanggil **describe-association** perintah.

   ```
   aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo
   ```

1. Jika Anda tidak menggunakan CloudFormation tumpukan untuk tutorial ini, panggil **terminate-instances** perintah untuk menghentikan instans Amazon EC2 yang Anda buat secara manual. Berikan ID instans Amazon EC2 untuk dihentikan.

   ```
   aws ec2 terminate-instances --instance-ids instanceId
   ```

## Untuk membersihkan sumber daya (konsol)
<a name="tutorials-windows-clean-up-console"></a>

Jika Anda menggunakan CloudFormation template kami untuk tutorial ini, hapus CloudFormation tumpukan terkait.

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

1. Di kotak pencarian, ketik nama CloudFormation tumpukan (misalnya,**CodeDeployDemoStack**).

1. Pilih kotak di samping nama tumpukan.

1. Di menu **Actions**, pilih **Delete Stack**. Ini menghapus tumpukan, menghentikan semua instans Amazon EC2 yang menyertainya, dan menghapus semua peran IAM yang menyertainya.

Untuk menghentikan instans Amazon EC2 yang Anda buat di luar tumpukan: CloudFormation 

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 area **Instances**, pilih **Instances**.

1. **Di kotak pencarian, ketik nama instans Amazon EC2 yang ingin Anda akhiri, lalu tekan Enter.**

1. Pilih instans Amazon EC2.

1. Pilih **Actions**, arahkan ke **Instance State**, dan kemudian pilih **Terminate.** Saat diminta, pilih **Ya, Hentikan**. Ulangi langkah-langkah ini untuk instans Amazon EC2 tambahan.

Untuk menghapus bucket Amazon 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. Dalam daftar ember, telusuri ke dan pilih nama bucket Amazon S3 (misalnya**amzn-s3-demo-bucket**,).

1. Sebelum Anda dapat menghapus ember, Anda harus terlebih dahulu menghapus isinya. Pilih semua file dalam ember, seperti**HelloWorld\$1App.zip**. Di menu **Tindakan**, pilih **Hapus**. **Ketika diminta untuk mengkonfirmasi penghapusan, pilih OK.** 

1. Setelah ember kosong, Anda dapat menghapus ember. Dalam daftar ember, pilih baris ember (tetapi bukan nama ember). Pilih **Hapus bucket**, dan ketika diminta untuk mengonfirmasi, pilih **OK**. 

Untuk menghapus `HelloWorld_App` aplikasi dari CodeDeploy:

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

   

1. Pilih **`HelloWorld_App`**.

1. Pilih **Hapus aplikasi**.

1. Saat diminta, masukkan **Delete**, lalu pilih **Hapus**. 

Untuk menghapus asosiasi Manajer Negara Systems Manager:

1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com /systems-manager.

1. Di panel navigasi, pilih **State Manager**.

1. Pilih asosiasi yang Anda buat dan pilih **Hapus**.

## Apa selanjutnya?
<a name="tutorials-windows-clean-up-whats-next"></a>

Jika Anda telah tiba di sini, Anda telah berhasil menyelesaikan penerapan dengan CodeDeploy. Selamat\$1

# Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)
<a name="tutorials-on-premises-instance"></a>

Tutorial ini membantu Anda mendapatkan pengalaman CodeDeploy dengan memandu Anda melalui penerapan contoh revisi aplikasi ke satu instans lokal — yaitu, perangkat fisik yang bukan instans Amazon EC2 — menjalankan Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux (RHEL). Untuk informasi tentang instans lokal dan cara kerjanya CodeDeploy, lihat. [Bekerja dengan instans lokal untuk CodeDeploy](instances-on-premises.md)

Bukan apa yang Anda cari?
+ Untuk mempraktikkan penerapan ke instans Amazon EC2 yang menjalankan Amazon Linux atau RHEL, lihat. [Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)](tutorials-wordpress.md)
+ Untuk mempraktikkan penerapan ke instans Amazon EC2 yang menjalankan Windows Server, lihat. [Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)](tutorials-windows.md)

**Topics**
+ [Prasyarat](tutorials-on-premises-instance-prerequisites.md)
+ [Langkah 1: Konfigurasikan instans lokal](tutorials-on-premises-instance-1-configure-instance.md)
+ [Langkah 2: Buat contoh revisi aplikasi](tutorials-on-premises-instance-2-create-sample-revision.md)
+ [Langkah 3: Bundel dan unggah revisi aplikasi Anda ke Amazon S3](tutorials-on-premises-instance-3-bundle-sample-revision.md)
+ [Langkah 4: Terapkan revisi aplikasi Anda](tutorials-on-premises-instance-4-deploy-sample-revision.md)
+ [Langkah 5: Verifikasi penerapan Anda](tutorials-on-premises-instance-5-verify-deployment.md)
+ [Langkah 6: Bersihkan Sumber Daya](tutorials-on-premises-instance-6-clean-up-resources.md)

# Prasyarat
<a name="tutorials-on-premises-instance-prerequisites"></a>

Sebelum Anda memulai tutorial ini, Anda harus menyelesaikan prasyarat di[Memulai dengan CodeDeploy](getting-started-codedeploy.md), yang meliputi mengkonfigurasi pengguna, menginstal atau meningkatkan, dan membuat peran layanan AWS CLI. Anda tidak perlu membuat profil instans IAM seperti yang dijelaskan dalam prasyarat. Instans lokal tidak menggunakan profil instans IAM.

Perangkat fisik yang akan Anda konfigurasikan sebagai instans lokal harus menjalankan salah satu sistem operasi yang tercantum. [Sistem operasi yang didukung oleh CodeDeploy agen](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)

# Langkah 1: Konfigurasikan instans lokal
<a name="tutorials-on-premises-instance-1-configure-instance"></a>

Sebelum dapat menerapkan ke instans lokal, Anda harus mengonfigurasinya. Ikuti instruksi di[Bekerja dengan instans lokal untuk CodeDeploy](instances-on-premises.md), dan kemudian kembali ke halaman ini.

## Instal CodeDeploy agen
<a name="tutorials-on-premises-instance-1-configure-instance-agent"></a>

Setelah mengonfigurasi instans lokal, ikuti langkah-langkah untuk instans lokal di [Instal CodeDeploy agen dan kembali ke halaman ini](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html).

# Langkah 2: Buat contoh revisi aplikasi
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

Pada langkah ini, Anda membuat contoh revisi aplikasi untuk diterapkan ke instans lokal Anda. 

Karena sulit untuk mengetahui perangkat lunak dan fitur mana yang sudah terinstal—atau diizinkan untuk diinstal oleh kebijakan organisasi Anda—pada instans lokal Anda, contoh revisi aplikasi yang kami tawarkan di sini hanya menggunakan skrip batch (untuk Windows Server) atau skrip shell (untuk Server Ubuntu dan RHEL) untuk menulis file teks ke lokasi di instans lokal Anda. Satu file ditulis untuk masing-masing dari beberapa peristiwa siklus hidup CodeDeploy penerapan, termasuk **Instal**,, **AfterInstall**, **ApplicationStart**dan. **ValidateService** Selama peristiwa siklus hidup **BeforeInstall**penerapan, skrip akan berjalan untuk menghapus file lama yang ditulis selama penerapan sampel ini sebelumnya dan membuat lokasi pada instance lokal untuk menulis file baru. 

**catatan**  
Contoh revisi aplikasi ini mungkin gagal diterapkan jika salah satu dari berikut ini benar:  
Pengguna yang memulai CodeDeploy agen pada instans lokal tidak memiliki izin untuk mengeksekusi skrip.
Pengguna tidak memiliki izin untuk membuat atau menghapus folder di lokasi yang tercantum dalam skrip.
Pengguna tidak memiliki izin untuk membuat file teks di lokasi yang tercantum dalam skrip.

**catatan**  
Jika Anda mengonfigurasi instance Windows Server dan ingin menyebarkan sampel yang berbeda, Anda mungkin ingin menggunakannya [Langkah 2: Konfigurasikan konten sumber Anda untuk menyebarkan ke instans Windows Server Amazon EC2](tutorials-windows-configure-content.md) di [Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)](tutorials-windows.md) tutorial.  
Jika Anda mengonfigurasi instance RHEL dan ingin menerapkan sampel yang berbeda, Anda mungkin ingin menggunakan contoh yang ada [Langkah 2: Konfigurasikan konten sumber Anda untuk digunakan ke instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux Amazon EC2](tutorials-wordpress-configure-content.md) di [Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)](tutorials-wordpress.md) tutorial.  
Saat ini, tidak ada contoh alternatif untuk Ubuntu Server.

1. Pada mesin pengembangan Anda, buat subdirektori (subfolder) bernama `CodeDeployDemo-OnPrem` yang akan menyimpan file revisi aplikasi sampel, dan kemudian beralih ke subfolder. Untuk contoh ini, kami berasumsi Anda akan menggunakan `c:\temp` folder sebagai folder root untuk Windows Server atau `/tmp` folder sebagai folder root untuk Ubuntu Server dan RHEL. Jika Anda menggunakan folder yang berbeda, pastikan untuk menggantinya dengan folder kami di seluruh tutorial ini: 

   Untuk Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Untuk Linux, macOS, atau Unix:

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. Di root `CodeDeployDemo-OnPrem` subfolder, gunakan editor teks untuk membuat dua file bernama `appspec.yml` dan`install.txt`:

   `appspec.yml`untuk Windows Server:

   ```
   version: 0.0
   os: windows
   files:
     - source: .\install.txt
       destination: c:\temp\CodeDeployExample
   hooks:
     BeforeInstall:
       - location: .\scripts\before-install.bat
         timeout: 900
     AfterInstall:
       - location: .\scripts\after-install.bat     
         timeout: 900
     ApplicationStart:
       - location: .\scripts\application-start.bat  
         timeout: 900
     ValidateService:
       - location: .\scripts\validate-service.bat    
         timeout: 900
   ```

   `appspec.yml`untuk Server Ubuntu dan RHEL:

   ```
   version: 0.0
   os: linux
   files:
     - source: ./install.txt
       destination: /tmp/CodeDeployExample
   hooks:
     BeforeInstall:
       - location: ./scripts/before-install.sh
         timeout: 900
     AfterInstall:
       - location: ./scripts/after-install.sh
         timeout: 900
     ApplicationStart:
       - location: ./scripts/application-start.sh
         timeout: 900
     ValidateService:
       - location: ./scripts/validate-service.sh
         timeout: 900
   ```

   Untuk informasi selengkapnya tentang AppSpec file, lihat [Tambahkan file spesifikasi aplikasi ke revisi untuk CodeDeploy](application-revisions-appspec-file.md) dan[CodeDeploy AppSpec referensi file](reference-appspec-file.md).

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. Di bawah root `CodeDeployDemo-OnPrem` subfolder, buat `scripts` subfolder, lalu beralih ke sana:

   Untuk Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Untuk Linux, macOS, atau Unix:

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. Di root `scripts` subfolder, gunakan editor teks untuk membuat empat file bernama`before-install.bat`,,, dan `validate-service.bat` untuk Windows Server `after-install.bat``application-start.bat`, atau,, `before-install.sh` `after-install.sh``application-start.sh`, dan `validate-service.sh` untuk Ubuntu Server dan RHEL:

   Untuk Windows Server:

   `before-install.bat`:

   ```
   set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample
   
   if exist %FOLDER% (
     rd /s /q "%FOLDER%"
   )
   
   mkdir %FOLDER%
   ```

   `after-install.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt
   ```

   `application-start.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt
   ```

   `validate-service.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt
   ```

   Untuk Server Ubuntu dan RHEL:

   `before-install.sh`:

   ```
   #!/bin/bash
   export FOLDER=/tmp/CodeDeployExample
   
   if [ -d $FOLDER ]
   then
    rm -rf $FOLDER
   fi
   
   mkdir -p $FOLDER
   ```

   `after-install.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt
   ```

   `application-start.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt
   ```

   `validate-service.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt
   
   unset FOLDER
   ```

1. Untuk Ubuntu Server dan RHEL saja, pastikan keempat skrip shell memiliki izin eksekusi:

   ```
   chmod +x ./scripts/*
   ```

# Langkah 3: Bundel dan unggah revisi aplikasi Anda ke Amazon S3
<a name="tutorials-on-premises-instance-3-bundle-sample-revision"></a>

Sebelum dapat menerapkan revisi aplikasi, Anda harus menggabungkan file, lalu mengunggah bundel file ke bucket Amazon S3. Ikuti instruksi di [Buat aplikasi dengan CodeDeploy](applications-create.md) dan[Dorong revisi CodeDeploy ke Amazon S3 (hanya penerapan EC2/On-premise)](application-revisions-push.md). (Meskipun Anda dapat memberikan nama aplikasi dan grup penyebaran apa pun, kami sarankan Anda menggunakan `CodeDeploy-OnPrem-App` nama aplikasi dan `CodeDeploy-OnPrem-DG` untuk nama grup penyebaran.) Setelah Anda menyelesaikan instruksi tersebut, kembali ke halaman ini. 

**catatan**  
Atau, Anda dapat mengunggah bundel file ke GitHub repositori dan menyebarkannya dari sana. Untuk informasi selengkapnya, lihat [Integrasi dengan CodeDeploy GitHub](integrations-partners-github.md).

# Langkah 4: Terapkan revisi aplikasi Anda
<a name="tutorials-on-premises-instance-4-deploy-sample-revision"></a>

Setelah mengunggah revisi aplikasi ke bucket Amazon S3, coba terapkan ke instans lokal. Ikuti instruksi di[Buat penerapan dengan CodeDeploy](deployments-create.md), dan kemudian kembali ke halaman ini.

# Langkah 5: Verifikasi penerapan Anda
<a name="tutorials-on-premises-instance-5-verify-deployment"></a>

Untuk memverifikasi penerapan berhasil, ikuti instruksi di[Lihat CodeDeploy detail penerapan](deployments-view-details.md), lalu kembali ke halaman ini.

Jika penyebaran berhasil, Anda akan menemukan empat file teks dalam `c:\temp\CodeDeployExample` folder (untuk Windows Server) atau `/tmp/CodeDeployExample` (untuk Ubuntu Server dan RHEL). 

Jika penerapan gagal, ikuti langkah-langkah pemecahan masalah di dan. [Lihat detail contoh dengan CodeDeploy](instances-view-details.md) [Memecahkan masalah contoh](troubleshooting-ec2-instances.md) Buat perbaikan yang diperlukan, rebundle dan unggah revisi aplikasi Anda, lalu coba penerapan lagi.

# Langkah 6: Bersihkan Sumber Daya
<a name="tutorials-on-premises-instance-6-clean-up-resources"></a>

Untuk menghindari biaya berkelanjutan untuk sumber daya yang Anda buat untuk tutorial ini, hapus bucket Amazon S3 jika Anda tidak lagi menggunakannya. Anda juga dapat membersihkan sumber daya terkait, seperti catatan grup aplikasi dan penyebaran di CodeDeploy dan instans lokal.

Anda dapat menggunakan AWS CLI atau kombinasi konsol Amazon S3 CodeDeploy dan AWS CLI untuk membersihkan sumber daya. 

## Membersihkan sumber daya (CLI)
<a name="tutorials-on-premises-instance-6-clean-up-resources-cli"></a>

**Untuk menghapus bucket Amazon S3**
+ Panggil perintah [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) bersama dengan `--recursive` sakelar terhadap ember (misalnya,`amzn-s3-demo-bucket`). Ember dan semua benda di ember akan dihapus. 

  ```
  aws s3 rm s3://your-bucket-name --recursive --region region
  ```

**Untuk menghapus catatan grup aplikasi dan penyebaran di CodeDeploy**
+ Panggil perintah [hapus-aplikasi](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) terhadap aplikasi (misalnya,`CodeDeploy-OnPrem-App`). Catatan untuk grup penyebaran dan penyebaran akan dihapus. 

  ```
  aws deploy delete-application --application-name your-application-name
  ```<a name="tutorials-on-premises-instance-6-clean-up-resources-deregister-cli"></a>

**Untuk membatalkan pendaftaran instans lokal dan menghapus pengguna IAM**
+ Panggil perintah [deregister](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) terhadap instance dan wilayah lokal:

  ```
  aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
  ```
**catatan**  
Jika Anda tidak ingin menghapus pengguna IAM yang terkait dengan instans lokal ini, gunakan `--no-delete-iam-user` opsi sebagai gantinya.

**Untuk menghapus instalan CodeDeploy agen dan menghapus file konfigurasi dari instans lokal**
+ Dari instance lokal, panggil perintah [uninstall](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html):

  ```
  aws deploy uninstall
  ```

Anda sekarang telah menyelesaikan semua langkah untuk membersihkan sumber daya yang digunakan untuk tutorial ini.

## Bersihkan sumber daya (konsol)
<a name="tutorials-on-premises-instance-6-clean-up-resources-console"></a>

**Untuk menghapus bucket Amazon 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 ikon di sebelah ember yang ingin Anda hapus (misalnya,`amzn-s3-demo-bucket`), tetapi jangan memilih ember itu sendiri.

1. Pilih **Tindakan**, lalu pilih **Hapus**. 

1. Saat diminta untuk menghapus ember, pilih **OK**. 

**Untuk menghapus catatan grup aplikasi dan penyebaran di CodeDeploy**

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. Di panel navigasi pilih **Aplikasi**.

1. Pilih nama aplikasi yang ingin Anda hapus (misalnya,`CodeDeploy-OnPrem-App`) dan kemudian pilih **Hapus aplikasi**.

1. Saat diminta, masukkan nama aplikasi untuk mengonfirmasi bahwa Anda ingin menghapusnya, lalu pilih **Hapus**. 

Anda tidak dapat menggunakan AWS CodeDeploy konsol untuk membatalkan pendaftaran instans lokal atau menghapus instalan agen. CodeDeploy Ikuti petunjuk dalam [Untuk membatalkan pendaftaran instans lokal dan menghapus pengguna IAM](#tutorials-on-premises-instance-6-clean-up-resources-deregister-cli).

# Tutorial: Gunakan CodeDeploy untuk menyebarkan aplikasi ke grup Auto Scaling
<a name="tutorials-auto-scaling-group"></a>

Dalam tutorial ini, Anda akan menggunakan CodeDeploy untuk menyebarkan revisi aplikasi ke grup Auto Scaling. Amazon EC2 Auto Scaling meluncurkan instans Amazon EC2 menggunakan kondisi yang telah ditentukan sebelumnya, dan kemudian menghentikan instans tersebut saat tidak lagi diperlukan. Amazon EC2 Auto Scaling CodeDeploy dapat membantu penskalaan dengan memastikannya selalu memiliki jumlah instans Amazon EC2 yang benar yang tersedia untuk menangani beban penerapan. Untuk informasi tentang CodeDeploy integrasi Amazon EC2 Auto Scaling dengan, lihat. [Mengintegrasikan CodeDeploy dengan Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md)

**Topics**
+ [Prasyarat](tutorials-auto-scaling-group-prerequisites.md)
+ [Langkah 1: Buat dan konfigurasikan grup Auto Scaling](tutorials-auto-scaling-group-create-auto-scaling-group.md)
+ [Langkah 2: Menyebarkan aplikasi ke grup Auto Scaling](tutorials-auto-scaling-group-create-deployment.md)
+ [Langkah 3: Periksa hasil Anda](tutorials-auto-scaling-group-verify.md)
+ [Langkah 4: Tingkatkan jumlah instans Amazon EC2 di grup Auto Scaling](tutorials-auto-scaling-group-scale-up.md)
+ [Langkah 5: Periksa kembali hasil Anda](tutorials-auto-scaling-group-reverify.md)
+ [Langkah 6: Bersihkan](tutorials-auto-scaling-group-clean-up.md)

# Prasyarat
<a name="tutorials-auto-scaling-group-prerequisites"></a>

Untuk mengikuti dalam tutorial ini:
+ Selesaikan semua langkah[Memulai dengan CodeDeploy](getting-started-codedeploy.md), termasuk menyiapkan dan mengonfigurasi AWS CLI dan membuat profil instance IAM (**CodeDeployDemo-EC2-Instance-Profile**) dan peran layanan (**CodeDeployDemo**). *Peran layanan adalah jenis peran* IAM khusus yang memberikan izin layanan untuk bertindak atas nama Anda.
+ Jika Anda membuat grup Auto Scaling dengan template peluncuran, Anda harus menambahkan izin berikut:
  +  `ec2:RunInstances` 
  +  `ec2:CreateTags` 
  +  `iam:PassRole` 

  Untuk informasi selengkapnya, lihat[Langkah 2: Buat peran layanan](getting-started-create-service-role.md), [Membuat template peluncuran untuk grup Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html), dan [Luncurkan dukungan template](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-launch-template-permissions.html) di Panduan Pengguna *Amazon EC2* Auto Scaling. 
+  Buat dan gunakan revisi yang kompatibel dengan instance Server Ubuntu dan CodeDeploy. Untuk revisi Anda, Anda dapat melakukan salah satu hal berikut:
  + Buat dan gunakan revisi sampel [Langkah 2: Buat contoh revisi aplikasi](tutorials-on-premises-instance-2-create-sample-revision.md) dalam [Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)](tutorials-on-premises-instance.md) tutorial. 
  + Buat revisi sendiri, lihat[Bekerja dengan revisi aplikasi untuk CodeDeploy](application-revisions.md).
+ Buat Grup Keamanan bernama **CodeDeployDemo-AS-SG** dengan **aturan Inbound** berikut:
  + Jenis: HTTP
  + Sumber: Di mana saja

  Ini diperlukan untuk melihat aplikasi Anda dan memverifikasi keberhasilan penerapan. Untuk informasi tentang cara membuat Grup Keamanan, lihat [Membuat grup keamanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group) di panduan *pengguna Amazon EC2*.

 

# Langkah 1: Buat dan konfigurasikan grup Auto Scaling
<a name="tutorials-auto-scaling-group-create-auto-scaling-group"></a>

Pada langkah ini, Anda akan membuat grup Auto Scaling yang berisi satu instans Amazon Linux, RHEL, atau Windows Server Amazon EC2. Pada langkah selanjutnya, Anda akan menginstruksikan Amazon EC2 Auto Scaling untuk menambahkan satu lagi instans Amazon EC2, CodeDeploy dan akan menerapkan revisi Anda ke dalamnya.

**Topics**
+ [Untuk membuat dan mengkonfigurasi grup Auto Scaling (CLI)](#tutorials-auto-scaling-group-create-auto-scaling-group-cli)
+ [Untuk membuat dan mengkonfigurasi grup Auto Scaling (konsol)](#tutorials-auto-scaling-group-create-auto-scaling-group-console)

## Untuk membuat dan mengkonfigurasi grup Auto Scaling (CLI)
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-cli"></a>

1. Panggil **create-launch-template** perintah untuk membuat template peluncuran Amazon EC2.

   Sebelum Anda memanggil perintah ini, Anda memerlukan ID AMI yang berfungsi untuk tutorial ini, diwakili oleh placeholder*image-id*. Anda juga memerlukan nama key pair instans Amazon EC2 untuk mengaktifkan akses ke instans Amazon EC2, yang diwakili oleh placeholder. *key-name*

   Untuk mendapatkan ID AMI yang berfungsi dengan tutorial ini:

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

   1. **Di panel navigasi, di bawah **Instans, pilih Instans**, lalu pilih Launch **Instance**.**

   1. Pada tab **Mulai Cepat** pada halaman **Pilih Gambar Mesin Amazon**, catat ID AMI di sebelah **Amazon Linux 2 AMI, Red Hat Enterprise Linux** **7.1**, **Ubuntu Server 14.04 LTS**, atau **Microsoft Windows Server** 2012 R2. 
**catatan**  
Jika Anda memiliki versi khusus AMI yang kompatibel dengannya CodeDeploy, pilih di sini alih-alih menjelajah melalui tab **Mulai Cepat**. Untuk informasi tentang menggunakan AMI khusus dengan CodeDeploy dan Amazon EC2 Auto [Menggunakan AMI khusus dengan CodeDeploy dan Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami) Scaling, lihat.

   Untuk key pair instans Amazon EC2, gunakan nama key pair instans Amazon EC2 Anda.

   Panggil **create-launch-template** perintahnya.

   Di mesin Linux, macOS, atau Unix lokal:

   ```
   aws ec2 create-launch-template \
     --launch-template-name CodeDeployDemo-AS-Launch-Template \
     --launch-template-data file://config.json
   ```

   Isi `config.json` file:

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   Di mesin Windows lokal:

   ```
   aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data file://config.json
   ```

   Isi `config.json` file:

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   Perintah ini, bersama dengan `config.json` file, membuat template peluncuran Amazon EC2 yang dinamai CodeDeployDemo-AS-Launch-Template untuk grup Auto Scaling Anda yang akan dibuat dalam langkah berikut berdasarkan jenis instans Amazon EC2 t1.micro. Berdasarkan masukan Anda untuk`ImageId`,`IamInstanceProfile`, dan`KeyName`, template peluncuran juga menentukan ID AMI, nama profil instance yang terkait dengan peran IAM untuk diteruskan ke instance saat peluncuran, dan key pair Amazon EC2 yang akan digunakan saat menghubungkan ke instance.

1.  Panggil **create-auto-scaling-group** perintah untuk membuat grup Auto Scaling. Anda akan memerlukan nama salah satu Availability Zone di salah satu wilayah yang tercantum di [Wilayah dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region) di *Referensi Umum AWS*, diwakili oleh *availability-zone* placeholder.
**catatan**  
Untuk melihat daftar Availability Zone di suatu wilayah, hubungi:   

   ```
   aws ec2 describe-availability-zones --region region-name
   ```
Misalnya, untuk melihat daftar Availability Zone di Wilayah AS Barat (Oregon), hubungi:  

   ```
   aws ec2 describe-availability-zones --region us-west-2
   ```
Untuk daftar pengenal nama wilayah, lihat[Nama bucket kit sumber daya menurut Wilayah](resource-kit.md#resource-kit-bucket-names).

   Di mesin Linux, macOS, atau Unix lokal:

   ```
   aws autoscaling create-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --launch-template CodeDeployDemo-AS-Launch-Template,Version='$Latest' \
     --min-size 1 \
     --max-size 1 \
     --desired-capacity 1 \
     --availability-zones availability-zone \
     --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   Di mesin Windows lokal:

   ```
   aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template LaunchTemplateName=CodeDeployDemo-AS-Launch-Template,Version="$Latest" --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   Perintah ini membuat grup Auto Scaling bernama **CodeDeployDemo-AS-Group** berdasarkan template peluncuran Amazon EC2 yang diberi nama. **CodeDeployDemo-AS-Launch-Template** Grup Auto Scaling ini hanya memiliki satu instans Amazon EC2, dan dibuat di Availability Zone yang ditentukan. Setiap instance dalam grup Auto Scaling ini akan memiliki tag. `Name=CodeDeployDemo` Tag akan digunakan saat menginstal CodeDeploy agen nanti.

1. Panggil **describe-auto-scaling-groups** perintah terhadap**CodeDeployDemo-AS-Group**:

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   Jangan lanjutkan sampai nilai yang dikembalikan menunjukkan `Healthy` dan`InService`.

1.  Instance dalam grup Auto Scaling Anda harus memiliki agen CodeDeploy yang diinstal untuk digunakan CodeDeploy dalam penerapan. Instal CodeDeploy agen dengan memanggil **create-association** perintah dari AWS Systems Manager tag yang ditambahkan saat grup Auto Scaling dibuat. 

   ```
   aws ssm create-association \
     --name AWS-ConfigureAWSPackage \
     --targets Key=tag:Name,Values=CodeDeployDemo \
      --parameters action=Install, name=AWSCodeDeployAgent \
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

   Perintah ini membuat asosiasi di Systems Manager State Manager yang akan menginstal CodeDeploy agen pada semua instance di grup Auto Scaling dan kemudian mencoba memperbaruinya pada pukul 2:00 setiap Minggu pagi. Untuk informasi lebih lanjut tentang CodeDeploy agen, lihat [Bekerja dengan CodeDeploy agen](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html). Untuk informasi selengkapnya tentang Systems Manager, lihat [Apa itu AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html).

## Untuk membuat dan mengkonfigurasi grup Auto Scaling (konsol)
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-console"></a>

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

1. Di bilah navigasi global, pastikan salah satu wilayah yang tercantum di [Wilayah dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region) di *Referensi Umum AWS*dipilih. Sumber daya Amazon EC2 Auto Scaling terikat ke wilayah yang Anda tentukan CodeDeploy , dan hanya didukung di wilayah tertentu.

1. Di bilah navigasi, di bawah **Instans**, pilih **Luncurkan Template**.

1. Pilih **Buat templat peluncuran**.

1. Dalam dialog **Launch template name and description**, untuk **Launch nama template**, masukkan**CodeDeployDemo-AS-Launch-Template**. Biarkan default untuk bidang lainnya.

1. Dalam dialog **Amazon machine image (AMI)**, klik dropdown di bawah **AMI**, pilih AMI yang bekerja dengan tutorial ini:

   1. Pada tab **Mulai Cepat** dari dropdown **AMI**, pilih salah satu dari yang berikut: **Amazon Linux 2 AMI**, **Red Hat Enterprise Linux 7.1**, **Ubuntu Server 14.04 LTS**, atau **Microsoft Windows** Server 2012 R2. 
**catatan**  
Jika Anda memiliki versi khusus AMI yang kompatibel dengannya CodeDeploy, pilih di sini alih-alih menjelajah melalui tab **Mulai Cepat**. Untuk informasi tentang menggunakan AMI khusus dengan CodeDeploy dan Amazon EC2 Auto [Menggunakan AMI khusus dengan CodeDeploy dan Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami) Scaling, lihat.

1. **Dalam **tipe Instance**, pilih dropdown dan pilih t1.micro.** Anda dapat menggunakan bilah pencarian untuk menemukannya lebih cepat.

1. Dalam kotak dialog **Key pair (login)**, **pilih Choose an existing key pair**. Dalam daftar drop-down **Select a key pair**, pilih key pair instans Amazon EC2 yang Anda buat atau gunakan pada langkah sebelumnya.

1. Di kotak dialog **Pengaturan jaringan**, pilih **Virtual Public Cloud (VPC**).

   Di dropdown **Grup keamanan**, pilih grup keamanan yang Anda buat di bagian [prasyarat tutorial (](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-auto-scaling-group-prerequisites.html)). **CodeDeployDemo-AS-SG**

1. Perluas kotak dialog **Detail lanjutan**. **Di menu tarik-turun **profil instans IAM**, pilih peran IAM yang Anda buat sebelumnya (**CodeDeployDemo-EC2-Instance-Profile**) di bawah profil instans IAM.**

   Tinggalkan sisa default.

1. Pilih **Buat templat peluncuran**.

1. Dalam kotak dialog **Langkah berikutnya**, pilih **Buat grup Auto Scaling.**

1. Pada halaman **Choose launch template atau konfigurasi**, untuk **nama grup Auto Scaling**, ketik. **CodeDeployDemo-AS-Group**

1. Di kotak dialog **Launch template**, template peluncuran Anda (**CodeDeployDemo-AS-Launch-Template**) harus diisi, jika tidak, pilih dari menu tarik-turun. **Tinggalkan default dan pilih Berikutnya.** 

1. Pada **halaman Pilih opsi peluncuran instance**, di bagian **Jaringan**, untuk **VPC, pilih VPC** default. Kemudian untuk **Availability Zones dan subnet**, pilih subnet default. Anda harus membuat VPC jika Anda tidak dapat memilih default. Untuk informasi selengkapnya, lihat [Memulai Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html).

1. Di bagian **Persyaratan tipe instans**, gunakan pengaturan default untuk menyederhanakan langkah ini. (Jangan mengganti template peluncuran.) Untuk tutorial ini, Anda hanya akan meluncurkan Instans On-Demand menggunakan jenis instance yang ditentukan dalam template peluncuran Anda.

1. Pilih **Berikutnya** untuk pergi ke halaman **Configure advanced options**.

1. Pertahankan nilai default dan pilih **Berikutnya**.

1. Pada halaman **Konfigurasi ukuran grup dan kebijakan penskalaan**, pertahankan nilai **ukuran Grup** default 1. Pilih **Berikutnya**.

1. Lewati langkah untuk mengonfigurasi notifikasi, dan pilih **Berikutnya**.

1. Pada halaman **Tambahkan tag**, tambahkan tag yang akan digunakan saat menginstal CodeDeploy agen nanti. Pilih **Tambahkan tanda**.

   1. Di **Key**, masukkan**Name**.

   1. Dalam **Value** (Nilai), masukkan **CodeDeployDemo**.

   Pilih **Berikutnya**.

1. Tinjau informasi grup Auto Scaling Anda di halaman **Tinjauan**, lalu pilih grup **Buat Auto Scaling**.

1. Di bilah navigasi, dengan **Grup Auto Scaling** dipilih, pilih**CodeDeployDemo-AS-Group**, lalu pilih tab **Manajemen Instance**. Jangan melanjutkan sampai nilai **InService**muncul di kolom **Siklus Hidup** dan nilai **Sehat** muncul di kolom **Status Kesehatan**.

1. Instal CodeDeploy agen dengan mengikuti langkah-langkah di [Instal CodeDeploy agen](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html) dan menggunakan tag `Name=CodeDeployDemo` instance.

# Langkah 2: Menyebarkan aplikasi ke grup Auto Scaling
<a name="tutorials-auto-scaling-group-create-deployment"></a>

Pada langkah ini, Anda akan menerapkan revisi ke instans Amazon EC2 tunggal di grup Auto Scaling.

**Topics**
+ [Untuk membuat penerapan (CLI)](#tutorials-auto-scaling-group-create-deployment-cli)
+ [Untuk membuat penyebaran (konsol)](#tutorials-auto-scaling-group-create-deployment-console)

## Untuk membuat penerapan (CLI)
<a name="tutorials-auto-scaling-group-create-deployment-cli"></a>

1. Panggil **create-application** perintah untuk membuat aplikasi bernama**SimpleDemoApp**:

   ```
   aws deploy create-application --application-name SimpleDemoApp
   ```

1. Anda seharusnya sudah membuat peran layanan dengan mengikuti instruksi di[Langkah 2: Buat peran layanan untuk CodeDeploy](getting-started-create-service-role.md). Peran layanan akan memberikan CodeDeploy izin untuk mengakses instans Amazon EC2 Anda untuk memperluas (membaca) tag mereka. Anda akan membutuhkan peran layanan ARN. Untuk mendapatkan peran layanan ARN, ikuti instruksi di. [Dapatkan peran layanan ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)

1. Sekarang setelah Anda memiliki peran layanan ARN, panggil **create-deployment-group** perintah untuk membuat grup penyebaran bernama**SimpleDemoDG**, terkait dengan aplikasi bernama**SimpleDemoApp**, menggunakan grup Auto Scaling bernama **CodeDeployDemo-AS-Group** dan konfigurasi penyebaran bernama**CodeDeployDefault.OneAtATime**, dengan peran layanan yang ditentukan ARN.
**catatan**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)Perintah ini menyediakan dukungan untuk membuat pemicu yang menghasilkan pengiriman notifikasi Amazon SNS ke pelanggan topik tentang peristiwa tertentu dalam penerapan dan instance. Perintah ini juga mendukung opsi untuk memutar kembali penerapan secara otomatis dan mengatur alarm untuk menghentikan penerapan saat memantau ambang batas di alarm Amazon terpenuhi. CloudWatch Perintah untuk tindakan ini tidak termasuk dalam tutorial ini.

   Di mesin Linux, macOS, atau Unix lokal:

   ```
   aws deploy create-deployment-group \
     --application-name SimpleDemoApp \
     --auto-scaling-groups CodeDeployDemo-AS-Group \
     --deployment-group-name SimpleDemoDG \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --service-role-arn service-role-arn
   ```

   Di mesin Windows lokal:

   ```
   aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn
   ```

1. Panggil **create-deployment** perintah untuk membuat penyebaran yang terkait dengan aplikasi bernama**SimpleDemoApp**, konfigurasi penyebaran bernama, grup penyebaran bernama **CodeDeployDefault.OneAtATime****SimpleDemoDG**, menggunakan revisi di lokasi yang ditentukan.

   **Untuk instans Amazon Linux dan RHEL Amazon EC2, menelepon dari mesin Linux, macOS, atau Unix lokal**

    

   ```
   aws deploy create-deployment \
     --application-name SimpleDemoApp \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name SimpleDemoDG \
     --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip
   ```

   *bucket-name*adalah nama bucket Amazon S3 yang berisi file CodeDeploy Resource Kit untuk wilayah Anda. Misalnya, untuk Wilayah Timur AS (Ohio), ganti *bucket-name* dengan`aws-codedeploy-us-east-2`. Untuk daftar nama bucket, lihat[Nama bucket kit sumber daya menurut Wilayah](resource-kit.md#resource-kit-bucket-names).

   **Untuk instans Amazon Linux dan RHEL Amazon EC2, menelepon dari mesin Windows lokal**

    

   ```
   aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip
   ```

   *bucket-name*adalah nama bucket Amazon S3 yang berisi file CodeDeploy Resource Kit untuk wilayah Anda. Misalnya, untuk Wilayah Timur AS (Ohio), ganti *bucket-name* dengan`aws-codedeploy-us-east-2`. Untuk daftar nama bucket, lihat[Nama bucket kit sumber daya menurut Wilayah](resource-kit.md#resource-kit-bucket-names).

   **Untuk instans Windows Server Amazon EC2, panggilan dari mesin Linux, macOS, atau Unix lokal**

    

   ```
   aws deploy create-deployment \
     --application-name SimpleDemoApp \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name SimpleDemoDG \
     --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip
   ```

   *bucket-name*adalah nama bucket Amazon S3 yang berisi file CodeDeploy Resource Kit untuk wilayah Anda. Misalnya, untuk Wilayah Timur AS (Ohio), ganti *bucket-name* dengan`aws-codedeploy-us-east-2`. Untuk daftar nama bucket, lihat[Nama bucket kit sumber daya menurut Wilayah](resource-kit.md#resource-kit-bucket-names).

   **Untuk instans Windows Server Amazon EC2, menelepon dari mesin Windows lokal**

   ```
   aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip
   ```

   *bucket-name*adalah nama bucket Amazon S3 yang berisi file CodeDeploy Resource Kit untuk wilayah Anda. Misalnya, untuk Wilayah Timur AS (Ohio), ganti *bucket-name* dengan`aws-codedeploy-us-east-2`. Untuk daftar nama bucket, lihat[Nama bucket kit sumber daya menurut Wilayah](resource-kit.md#resource-kit-bucket-names).
**catatan**  
Saat ini, CodeDeploy tidak menyediakan contoh revisi untuk menyebarkan ke instans Ubuntu Server Amazon EC2. Untuk membuat revisi sendiri, lihat[Bekerja dengan revisi aplikasi untuk CodeDeploy](application-revisions.md).

1. Panggil **get-deployment** perintah untuk memastikan penerapan berhasil.

   Sebelum Anda memanggil perintah ini, Anda akan memerlukan ID penyebaran, yang seharusnya dikembalikan oleh panggilan ke **create-deployment** perintah. Jika Anda perlu mendapatkan ID penyebaran lagi, panggil **list-deployments** perintah terhadap aplikasi bernama **SimpleDemoApp** dan grup penyebaran bernama: **SimpleDemoDG**

   ```
   aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text
   ```

   Sekarang, panggil **get-deployment** perintah menggunakan ID penyebaran:

   ```
   aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.status" --output text
   ```

   Jangan lanjutkan sampai nilai yang dikembalikan`Succeeded`.

## Untuk membuat penyebaran (konsol)
<a name="tutorials-auto-scaling-group-create-deployment-console"></a>

1. Anda seharusnya sudah membuat peran layanan dengan mengikuti instruksi di[Langkah 2: Buat peran layanan untuk CodeDeploy](getting-started-create-service-role.md). Peran layanan akan memberikan CodeDeploy izin untuk mengakses instance Anda untuk memperluas (membaca) tag mereka. Sebelum Anda menggunakan CodeDeploy konsol untuk menyebarkan revisi aplikasi Anda, Anda akan memerlukan peran layanan ARN. Untuk mendapatkan peran layanan ARN, ikuti instruksi di. [Dapatkan peran layanan ARN (konsol)](getting-started-create-service-role.md#getting-started-get-service-role-console) 

1. Sekarang setelah Anda memiliki peran layanan ARN, Anda dapat menggunakan CodeDeploy konsol untuk menyebarkan revisi aplikasi Anda.

   Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

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

1. Pilih **aplikasi Kustom**.

1. Dalam **nama Aplikasi**, masukkan**SimpleDemoApp**.

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

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

1. Pada tab **Deployment groups**, pilih **Create deployment** group.

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

1. Di **Peran Layanan**, pilih nama peran layanan Anda.

1. Di **tipe Deployment**, pilih **In-place**.

1. Dalam **konfigurasi Lingkungan** pilih **grup Auto Scaling**, lalu pilih. **CodeDeployDemo-AS-Group**

1. **Dalam **konfigurasi Deployment**, pilihCodeDeployDefault. OneAtATime**.

1. Hapus **Aktifkan penyeimbangan beban**.

1. Pilih **Buat grup penyebaran**. 

1. Di halaman grup penyebaran, pilih **Buat penyebaran**.

1. Dalam **jenis Revisi**, pilih **Aplikasi saya disimpan di Amazon** S3. 

1. Di **lokasi Revisi**, masukkan lokasi aplikasi sampel untuk sistem operasi dan wilayah Anda.

   **Untuk instans Amazon Linux dan RHEL Amazon EC2**  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/tutorials-auto-scaling-group-create-deployment.html)

   **Untuk instans Windows Server Amazon EC2**  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/tutorials-auto-scaling-group-create-deployment.html)

    **Untuk instans Ubuntu Server Amazon EC2**

   Ketik lokasi revisi aplikasi kustom Anda yang disimpan di Amazon S3.

1. Biarkan **deskripsi Deployment** kosong.

1. Perluas **Lanjutan**.

1. Pilih **Buat penerapan**. 
**catatan**  
Jika **Gagal** muncul alih-alih **Berhasil**, Anda mungkin ingin mencoba beberapa teknik di [Pantau dan pecahkan masalah penerapan Anda](tutorials-wordpress-deploy-application.md#tutorials-wordpress-deploy-application-monitor) (menggunakan nama aplikasi **SimpleDemoApp** dan nama grup penyebaran). **SimpleDemoDG**

# Langkah 3: Periksa hasil Anda
<a name="tutorials-auto-scaling-group-verify"></a>

Pada langkah ini, Anda akan memeriksa apakah CodeDeploy telah menginstal **SimpleDemoApp** revisi pada instans Amazon EC2 tunggal di grup Auto Scaling.

**Topics**
+ [Untuk memeriksa hasil (CLI)](#tutorials-auto-scaling-group-verify-cli)
+ [Untuk memeriksa hasil (konsol)](#tutorials-auto-scaling-group-verify-console)

## Untuk memeriksa hasil (CLI)
<a name="tutorials-auto-scaling-group-verify-cli"></a>

Pertama, Anda memerlukan DNS publik dari instans Amazon EC2.

Gunakan AWS CLI untuk mendapatkan DNS publik instans Amazon EC2 di grup Auto Scaling dengan memanggil perintah. **describe-instances** 

Sebelum Anda memanggil perintah ini, Anda akan memerlukan ID instans Amazon EC2. Untuk mendapatkan ID, hubungi **describe-auto-scaling-groups** lawan **CodeDeployDemo-AS-Group** seperti yang Anda lakukan sebelumnya:

```
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text
```

Sekarang panggil **describe-instances** perintah:

```
aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text
```

Nilai yang dikembalikan adalah DNS publik dari instans Amazon EC2.

Menggunakan browser web, tampilkan SimpleDemoApp revisi yang diterapkan ke instans Amazon EC2 tersebut, menggunakan URL seperti berikut:

```
http://ec2-01-234-567-890.compute-1.amazonaws.com
```

Jika Anda melihat halaman ucapan selamat, Anda telah berhasil menggunakan revisi CodeDeploy ke satu instans Amazon EC2 dalam grup Auto Scaling\$1

Selanjutnya, Anda akan menambahkan instans Amazon EC2 ke grup Auto Scaling. Setelah Amazon EC2 Auto Scaling menambahkan instans Amazon EC2, akan menerapkan revisi Anda ke CodeDeploy instans baru.

## Untuk memeriksa hasil (konsol)
<a name="tutorials-auto-scaling-group-verify-console"></a>

Pertama, Anda memerlukan DNS publik dari instans Amazon EC2.

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

Di panel navigasi Amazon EC2, di bawah Auto Scaling, **pilih Grup Auto Scaling****, lalu pilih entri**. **CodeDeployDemo-AS-Group**

Pada tab **Instans**, pilih ID instans Amazon EC2 dalam daftar.

Pada halaman **Instans**, pada tab **Deskripsi**, perhatikan nilai **DNS Publik**. Seharusnya terlihat seperti ini:**ec2-01-234-567-890.compute-1.amazonaws.com**.

Menggunakan browser web, tampilkan SimpleDemoApp revisi yang diterapkan ke instans Amazon EC2 tersebut, menggunakan URL seperti berikut:

```
http://ec2-01-234-567-890.compute-1.amazonaws.com
```

Jika Anda melihat halaman ucapan selamat, Anda telah berhasil menggunakan revisi CodeDeploy ke satu instans Amazon EC2 dalam grup Auto Scaling\$1

Selanjutnya, Anda menambahkan instans Amazon EC2 ke grup Auto Scaling. Setelah Amazon EC2 Auto Scaling menambahkan instans Amazon EC2, akan menerapkan revisi Anda ke CodeDeploy instans Amazon EC2 yang baru.

# Langkah 4: Tingkatkan jumlah instans Amazon EC2 di grup Auto Scaling
<a name="tutorials-auto-scaling-group-scale-up"></a>

Pada langkah ini, Anda menginstruksikan grup Auto Scaling untuk membuat instans Amazon EC2 tambahan. Setelah Amazon EC2 Auto Scaling membuat CodeDeploy instans, menerapkan revisi Anda ke instans tersebut.

**Topics**
+ [Untuk mengukur jumlah instans Amazon EC2 di grup Auto Scaling (CLI)](#tutorials-auto-scaling-group-scale-up-cli)
+ [Untuk memperkecil jumlah instans Amazon EC2 di grup penerapan (konsol)](#tutorials-auto-scaling-group-scale-up-console)

## Untuk mengukur jumlah instans Amazon EC2 di grup Auto Scaling (CLI)
<a name="tutorials-auto-scaling-group-scale-up-cli"></a>

1. Panggil **update-auto-scaling-group** perintah untuk meningkatkan instans Amazon EC2 di grup Auto Scaling yang diberi nama **CodeDeployDemo-AS-Group** dari satu menjadi dua.

   Di mesin Linux, macOS, atau Unix lokal:

   ```
   aws autoscaling update-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --min-size 2 \
     --max-size 2 \
     --desired-capacity 2
   ```

   Di mesin Windows lokal:

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --min-size 2 --max-size 2 --desired-capacity 2
   ```

1. Pastikan grup Auto Scaling sekarang memiliki dua instans Amazon EC2. Panggil **describe-auto-scaling-groups** perintah terhadap**CodeDeployDemo-AS-Group**:

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   Jangan lanjutkan sampai kedua nilai yang dikembalikan menunjukkan `Healthy` dan`InService`.

## Untuk memperkecil jumlah instans Amazon EC2 di grup penerapan (konsol)
<a name="tutorials-auto-scaling-group-scale-up-console"></a>

1. Di bilah navigasi Amazon EC2, di bawah **Auto Scaling**, pilih Grup Auto **Scaling, lalu pilih.** **CodeDeployDemo-AS-Group**

1. Pilih **Tindakan**, dan kemudian pilih **Edit**.

1. Pada tab **Detail**, di kotak **Diinginkan**, **Min**, dan **Maks**, ketik**2**, lalu pilih **Simpan**.

1. Pilih tab **Instances**. Instans Amazon EC2 baru akan muncul dalam daftar. (Jika instance tidak muncul, Anda mungkin perlu memilih tombol **Refresh** beberapa kali.) Jangan melanjutkan sampai nilai **InService**muncul di kolom **Siklus Hidup** dan nilai **Sehat** muncul di kolom **Status Kesehatan**.

# Langkah 5: Periksa kembali hasil Anda
<a name="tutorials-auto-scaling-group-reverify"></a>

Pada langkah ini, Anda akan memeriksa untuk melihat apakah CodeDeploy menginstal SimpleDemoApp revisi pada instance baru di grup Auto Scaling.

**Topics**
+ [Untuk memeriksa hasil penerapan otomatis (CLI)](#tutorials-auto-scaling-group-reverify-cli)
+ [Untuk memeriksa hasil penerapan otomatis (konsol)](#tutorials-auto-scaling-group-reverify-console)

## Untuk memeriksa hasil penerapan otomatis (CLI)
<a name="tutorials-auto-scaling-group-reverify-cli"></a>

1. Sebelum Anda memanggil **get-deployment** perintah, Anda akan memerlukan ID penyebaran otomatis. Untuk mendapatkan ID, panggil **list-deployments** perintah terhadap aplikasi bernama **SimpleDemoApp** dan grup penyebaran bernama**SimpleDemoDG**:

   ```
   aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text
   ```

   Harus ada dua penyebaran IDs. Gunakan yang belum Anda gunakan dalam panggilan ke **get-deployment** perintah:

   ```
   aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text
   ```

   Selain status penyebaran, Anda akan melihat `autoScaling` di output perintah. (`autoScaling`berarti Amazon EC2 Auto Scaling membuat penerapan.) 

   Jangan lanjutkan sampai status penerapan ditampilkan`Succeeded`.

1. Sebelum Anda memanggil **describe-instances** perintah, Anda akan memerlukan ID instans Amazon EC2 yang baru. Untuk mendapatkan ID ini, lakukan panggilan lain ke **describe-auto-scaling-groups** perintah terhadap**CodeDeployDemo-AS-Group**:

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text
   ```

   Sekarang buat panggilan ke **describe-instances** perintah:

   ```
   aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text
   ```

   Dalam output **describe-instances** perintah, perhatikan DNS publik untuk instans Amazon EC2 baru.

1. Menggunakan browser web, tampilkan `SimpleDemoApp` revisi yang diterapkan ke instans Amazon EC2 tersebut, menggunakan URL seperti berikut:

   ```
   http://ec2-01-234-567-890.compute-1.amazonaws.com
   ```

   Jika halaman ucapan selamat muncul, Anda telah menggunakan revisi CodeDeploy ke instans Amazon EC2 yang ditingkatkan dalam grup Auto Scaling\$1

## Untuk memeriksa hasil penerapan otomatis (konsol)
<a name="tutorials-auto-scaling-group-reverify-console"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy, lalu pilih Deployments**.**

   

1. Pilih ID penerapan penerapan yang dibuat oleh Amazon EC2 Auto Scaling.

   .

1.  Halaman **Deployment** menampilkan informasi tentang penyebaran. Biasanya, Anda akan membuat penerapan sendiri, tetapi Amazon EC2 Auto Scaling membuatnya atas nama Anda untuk menerapkan revisi Anda ke instans Amazon EC2 yang baru.

1. Setelah **Berhasil** ditampilkan di bagian atas halaman, verifikasi hasil pada instance. Anda harus terlebih dahulu mendapatkan DNS publik dari instance:

1. Di panel navigasi Amazon EC2, di bawah Auto Scaling, **pilih Grup Auto Scaling****, lalu pilih entri**. **CodeDeployDemo-AS-Group**

1. Pada tab **Instans**, pilih ID instans Amazon EC2 baru.

1. Pada halaman **Instans**, pada tab **Deskripsi**, perhatikan nilai **DNS Publik**. Seharusnya terlihat seperti ini:**ec2-01-234-567-890.compute-1.amazonaws.com**.

Tampilkan `SimpleDemoApp` revisi yang diterapkan ke instance menggunakan URL seperti berikut ini:

```
http://ec2-01-234-567-890.compute-1.amazonaws.com
```

Jika halaman ucapan selamat muncul, Anda telah menggunakan revisi CodeDeploy ke instans Amazon EC2 yang ditingkatkan dalam grup Auto Scaling\$1

# Langkah 6: Bersihkan
<a name="tutorials-auto-scaling-group-clean-up"></a>

Pada langkah ini, Anda akan menghapus grup Auto Scaling untuk menghindari biaya berkelanjutan untuk sumber daya yang Anda gunakan selama tutorial ini. Secara opsional, Anda dapat menghapus konfigurasi Auto Scaling CodeDeploy dan catatan komponen deployment.

**Topics**
+ [Untuk membersihkan sumber daya (CLI)](#tutorials-auto-scaling-group-clean-up-cli)
+ [Untuk membersihkan sumber daya (konsol)](#tutorials-auto-scaling-group-clean-up-console)

## Untuk membersihkan sumber daya (CLI)
<a name="tutorials-auto-scaling-group-clean-up-cli"></a>

1. Hapus grup Auto Scaling dengan memanggil **delete-auto-scaling-group** perintah terhadap. **CodeDeployDemo-AS-Group** Ini juga akan mengakhiri instans Amazon EC2. 

   ```
   aws autoscaling delete-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --force-delete
   ```

1. Secara opsional, hapus template peluncuran Auto Scaling dengan memanggil perintah **delete-launch-template** terhadap konfigurasi peluncuran bernama: **CodeDeployDemo-AS-Launch-Template**

   ```
   aws ec2 delete-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template
   ```

1. Secara opsional, hapus aplikasi dari CodeDeploy dengan memanggil **delete-application** perintah terhadap aplikasi bernama**SimpleDemoApp**. Ini juga akan menghapus semua catatan penyebaran, grup penyebaran, dan revisi terkait. 

   ```
   aws deploy delete-application --application-name SimpleDemoApp
   ```

1. Untuk menghapus asosiasi Manajer Negara Systems Manager, panggil **delete-association** perintah.

   ```
   aws ssm delete-association --assocation-id association-id
   ```

   Anda bisa mendapatkan *association-id* dengan memanggil **describe-association** perintah.

   ```
   aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo
   ```

## Untuk membersihkan sumber daya (konsol)
<a name="tutorials-auto-scaling-group-clean-up-console"></a>

Untuk menghapus grup Auto Scaling, yang juga menghentikan instans 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 Amazon EC2, di bawah Auto Scaling, **pilih Grup Auto Scaling****, lalu pilih entri**. **CodeDeployDemo-AS-Group**

1. Pilih **Tindakan**, pilih **Hapus**, lalu pilih **Ya, Hapus**.

(Opsional) Untuk menghapus template peluncuran:

1.  Di bilah navigasi, di bawah **Auto Scaling**, pilih **Luncurkan Konfigurasi, lalu** pilih. **CodeDeployDemo-AS-Launch-Template**

1. Pilih **Tindakan**, pilih **Hapus konfigurasi peluncuran**, lalu pilih **Ya, Hapus**.

1. Secara opsional, hapus aplikasi dari CodeDeploy. Ini juga akan menghapus semua catatan penyebaran, grup penyebaran, dan revisi terkait. Buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

   **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

   

1. Dalam daftar aplikasi, pilih **SimpleDemoApp**.

1. Pada halaman **Detail aplikasi**, pilih **Hapus aplikasi**.

1. Saat diminta, masukkan **Delete**, lalu pilih **Hapus**. 

Untuk menghapus asosiasi Manajer Negara Systems Manager:

1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com /systems-manager.

1. Di panel navigasi, pilih **State Manager**.

1. Pilih asosiasi yang Anda buat dan pilih **Hapus**.

# Tutorial: Gunakan CodeDeploy untuk menyebarkan aplikasi dari GitHub
<a name="tutorials-github"></a>

Dalam tutorial ini, Anda gunakan CodeDeploy untuk menerapkan contoh revisi aplikasi dari GitHub satu instans Amazon EC2 yang menjalankan Amazon Linux, satu instance Red Hat Enterprise Linux (RHEL), atau satu instance Windows Server. Untuk informasi tentang GitHub integrasi dengan CodeDeploy, lihat[Integrasi dengan CodeDeploy GitHub](integrations-partners-github.md).

**catatan**  
Anda juga dapat menggunakan CodeDeploy untuk menyebarkan revisi aplikasi dari GitHub ke instance Server Ubuntu. Anda dapat menggunakan contoh revisi yang dijelaskan [Langkah 2: Buat contoh revisi aplikasi](tutorials-on-premises-instance-2-create-sample-revision.md) dalam[Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)](tutorials-on-premises-instance.md), atau Anda dapat membuat revisi yang kompatibel dengan instance Ubuntu Server dan. CodeDeploy Untuk membuat revisi Anda sendiri, lihat [Rencanakan revisi untuk CodeDeploy](application-revisions-plan.md) dan[Tambahkan file spesifikasi aplikasi ke revisi untuk CodeDeploy](application-revisions-appspec-file.md).

**Topics**
+ [Prasyarat](tutorials-github-prerequisites.md)
+ [Langkah 1: Siapkan GitHub akun](tutorials-github-create-github-account.md)
+ [Langkah 2: Buat GitHub repositori](tutorials-github-create-github-repository.md)
+ [Langkah 3: Unggah contoh aplikasi ke GitHub repositori Anda](tutorials-github-upload-sample-revision.md)
+ [Langkah 4: Menyediakan sebuah instance](tutorials-github-provision-instance.md)
+ [Langkah 5: Buat grup aplikasi dan penyebaran](tutorials-github-create-application.md)
+ [Langkah 6: Menyebarkan aplikasi ke instance](tutorials-github-deploy-application.md)
+ [Langkah 7: Pantau dan verifikasi penyebaran](tutorials-github-verify.md)
+ [Langkah 8: Membersihkan](tutorials-github-clean-up.md)

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

Sebelum Anda memulai tutorial ini, lakukan hal berikut:
+ Instal Git di mesin lokal Anda. Untuk menginstal Git, lihat [Unduhan Git](http://git-scm.com/downloads).
+ Selesaikan langkah-langkahnya[Memulai dengan CodeDeploy](getting-started-codedeploy.md), termasuk menginstal dan mengonfigurasi file. AWS CLI Ini sangat penting jika Anda ingin menggunakan AWS CLI untuk menyebarkan revisi dari GitHub ke instance.

# Langkah 1: Siapkan GitHub akun
<a name="tutorials-github-create-github-account"></a>

Anda akan memerlukan GitHub akun untuk membuat GitHub repositori tempat revisi akan disimpan. Jika Anda sudah memiliki GitHub akun, lompat ke depan[Langkah 2: Buat GitHub repositori](tutorials-github-create-github-repository.md).

1. Pergi [https://github.comke/join](https://github.com).

1. Ketik nama pengguna, alamat email Anda, dan kata sandi.

1. Pilih **Daftar GitHub**, lalu ikuti petunjuknya.

# Langkah 2: Buat GitHub repositori
<a name="tutorials-github-create-github-repository"></a>

Anda akan memerlukan GitHub repositori untuk menyimpan revisi.

Jika Anda sudah memiliki GitHub repositori, pastikan untuk mengganti namanya untuk **CodeDeployGitHubDemo** seluruh tutorial ini, dan kemudian lompat ke depan. [Langkah 3: Unggah contoh aplikasi ke GitHub repositori Anda](tutorials-github-upload-sample-revision.md) 

1. Di [GitHub halaman](https://github.com/dashboard) beranda, lakukan salah satu hal berikut:
   + Di **repositori Anda, pilih Repositori** **baru**.
   + Pada bilah navigasi, pilih **Buat baru** (**\$1**), lalu pilih **Repositori baru**.

1. Di halaman **Buat repositori baru**, lakukan hal berikut:
   + Di kotak **nama Repositori**, masukkan. **CodeDeployGitHubDemo**
   + Pilih **Publik**.
**catatan**  
Memilih opsi **Publik** default berarti siapa pun dapat melihat repositori ini. Anda dapat memilih opsi **Private** untuk membatasi siapa yang dapat melihat dan berkomitmen ke repositori. 
   + Kosongkan kotak **centang Inisialisasi repositori ini dengan README**. Anda akan membuat `README.md` file secara manual di langkah berikutnya sebagai gantinya.
   + Pilih **Buat repositori**.

1. Ikuti instruksi untuk jenis mesin lokal Anda untuk menggunakan baris perintah untuk membuat repositori.
**catatan**  
Jika Anda telah mengaktifkan otentikasi dua faktor GitHub, pastikan Anda memasukkan token akses pribadi alih-alih kata sandi GitHub masuk Anda jika diminta kata sandi. Untuk selengkapnya, lihat [Menyediakan kode autentikasi 2FA Anda](https://help.github.com/articles/providing-your-2fa-authentication-code/).

**Di mesin Linux, macOS, atau Unix lokal:**

1. Dari terminal, jalankan perintah berikut, satu per satu, di *user-name* mana nama GitHub pengguna Anda:

   ```
   mkdir /tmp/CodeDeployGitHubDemo
   ```

   ```
   cd /tmp/CodeDeployGitHubDemo
   ```

   ```
   touch README.md
   ```

   ```
   git init
   ```

   ```
   git add README.md
   ```

   ```
   git commit -m "My first commit"
   ```

   ```
   git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git
   ```

   ```
   git push -u origin master
   ```

1. Biarkan terminal terbuka di `/tmp/CodeDeployGitHubDemo` lokasi.

**Di mesin Windows lokal:**

1. Dari command prompt yang berjalan sebagai administrator, jalankan perintah berikut, satu per satu:

   ```
   mkdir c:\temp\CodeDeployGitHubDemo
   ```

   ```
   cd c:\temp\CodeDeployGitHubDemo
   ```

   ```
   notepad README.md
   ```

1. Di Notepad, simpan file. `README.md` Tutup Notepad. Jalankan perintah berikut, satu per satu, di *user-name* mana nama GitHub pengguna Anda:

   ```
   git init
   ```

   ```
   git add README.md
   ```

   ```
   git commit -m "My first commit"
   ```

   ```
   git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git
   ```

   ```
   git push -u origin master
   ```

1. Biarkan command prompt terbuka di `c:\temp\CodeDeployGitHubDemo` lokasi.

# Langkah 3: Unggah contoh aplikasi ke GitHub repositori Anda
<a name="tutorials-github-upload-sample-revision"></a>

Pada langkah ini, Anda akan menyalin revisi sampel dari bucket Amazon S3 publik ke GitHub repositori Anda. (Untuk kesederhanaan, contoh revisi yang disediakan untuk tutorial ini adalah halaman web tunggal.)

**catatan**  
Jika Anda menggunakan salah satu revisi Anda alih-alih revisi sampel kami, revisi Anda harus:   
Ikuti pedoman di [Rencanakan revisi untuk CodeDeploy](application-revisions-plan.md) dan[Tambahkan file spesifikasi aplikasi ke revisi untuk CodeDeploy](application-revisions-appspec-file.md).
Bekerja dengan jenis instance yang sesuai.
Dapat diakses dari GitHub dasbor Anda.
Jika revisi Anda memenuhi persyaratan ini, lanjutkan ke[Langkah 5: Buat grup aplikasi dan penyebaran](tutorials-github-create-application.md).  
Jika Anda menerapkan ke instance Server Ubuntu, Anda harus mengunggah ke GitHub repositori Anda revisi yang kompatibel dengan instance Server Ubuntu dan. CodeDeploy Untuk informasi selengkapnya, lihat [Rencanakan revisi untuk CodeDeploy](application-revisions-plan.md) dan [Tambahkan file spesifikasi aplikasi ke revisi untuk CodeDeploy](application-revisions-appspec-file.md).

**Topics**
+ [Dorong revisi sampel dari mesin Linux, macOS, atau Unix lokal](#tutorials-github-upload-sample-revision-unixes)
+ [Dorong revisi sampel dari mesin Windows lokal](#tutorials-github-upload-sample-revision-windows)

## Dorong revisi sampel dari mesin Linux, macOS, atau Unix lokal
<a name="tutorials-github-upload-sample-revision-unixes"></a>

Dengan terminal Anda masih terbuka, misalnya, `/tmp/CodeDeployGitHubDemo` lokasi, jalankan perintah berikut satu per satu: 

**catatan**  
Jika Anda berencana untuk menyebarkan ke instance Windows Server, gantilah `SampleApp_Windows.zip` `SampleApp_Linux.zip` dalam perintah.

```
(Amazon S3 copy command)
```

```
unzip SampleApp_Linux.zip
```

```
rm SampleApp_Linux.zip
```

 

```
git add .
```

```
git commit -m "Added sample app"
```

```
git push
```

*(Amazon S3 copy command)*Dimana salah satu dari berikut ini: 
+ `aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip . --region us-east-2`untuk wilayah AS Timur (Ohio)
+ `aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip . --region us-east-1`untuk wilayah AS Timur (Virginia N.)
+ `aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip . --region us-west-1`untuk Wilayah AS Barat (California Utara)
+ `aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip . --region us-west-2`untuk wilayah AS Barat (Oregon)
+ `aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip . --region ca-central-1`untuk Wilayah Kanada (Tengah)
+ `aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip . --region eu-west-1`untuk wilayah Eropa (Irlandia) 
+ `aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip . --region eu-west-2`untuk wilayah Eropa (London) 
+ `aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip . --region eu-west-3`untuk wilayah Eropa (Paris) 
+ `aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip . --region eu-central-1`untuk Wilayah Eropa (Frankfurt)
+ `aws s3 cp s3://aws-codedeploy-il-central-1/samples/latest/SampleApp_Linux.zip . --region il-central-1`untuk Wilayah Israel (Tel Aviv)
+ `aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Linux.zip . --region ap-east-1`untuk wilayah Asia Pasifik (Hong Kong)
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip . --region ap-northeast-1`untuk wilayah Asia Pasifik (Tokyo)
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip . --region ap-northeast-2`untuk wilayah Asia Pasifik (Seoul)
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip . --region ap-southeast-1`untuk Wilayah Asia Pasifik (Singapura)
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip . --region ap-southeast-2`untuk wilayah Asia Pasifik (Sydney)
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-4/samples/latest/SampleApp_Linux.zip . --region ap-southeast-4`untuk wilayah Asia Pasifik (Melbourne)
+ `aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip . --region ap-south-1`untuk wilayah Asia Pasifik (Mumbai)
+ `aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip . --region sa-east-1`untuk Wilayah Amerika Selatan (São Paulo)

## Dorong revisi sampel dari mesin Windows lokal
<a name="tutorials-github-upload-sample-revision-windows"></a>

 Dengan prompt perintah Anda masih terbuka, misalnya, `c:\temp\CodeDeployGitHubDemo` lokasi, jalankan perintah berikut satu per satu:

**catatan**  
Jika Anda berencana untuk menyebarkan ke instans Amazon Linux atau RHEL, gantilah `SampleApp_Linux.zip` `SampleApp_Windows.zip` dalam perintah.

```
(Amazon S3 copy command)
```

Buka zip isi file ZIP langsung ke direktori lokal (misalnya`c:\temp\CodeDeployGitHubDemo`), bukan ke subdirektori baru. `the`

```
git add .
```

```
git commit -m "Added sample app"
```

```
git push
```

*(Amazon S3 copy command)*Dimana salah satu dari berikut ini: 
+ `aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip . --region us-east-2`untuk wilayah AS Timur (Ohio)
+ `aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip . --region us-east-1`untuk wilayah AS Timur (Virginia N.)
+ `aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip . --region us-west-1`untuk Wilayah AS Barat (California Utara)
+ `aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip . --region us-west-2`untuk wilayah AS Barat (Oregon)
+ `aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip . --region ca-central-1`untuk Wilayah Kanada (Tengah)
+ `aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip . --region eu-west-1`untuk wilayah Eropa (Irlandia)
+ `aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Windows.zip . --region eu-west-2`untuk wilayah Eropa (London)
+ `aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Windows.zip . --region eu-west-3`untuk wilayah Eropa (Paris)
+ `aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip . --region eu-central-1`untuk Wilayah Eropa (Frankfurt)
+ `aws s3 cp s3://aws-codedeploy-il-central-1/samples/latest/SampleApp_Windows.zip . --region il-central-1`untuk Wilayah Israel (Tel Aviv)
+ `aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Windows.zip . --region ap-east-1`untuk wilayah Asia Pasifik (Hong Kong)
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Windows.zip . --region ap-northeast-1`untuk wilayah Asia Pasifik (Tokyo)
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip . --region ap-northeast-2`untuk wilayah Asia Pasifik (Seoul)
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip . --region ap-southeast-1`untuk Wilayah Asia Pasifik (Singapura)
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip . --region ap-southeast-2`untuk wilayah Asia Pasifik (Sydney)
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-4/samples/latest/SampleApp_Windows.zip . --region ap-southeast-4`untuk wilayah Asia Pasifik (Melbourne)
+ `aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip . --region ap-south-1`untuk wilayah Asia Pasifik (Mumbai)
+ `aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Windows.zip . --region sa-east-1`untuk Wilayah Amerika Selatan (São Paulo)

Untuk mendorong revisi Anda sendiri ke instance Server Ubuntu, salin revisi Anda ke repo lokal Anda, lalu panggil yang berikut ini:

```
git add .
git commit -m "Added Ubuntu app"
git push
```

# Langkah 4: Menyediakan sebuah instance
<a name="tutorials-github-provision-instance"></a>

Pada langkah ini, Anda akan membuat atau mengonfigurasi instance yang akan Anda gunakan untuk aplikasi sampel. Anda dapat menerapkan ke instans Amazon EC2 atau instans lokal yang menjalankan salah satu sistem operasi yang didukung oleh. CodeDeploy Untuk informasi lihat[Sistem operasi yang didukung oleh CodeDeploy agen](codedeploy-agent.md#codedeploy-agent-supported-operating-systems). (Jika Anda sudah memiliki instance yang dikonfigurasi untuk digunakan dalam CodeDeploy penerapan, lewati ke langkah berikutnya.)

**Untuk menyediakan sebuah instance**

1. Ikuti instruksi [Luncurkan instans Amazon EC2 (konsol)](instances-ec2-create.md#instances-ec2-create-console) untuk menyediakan instance.

1. Saat meluncurkan instance, ingatlah untuk menentukan tag pada halaman **Tambahkan tag**. Untuk detail tentang cara menentukan tag, lihat[Luncurkan instans Amazon EC2 (konsol)](instances-ec2-create.md#instances-ec2-create-console).

**Untuk memverifikasi bahwa CodeDeploy agen berjalan pada instance**
+ Ikuti instruksi [Verifikasi CodeDeploy agen sedang berjalan](codedeploy-agent-operations-verify.md) untuk memverifikasi bahwa agen sedang berjalan.

Setelah Anda berhasil menyediakan instance dan memverifikasi bahwa CodeDeploy agen sedang berjalan, lanjutkan ke langkah berikutnya.

# Langkah 5: Buat grup aplikasi dan penyebaran
<a name="tutorials-github-create-application"></a>

Pada langkah ini, Anda akan menggunakan CodeDeploy konsol atau AWS CLI untuk membuat aplikasi dan grup penyebaran untuk digunakan untuk menyebarkan revisi sampel dari repositori Anda. GitHub 



## Buat grup aplikasi dan penyebaran (konsol)
<a name="tutorials-github-create-application-console"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

   

1. Pilih **Buat aplikasi**, lalu pilih **Aplikasi kustom**.

1. Dalam **nama Aplikasi**, masukkan**CodeDeployGitHubDemo-App**.

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

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

1. Pada tab **Deployment groups**, pilih **Create deployment** group.

1. Dalam **nama grup Deployment**, masukkan**CodeDeployGitHubDemo-DepGrp**.

1. Di **peran Layanan**, pilih nama peran CodeDeploy layanan yang Anda buat di [Buat peran layanan CodeDeploy](getting-started-create-service-role.md).

1. Di **tipe Deployment**, pilih **In-place**.

1. **Dalam **konfigurasi Lingkungan**, tergantung pada jenis instans yang Anda gunakan, pilih instans **Amazon EC2 atau Instans lokal**.** Untuk **Key** dan **Value**, masukkan kunci tag instance dan nilai yang diterapkan ke instance Anda sebagai bagian dari[Langkah 4: Menyediakan sebuah instance](tutorials-github-provision-instance.md).

1. **Dalam **konfigurasi Deployment**, pilihCodeDeployDefault. AllatOnce**.

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

1. Perluas **Lanjutan**.

1. Di **Alarm**, pilih **Abaikan konfigurasi alarm**.

1. Pilih **Buat grup penyebaran**, dan lanjutkan ke langkah berikutnya. 

## Buat grup aplikasi dan penyebaran (CLI)
<a name="tutorials-github-create-application-cli"></a>

1. Panggil **create-application** perintah untuk membuat aplikasi CodeDeploy bernama`CodeDeployGitHubDemo-App`:

   ```
   aws deploy create-application --application-name CodeDeployGitHubDemo-App
   ```

1. Panggil **create-deployment-group** perintah untuk membuat grup penyebaran bernama`CodeDeployGitHubDemo-DepGrp`:
   + Jika Anda menerapkan ke instans Amazon EC2*ec2-tag-key*, adalah kunci tag instans Amazon EC2 yang diterapkan ke instans Amazon EC2 Anda sebagai bagian dari. [Langkah 4: Menyediakan sebuah instance](tutorials-github-provision-instance.md)
   + Jika Anda menerapkan ke instans Amazon EC2*ec2-tag-value*, adalah nilai tag instans Amazon EC2 yang diterapkan ke instans Amazon EC2 Anda sebagai bagian dari. [Langkah 4: Menyediakan sebuah instance](tutorials-github-provision-instance.md)
   + Jika Anda menerapkan ke instans lokal, *on-premises-tag-key* adalah kunci tag instans lokal yang diterapkan ke instans lokal Anda sebagai bagian dari. [Langkah 4: Menyediakan sebuah instance](tutorials-github-provision-instance.md)
   + Jika Anda menerapkan ke instans lokal, *on-premises-tag-value* adalah nilai tag instans lokal yang diterapkan ke instans lokal Anda sebagai bagian dari. [Langkah 4: Menyediakan sebuah instance](tutorials-github-provision-instance.md)
   + *service-role-arn*adalah ARN peran layanan untuk peran layanan yang Anda buat di [Buat peran layanan](getting-started-create-service-role.md). CodeDeploy (Ikuti instruksi [Dapatkan peran layanan ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli) untuk menemukan peran layanan ARN.)

   ```
   aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App --ec2-tag-filters Key=ec2-tag-key,Type=KEY_AND_VALUE,Value=ec2-tag-value --on-premises-tag-filters Key=on-premises-tag-key,Type=KEY_AND_VALUE,Value=on-premises-tag-value --deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn
   ```
**catatan**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)Perintah ini menyediakan dukungan untuk membuat pemicu yang menghasilkan pengiriman notifikasi Amazon SNS ke pelanggan topik tentang peristiwa tertentu dalam penerapan dan instance. Perintah ini juga mendukung opsi untuk memutar kembali penerapan secara otomatis dan mengatur alarm untuk menghentikan penerapan saat memantau ambang batas di alarm Amazon terpenuhi. CloudWatch Perintah untuk tindakan ini tidak termasuk dalam tutorial ini.

# Langkah 6: Menyebarkan aplikasi ke instance
<a name="tutorials-github-deploy-application"></a>

Pada langkah ini, Anda menggunakan CodeDeploy konsol atau AWS CLI untuk menerapkan revisi sampel dari GitHub repositori Anda ke instance Anda. 



## Untuk menyebarkan revisi (konsol)
<a name="tutorials-github-deploy-application-console"></a>

1. Pada halaman **Detail grup Deployment**, pilih **Create deployment**.

1. Di **grup Deployment**, pilih **`CodeDeployGitHubDemo-DepGrp`**.

1. Dalam **jenis Revisi**, pilih **GitHub**.

1. Di **Connect to GitHub**, lakukan salah satu hal berikut:
   + Untuk membuat koneksi untuk CodeDeploy aplikasi ke GitHub akun, keluar dari GitHub tab browser web terpisah. Di **GitHub akun**, masukkan nama untuk mengidentifikasi koneksi ini, lalu pilih **Connect to GitHub**. Halaman web meminta Anda untuk mengotorisasi CodeDeploy untuk berinteraksi dengan aplikasi GitHub bernama. `CodeDeployGitHubDemo-App` Lanjutkan ke langkah 5.
   + Untuk menggunakan koneksi yang telah Anda buat, di **GitHubakun**, pilih namanya, lalu pilih **Connect to GitHub**. Lanjutkan ke langkah 7.
   + Untuk membuat koneksi ke GitHub akun lain, keluar dari GitHub tab browser web terpisah. Pilih **Connect ke GitHub akun lain**, lalu pilih **Connect to GitHub**. Lanjutkan ke langkah 5.

1. Ikuti petunjuk di halaman **Masuk** untuk masuk dengan GitHub akun Anda.

1. Pada halaman **Otorisasi aplikasi**, pilih **Otorisasi** aplikasi. 

1. Pada halaman CodeDeploy **Create deployment**, dalam **nama Repositori**, masukkan nama GitHub pengguna yang Anda gunakan untuk masuk, diikuti dengan garis miring (`/`), diikuti dengan nama repositori tempat Anda mendorong revisi aplikasi Anda (misalnya,). ***my-github-user-name*/CodeDeployGitHubDemo**

   Jika Anda tidak yakin nilai yang akan dimasukkan, atau jika Anda ingin menentukan repositori yang berbeda:

   1. Di tab browser web terpisah, buka [GitHub dasbor](https://github.com/dashboard) Anda.

   1. Di **repositori Anda**, arahkan kursor mouse Anda ke nama repositori target. Tooltip muncul, menampilkan nama GitHub pengguna atau organisasi, diikuti dengan garis miring (`/`), diikuti dengan nama repositori. Masukkan nilai ini ke dalam nama **Repositori**.
**catatan**  
Jika nama repositori target tidak ditampilkan di **repositori Anda, gunakan GitHub kotak **Pencarian** untuk menemukan repositori** target dan nama pengguna atau organisasi. GitHub 

1. Di kotak **Commit ID**, masukkan ID komit yang terkait dengan push revisi aplikasi Anda. GitHub

   Jika Anda tidak yakin dengan nilai yang akan dimasukkan:

   1. Di tab browser web terpisah, buka [GitHub dasbor](https://github.com/dashboard) Anda.

   1. Di **repositori Anda, pilih**. **CodeDeployGitHubDemo**

   1. Dalam daftar komit, temukan dan salin ID komit yang terkait dengan push revisi aplikasi Anda. GitHub ID ini biasanya memiliki panjang 40 karakter dan terdiri dari huruf dan angka. (Jangan gunakan versi yang lebih pendek dari ID komit, yang biasanya merupakan 10 karakter pertama dari versi yang lebih panjang.)

   1. Rekatkan ID komit ke dalam kotak **ID Komit**.

1. Pilih **Deploy**, dan lanjutkan ke langkah berikutnya. 

## Untuk menyebarkan revisi (CLI)
<a name="tutorials-github-deploy-application-cli"></a>

Sebelum Anda dapat memanggil AWS CLI perintah apa pun yang berinteraksi dengan GitHub (seperti **create-deployment** perintah, yang akan Anda panggil berikutnya), Anda harus memberikan CodeDeploy izin untuk menggunakan akun GitHub pengguna Anda GitHub untuk berinteraksi dengan `CodeDeployGitHubDemo-App` aplikasi. Saat ini, Anda harus menggunakan CodeDeploy konsol untuk melakukan ini.

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

   

1. Pilih **CodeDeployGitHubDemo-App**.

1. Pada tab **Deployment**, pilih **Create** deployment.
**catatan**  
Anda tidak akan membuat penyebaran baru. Ini saat ini satu-satunya cara untuk memberikan CodeDeploy izin untuk berinteraksi dengan GitHub atas nama akun GitHub pengguna Anda.

1. Dari **grup Deployment**, pilih **CodeDeployGitHubDemo- DepGrp**.

1. Dalam **jenis Revisi**, pilih **GitHub**.

1. Di **Connect to GitHub**, lakukan salah satu hal berikut:
   + Untuk membuat koneksi untuk CodeDeploy aplikasi ke GitHub akun, keluar dari GitHub tab browser web terpisah. Di **GitHub akun**, ketikkan nama untuk mengidentifikasi koneksi ini, lalu pilih **Connect to GitHub**. Halaman web meminta Anda untuk mengotorisasi CodeDeploy untuk berinteraksi dengan GitHub aplikasi bernama. `CodeDeployGitHubDemo-App` Lanjutkan ke langkah 8.
   + Untuk menggunakan koneksi yang telah Anda buat, di **GitHubakun**, pilih namanya, lalu pilih **Connect to GitHub**. Lanjutkan ke langkah 10.
   + Untuk membuat koneksi ke GitHub akun lain, keluar dari GitHub tab browser web terpisah. Pilih **Connect ke GitHub akun lain**, lalu pilih **Connect to GitHub**. Lanjutkan ke langkah 8.

1. Ikuti petunjuk pada halaman **Masuk** untuk masuk dengan nama GitHub pengguna atau email dan kata sandi Anda.

1. Pada halaman **Otorisasi aplikasi**, pilih **Otorisasi** aplikasi. 

1. Pada halaman CodeDeploy **Create deployment**, pilih **Cancel**.

1. Panggil **create-deployment** perintah untuk menyebarkan revisi dari GitHub repositori Anda ke instance, di mana:
   + *repository*adalah nama GitHub akun Anda, diikuti dengan garis miring maju (`/`), diikuti dengan nama repositori Anda (`CodeDeployGitHubDemo`), misalnya,. `MyGitHubUserName/CodeDeployGitHubDemo`

     Jika Anda tidak yakin nilai yang akan digunakan, atau jika Anda ingin menentukan repositori yang berbeda:

     1. Di tab browser web terpisah, buka [GitHub dasbor](https://github.com/dashboard) Anda.

     1. Di **repositori Anda**, arahkan kursor mouse Anda ke nama repositori target. Tooltip muncul, menampilkan nama GitHub pengguna atau organisasi, diikuti dengan garis miring (`/`), diikuti dengan nama repositori. Ini adalah nilai untuk digunakan.
**catatan**  
Jika nama repositori target tidak muncul di **repositori Anda, gunakan GitHub kotak **Pencarian** untuk menemukan repositori** target dan nama pengguna atau organisasi yang sesuai. GitHub 
   + *commit-id*adalah komit yang terkait dengan versi revisi aplikasi yang Anda dorong ke repositori Anda (misalnya,). `f835159a...528eb76f` 

     Jika Anda tidak yakin dengan nilai yang akan digunakan:

     1. Di tab browser web terpisah, buka [GitHub dasbor](https://github.com/dashboard) Anda.

     1. Di **repositori Anda, pilih**. **CodeDeployGitHubDemo**

     1. Dalam daftar komit, temukan ID komit yang terkait dengan push revisi aplikasi Anda. GitHub ID ini biasanya memiliki panjang 40 karakter dan terdiri dari huruf dan angka. (Jangan gunakan versi yang lebih pendek dari ID komit, yang biasanya merupakan 10 karakter pertama dari versi yang lebih panjang.) Gunakan nilai ini.

   Jika Anda bekerja pada mesin Linux, macOS, atau Unix lokal:

   ```
   aws deploy create-deployment \
     --application-name CodeDeployGitHubDemo-App \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name CodeDeployGitHubDemo-DepGrp \
     --description "My GitHub deployment demo" \
     --github-location repository=repository,commitId=commit-id
   ```

   Jika Anda bekerja pada mesin Windows lokal:

   ```
   aws deploy create-deployment --application-name CodeDeployGitHubDemo-App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description "My GitHub deployment demo" --github-location repository=repository,commitId=commit-id
   ```

# Langkah 7: Pantau dan verifikasi penyebaran
<a name="tutorials-github-verify"></a>

Pada langkah ini, Anda akan menggunakan CodeDeploy konsol atau AWS CLI untuk memverifikasi keberhasilan penerapan. Anda akan menggunakan browser web Anda untuk melihat halaman web yang digunakan ke instance yang Anda buat atau konfigurasikan.

**catatan**  
Jika Anda menerapkan ke instance Server Ubuntu, gunakan strategi pengujian Anda sendiri untuk menentukan apakah revisi yang diterapkan berfungsi seperti yang diharapkan pada instance, dan kemudian lanjutkan ke langkah berikutnya.

**Untuk memantau dan memverifikasi penyebaran (konsol)**

1. **Di panel navigasi, perluas **Deploy, lalu pilih Deployments**.**

   

1. **Dalam daftar penerapan, cari baris dengan nilai **Application CodeDeployGitHubDemo** **-App** dan nilai **Grup Deployment** dari -. CodeDeployGitHubDemo DepGrp** Jika **Berhasil** atau **Gagal** tidak muncul di kolom **Status**, pilih tombol **Refresh** secara berkala.

1. Jika **Gagal** muncul di kolom **Status**, ikuti petunjuk [Lihat detail contoh (konsol)](instances-view-details.md#instances-view-details-console) untuk memecahkan masalah penerapan.

1. Jika **Berhasil** muncul di kolom **Status**, Anda sekarang dapat memverifikasi penyebaran melalui browser web Anda. Revisi sampel kami menyebarkan satu halaman web ke instance. Jika Anda menerapkan ke instans Amazon EC2, di browser web Anda, buka `http://public-dns` misalnya (misalnya`http://ec2-01-234-567-890.compute-1.amazonaws.com`,).

1. Jika Anda dapat melihat halaman web, maka selamat\$1 Sekarang setelah Anda AWS CodeDeploy berhasil menggunakan revisi dari GitHub, Anda dapat melompat ke depan. [Langkah 8: Membersihkan](tutorials-github-clean-up.md)

**Untuk memantau dan memverifikasi penyebaran (CLI)**

1. Panggil **list-deployments** perintah untuk mendapatkan ID penyebaran untuk aplikasi bernama `CodeDeployGitHubDemo-App` dan grup penyebaran bernama: `CodeDeployGitHubDemo-DepGrp`

   ```
   aws deploy list-deployments --application-name CodeDeployGitHubDemo-App --deployment-group-name CodeDeployGitHubDemo-DepGrp --query "deployments" --output text
   ```

1. Panggil **get-deployment** perintah, memasok ID penyebaran dalam output dari perintah: **list-deployments**

   ```
   aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text
   ```

1. Jika **Gagal** dikembalikan, ikuti instruksi [Lihat detail contoh (konsol)](instances-view-details.md#instances-view-details-console) untuk memecahkan masalah penerapan.

1. Jika **Succeeded** dikembalikan, Anda sekarang dapat mencoba memverifikasi penyebaran melalui browser web Anda. Revisi sampel kami adalah satu halaman web yang digunakan untuk instance. Jika Anda menerapkan ke instans Amazon EC2, Anda dapat melihat halaman ini di browser web Anda dengan membuka `http://public-dns` instans Amazon EC2 (misalnya,). `http://ec2-01-234-567-890.compute-1.amazonaws.com`

1. Jika Anda dapat melihat halaman web, maka selamat\$1 Anda telah berhasil digunakan AWS CodeDeploy untuk menyebarkan dari GitHub repositori Anda.

# Langkah 8: Membersihkan
<a name="tutorials-github-clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, Anda harus menghentikan instans Amazon EC2 dan sumber daya yang terkait. Secara opsional, Anda dapat menghapus catatan komponen CodeDeploy penyebaran yang terkait dengan tutorial ini. Jika Anda menggunakan GitHub repositori hanya untuk tutorial ini, Anda dapat menghapusnya sekarang juga.

## Untuk menghapus CloudFormation tumpukan (jika Anda menggunakan CloudFormation template untuk membuat instans Amazon EC2)
<a name="tutorials-github-clean-up-cloudformation-template"></a>

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

1. Di kolom **Stacks**, pilih tumpukan yang dimulai dengan`CodeDeploySampleStack`.

1. Pilih **Hapus**.

1. Saat diminta, pilih **Hapus tumpukan**. Instans Amazon EC2 dan profil instans IAM terkait serta peran layanan dihapus.

## Untuk membatalkan pendaftaran dan membersihkan instans lokal secara manual (jika Anda menyediakan instans lokal)
<a name="tutorials-github-clean-up-on-premises-instance"></a>

1. Gunakan perintah AWS CLI untuk memanggil perintah [deregister](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) terhadap instance lokal yang diwakili di sini oleh *your-instance-name* dan wilayah terkait dengan: *your-region*

   ```
   aws deploy deregister --instance-name your-instance-name --no-delete-iam-user --region your-region
   ```

1. Dari instance lokal, panggil perintah [uninstall](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html):

   ```
   aws deploy uninstall
   ```

## Untuk menghentikan instans Amazon EC2 secara manual (jika Anda meluncurkan instans Amazon EC2 secara manual)
<a name="tutorials-github-clean-up-ec2-instance"></a>

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, di **Instans**, pilih **Instans**.

1. Pilih kotak di sebelah instans Amazon EC2 yang ingin Anda hentikan. Di menu **Actions**, arahkan ke **Instance State**, lalu pilih **Terminate.**

1. Saat diminta, pilih **Ya, Hentikan**. 

## Untuk menghapus catatan komponen CodeDeploy penyebaran
<a name="tutorials-github-clean-up-codedeploy-records"></a>

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.**

   

1. Pilih **CodeDeployGitHubDemo-App**.

1. Pilih **Hapus aplikasi**.

1. Saat diminta, masukkan **Delete**, lalu pilih **Hapus**. 

## Untuk menghapus GitHub repositori Anda
<a name="tutorials-github-clean-up-github-repository"></a>

[Lihat [Menghapus repositori dalam](https://help.github.com/articles/deleting-a-repository/) bantuan. GitHub ](https://help.github.com)

# Tutorial: Menyebarkan aplikasi ke Amazon ECS
<a name="tutorial-ecs-deployment"></a>

 Dalam tutorial ini, Anda mempelajari cara menyebarkan aplikasi ke Amazon ECS menggunakan. CodeDeploy Anda mulai dengan aplikasi yang sudah Anda buat dan gunakan ke Amazon ECS. Langkah pertama adalah memperbarui aplikasi Anda dengan memodifikasi file definisi tugasnya dengan tag baru. Selanjutnya, Anda gunakan CodeDeploy untuk menyebarkan pembaruan. Selama penerapan, CodeDeploy instal pembaruan Anda ke set tugas pengganti baru. Kemudian, itu menggeser lalu lintas produksi dari versi asli aplikasi Amazon ECS Anda, yang ada dalam set tugas aslinya, ke versi yang diperbarui dalam set tugas pengganti.

 Selama penyebaran Amazon ECS, CodeDeploy gunakan penyeimbang beban yang dikonfigurasi dengan dua grup target dan satu pendengar lalu lintas produksi. Diagram berikut menunjukkan bagaimana penyeimbang beban, pendengar produksi, grup target, dan aplikasi Amazon ECS Anda terkait sebelum penerapan dimulai. Tutorial ini menggunakan Application Load Balancer. Anda juga dapat menggunakan Network Load Balancer. 

![\[Application Load Balancer atau Network Load Balancer, satu pendengar produksi, dua grup target, satu set tugas, dan satu layanan Amazon ECS.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-1.png)


 Setelah penerapan berhasil, pendengar lalu lintas produksi menyajikan lalu lintas ke set tugas pengganti baru Anda dan set tugas asli dihentikan. Diagram berikut menunjukkan bagaimana sumber daya Anda terkait setelah penerapan berhasil. Untuk informasi selengkapnya, lihat [Apa yang terjadi selama penyebaran Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[Application Load Balancer atau Network Load Balancer, satu pendengar produksi, dua kelompok target, dan satu set tugas pengganti.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-5.png)


Untuk informasi tentang cara menggunakan aplikasi AWS CLI untuk menyebarkan aplikasi ke Amazon ECS, lihat [Tutorial: Membuat layanan menggunakan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) penerapan. blue/green Untuk informasi tentang cara menggunakan CodePipeline untuk mendeteksi dan secara otomatis menerapkan perubahan ke layanan Amazon ECS dengan CodeDeploy, lihat [Tutorial: Membuat pipeline dengan sumber dan penerapan Amazon ECR](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html). ECS-to-CodeDeploy 

Setelah Anda menyelesaikan tutorial ini, Anda dapat menggunakan CodeDeploy aplikasi dan grup penyebaran yang Anda buat untuk menambahkan uji validasi penerapan. [Tutorial: Menyebarkan layanan Amazon ECS dengan uji validasi](tutorial-ecs-deployment-with-hooks.md) 

**Topics**
+ [Prasyarat](tutorial-ecs-prereqs.md)
+ [Langkah 1: Perbarui aplikasi Amazon ECS Anda](tutorial-ecs-update-the-ecs-application.md)
+ [Langkah 2: Buat AppSpec file](tutorial-ecs-create-appspec-file.md)
+ [Langkah 3: Gunakan CodeDeploy konsol untuk menyebarkan aplikasi Anda](tutorial-ecs-deployment-deploy.md)
+ [Langkah 4: Membersihkan](tutorial-ecs-clean-up.md)

# Prasyarat
<a name="tutorial-ecs-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+  Selesaikan langkah 2 dan 3 di[Memulai dengan CodeDeploy](getting-started-codedeploy.md). 
+  Buat Application Load Balancer yang dikonfigurasi dengan dua grup target dan satu pendengar. Untuk informasi tentang membuat penyeimbang beban menggunakan konsol, lihat[Siapkan penyeimbang beban, grup target, dan pendengar untuk penerapan Amazon CodeDeploy ECS](deployment-groups-create-load-balancer-for-ecs.md). Untuk informasi tentang membuat penyeimbang beban menggunakan AWS CLI, lihat [Langkah 1: Membuat Application Load](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-loadbalancer) Balancer di Panduan Pengguna *Amazon Elastic Container Service*. Saat Anda membuat penyeimbang beban, buat catatan berikut untuk tutorial ini: 
  +  Nama penyeimbang beban Anda. 
  +  Nama-nama kelompok sasaran Anda. 
  +  Port yang digunakan oleh pendengar penyeimbang beban Anda. 
+  Buat kluster dan layanan Amazon ECS. Untuk informasi selengkapnya, lihat langkah 2, 3, dan 4 di [Tutorial: Membuat layanan menggunakan blue/green penerapan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) di *Panduan Pengguna Layanan Amazon Elastic Container*. Catat hal-hal berikut untuk tutorial ini: 
  +  Nama cluster Amazon ECS Anda. 
  +  ARN dari definisi tugas yang digunakan oleh layanan Amazon ECS Anda. 
  +  Nama wadah yang digunakan oleh layanan Amazon ECS Anda. 
+  Buat bucket Amazon S3 untuk file Anda AppSpec . 

# Langkah 1: Perbarui aplikasi Amazon ECS Anda
<a name="tutorial-ecs-update-the-ecs-application"></a>

 Di bagian ini, Anda memperbarui aplikasi Amazon ECS Anda dengan revisi baru definisi tugasnya. Revisi yang diperbarui menambahkan pasangan kunci dan tag baru. Di[Langkah 3: Gunakan CodeDeploy konsol untuk menyebarkan aplikasi Anda](tutorial-ecs-deployment-deploy.md), Anda menerapkan versi terbaru dari aplikasi Amazon ECS Anda. 

**Untuk memperbarui definisi tugas**

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

1.  Di panel navigasi, pilih **Ketentuan Tugas**. 

1. Pilih definisi tugas yang digunakan oleh layanan Amazon ECS Anda.

1. Pilih revisi definisi tugas, lalu pilih **Buat revisi baru, Buat revisi** **baru**.

1.  Untuk tutorial ini, buat pembaruan kecil untuk definisi tugas dengan menambahkan tag. Di bagian bawah halaman, di bawah **Tag**, buat tag baru dengan memasukkan pasangan kunci dan nilai baru. 

1.  Pilih **Buat**. 

   Nomor revisi definisi tugas Anda bertambah satu. 

1.  Pilih tab **JSON**. Catat hal-hal berikut karena Anda memerlukan informasi ini di langkah berikutnya. 
   +  Nilai untuk`taskDefinitionArn`. Formatnya adalah `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision`. Ini adalah ARN dari definisi tugas Anda yang diperbarui. 
   +  Dalam `containerDefinitions` elemen, nilai untuk`name`. Ini adalah nama wadah Anda. 
   +  Dalam `portMappings` elemen, nilai untuk`containerPort`. Ini adalah port untuk kontainer Anda. 

# Langkah 2: Buat AppSpec file
<a name="tutorial-ecs-create-appspec-file"></a>

 Di bagian ini, Anda membuat AppSpec file dan mengunggahnya ke bucket Amazon S3 yang Anda buat di bagian tersebut[Prasyarat](tutorial-ecs-prereqs.md). AppSpec File untuk penerapan Amazon ECS menentukan definisi tugas, nama kontainer, dan port kontainer Anda. Untuk informasi selengkapnya, lihat [AppSpec Contoh file untuk penyebaran Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs) dan [AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Untuk membuat AppSpec file Anda**

1.  Jika Anda ingin membuat AppSpec file Anda menggunakan YAMAL, buat file bernama`appspec.yml`. Jika Anda ingin membuat AppSpec file Anda menggunakan JSON, buat file bernama`appspec.json`. 

1.  Pilih tab yang sesuai, tergantung pada apakah Anda menggunakan YAMAL atau JSON untuk AppSpec file Anda, dan salin kontennya ke AppSpec file yang baru saja Anda buat. Untuk `TaskDefinition` properti, gunakan definisi tugas ARN yang Anda catat di [Langkah 1: Perbarui aplikasi Amazon ECS Anda](tutorial-ecs-update-the-ecs-application.md) bagian. 

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

   ```
   {
     "version": 0.0,
     "Resources": [
       {
         "TargetService": {
           "Type": "AWS::ECS::Service",
           "Properties": {
             "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number",
             "LoadBalancerInfo": {
               "ContainerName": "your-container-name",
               "ContainerPort": your-container-port
             }
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML AppSpec ]

   ```
   version: 0.0
   Resources:
     - TargetService:
         Type: AWS::ECS::Service
         Properties:
           TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number"
           LoadBalancerInfo:
             ContainerName: "your-container-name"
             ContainerPort: your-container-port
   ```

------
**catatan**  
 Set tugas pengganti Anda mewarisi subnet, grup keamanan, versi platform, dan nilai IP publik yang ditetapkan dari set tugas asli Anda. Anda dapat mengganti nilai ini untuk tugas pengganti yang ditetapkan dengan menyetel properti opsionalnya di AppSpec file Anda. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs) dan [AppSpec Contoh file untuk penyebaran Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs). 

1.  Unggah AppSpec file Anda ke bucket S3 yang Anda buat sebagai prasyarat untuk tutorial ini. 

# Langkah 3: Gunakan CodeDeploy konsol untuk menyebarkan aplikasi Anda
<a name="tutorial-ecs-deployment-deploy"></a>

 Di bagian ini, Anda membuat grup CodeDeploy aplikasi dan penyebaran untuk menyebarkan aplikasi yang diperbarui ke Amazon ECS. Selama penerapan, CodeDeploy menggeser lalu lintas produksi untuk aplikasi Anda ke versi barunya dalam set tugas pengganti yang baru. Untuk menyelesaikan langkah ini, Anda memerlukan item berikut: 
+  Nama cluster Amazon ECS Anda. 
+  Nama layanan Amazon ECS Anda. 
+  Nama Application Load Balancer Anda. 
+  Port pendengar produksi Anda. 
+  Nama grup target Anda. 
+  Nama bucket S3 yang Anda buat. 

**Untuk membuat CodeDeploy aplikasi**

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

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

1. Dalam **nama Aplikasi**, masukkan**ecs-demo-codedeploy-app**.

1. Di **platform Compute**, pilih **Amazon ECS**.

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

**Untuk membuat CodeDeploy grup penyebaran**

1. Pada tab **grup Deployment** di halaman aplikasi Anda, pilih **Buat grup penyebaran**.

1. Dalam **nama grup Deployment**, masukkan**ecs-demo-dg**.

1. Dalam **peran Layanan**, pilih peran layanan yang memberikan CodeDeploy akses ke Amazon ECS. Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses untuk AWS CodeDeploy](security-iam.md).

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 Production listener**, pilih port dan protokol untuk listener yang menyajikan jalur produksi ke layanan Amazon ECS Anda (misalnya, HTTP: 80).** Tutorial ini tidak menyertakan pendengar uji opsional, jadi jangan memilih port dari port **pendengar Uji**. 

1. Dari nama **grup target 1 dan nama** **grup target 2**, pilih dua grup target yang berbeda untuk merutekan lalu lintas selama penyebaran Anda. Pastikan bahwa ini adalah kelompok target yang Anda buat untuk penyeimbang beban Anda. Tidak masalah mana yang digunakan untuk kelompok target 1 dan mana yang digunakan untuk kelompok sasaran 2.

1. Pilih **Reroute lalu lintas segera**.

1. Untuk **penghentian revisi Asli**, pilih 0 hari, 0 jam, dan 5 menit. Ini memungkinkan Anda melihat penerapan Anda selesai lebih cepat daripada jika Anda menggunakan default (1 jam).  
![\[Bagian konfigurasi lingkungan CodeDeploy konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/ecs-demo-create-acd-dg.png)

1. Pilih **Buat grup penyebaran**.

**Untuk menyebarkan aplikasi Amazon ECS Anda**

1. Dari halaman konsol grup penerapan Anda, pilih **Buat penerapan**.

1.  Untuk **grup Deployment**, pilih **ecs-demo-dg**. 

1.  Untuk **jenis Revisi**, pilih **Aplikasi saya disimpan di Amazon** S3. Di **lokasi Revisi**, masukkan nama bucket S3 Anda. 

1.  Untuk **jenis file Revisi**, pilih **.json **atau.yaml****, yang sesuai. 

1.  (Opsional) Dalam **deskripsi Deployment**, masukkan deskripsi untuk penerapan Anda. 

1. Pilih **Buat penerapan**.

1.  Dalam **status Deployment**, Anda dapat memantau penerapan. Setelah 100% lalu lintas produksi dialihkan ke set tugas pengganti dan sebelum waktu tunggu lima menit berakhir, Anda dapat memilih **Hentikan set tugas asli untuk segera mengakhiri set tugas asli**. Jika Anda tidak memilih **Hentikan set tugas asli, set** tugas asli akan berakhir setelah waktu tunggu lima menit yang Anda tentukan berakhir.  
![\[Bagian status penerapan CodeDeploy konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-without-test-listener.png)

# Langkah 4: Membersihkan
<a name="tutorial-ecs-clean-up"></a>

 Tutorial berikutnya,[Tutorial: Menyebarkan layanan Amazon ECS dengan uji validasi](tutorial-ecs-deployment-with-hooks.md), dibangun di atas tutorial ini dan menggunakan CodeDeploy aplikasi dan kelompok penyebaran yang Anda buat. Jika Anda ingin mengikuti langkah-langkah dalam tutorial itu, lewati langkah ini dan jangan hapus sumber daya yang Anda buat. 

**catatan**  
 AWS Akun Anda tidak dikenakan biaya untuk CodeDeploy sumber daya yang Anda buat. 

Nama sumber daya dalam langkah-langkah ini adalah nama yang disarankan dalam tutorial ini (**ecs-demo-codedeploy-app**misalnya, untuk nama CodeDeploy aplikasi Anda). Jika Anda menggunakan nama yang berbeda, maka pastikan untuk menggunakannya selama pembersihan Anda. 

1. Gunakan [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)perintah untuk menghapus grup CodeDeploy penyebaran.

   ```
   aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id
   ```

1. Gunakan perintah [hapus-aplikasi](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) untuk menghapus aplikasi. CodeDeploy 

   ```
   aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id
   ```

# Tutorial: Menyebarkan layanan Amazon ECS dengan uji validasi
<a name="tutorial-ecs-deployment-with-hooks"></a>

 Dalam tutorial ini, Anda mempelajari cara menggunakan fungsi Lambda untuk memvalidasi bagian dari penerapan aplikasi Amazon ECS yang diperbarui. Tutorial ini menggunakan CodeDeploy aplikasi, grup CodeDeploy penyebaran, dan aplikasi Amazon ECS yang Anda gunakan. [Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md) Selesaikan tutorial itu sebelum memulai yang satu ini.

 Untuk menambahkan uji validasi, pertama-tama Anda menerapkan pengujian dalam fungsi Lambda. Selanjutnya, dalam AppSpec file deployment Anda, Anda menentukan fungsi Lambda untuk hook siklus hidup yang ingin Anda uji. Jika tes validasi gagal, penerapan berhenti, dibatalkan, dan ditandai gagal. Jika pengujian berhasil, penerapan akan berlanjut ke event atau hook siklus hidup penerapan berikutnya. 

 Selama penerapan Amazon ECS dengan pengujian validasi, CodeDeploy gunakan penyeimbang beban yang dikonfigurasi dengan dua grup target: satu pendengar lalu lintas produksi dan satu pendengar lalu lintas pengujian. Diagram berikut menunjukkan bagaimana penyeimbang beban, pendengar produksi dan pengujian, grup target, dan aplikasi Amazon ECS Anda terkait sebelum penerapan dimulai. Tutorial ini menggunakan Application Load Balancer. Anda juga dapat menggunakan Network Load Balancer. 

![\[Koneksi antara Application Load Balancer atau Network Load Balancer, pendengar, grup target, kumpulan tugas, dan layanan Amazon ECS.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


 Selama penerapan Amazon ECS, ada lima kait siklus hidup untuk pengujian. Tutorial ini mengimplementasikan satu pengujian selama hook penerapan siklus hidup ketiga,. `AfterAllowTestTraffic` Untuk informasi selengkapnya, lihat [Daftar kait peristiwa siklus hidup untuk penerapan Amazon ECS](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs). Setelah penerapan berhasil, pendengar lalu lintas produksi menyajikan lalu lintas ke set tugas penggantian baru Anda dan set tugas asli dihentikan. Diagram berikut menunjukkan bagaimana sumber daya Anda terkait setelah penerapan berhasil. Untuk informasi selengkapnya, lihat [Apa yang terjadi selama penyebaran Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[Koneksi antara Application Load Balancer atau Network Load Balancer, pendengar, grup target, dan tugas pengganti yang ditetapkan setelah penerapan.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)


**catatan**  
Menyelesaikan tutorial ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk CodeDeploy, AWS Lambda, dan CloudWatch. Untuk informasi selengkapnya, lihat [AWS CodeDeploy harga](https://aws.amazon.com/codedeploy/pricing/), [AWS Lambda harga](https://aws.amazon.com/lambda/pricing/), dan [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

**Topics**
+ [Prasyarat](tutorial-ecs-with-hooks-prereqs.md)
+ [Langkah 1: Buat pendengar tes](tutorial-ecs-with-hooks-create-second-listener.md)
+ [Langkah 2: Perbarui aplikasi Amazon ECS Anda](tutorial-ecs-with-hooks-update-the-ecs-application.md)
+ [Langkah 3: Buat fungsi Lambda kait siklus hidup](tutorial-ecs-with-hooks-create-hooks.md)
+ [Langkah 4: Perbarui AppSpec file Anda](tutorial-ecs-with-hooks-create-appspec-file.md)
+ [Langkah 5: Gunakan CodeDeploy konsol untuk menyebarkan layanan Amazon ECS Anda](tutorial-ecs-with-hooks-deployment.md)
+ [Langkah 6: Lihat output fungsi kait Lambda Anda di Log CloudWatch](tutorial-ecs-with-hooks-view-cw-logs.md)
+ [Langkah 7: Bersihkan](tutoria-ecs-with-hooks-clean-up.md)

# Prasyarat
<a name="tutorial-ecs-with-hooks-prereqs"></a>

Untuk berhasil menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+  Lengkapi prasyarat untuk. [Prasyarat](tutorial-ecs-prereqs.md) [Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md) 
+  Selesaikan langkah-langkah dalam [Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md). Catat hal-hal berikut: 
  +  Nama penyeimbang beban Anda. 
  +  Nama-nama kelompok sasaran Anda. 
  +  Port yang digunakan oleh pendengar penyeimbang beban Anda. 
  +  ARN penyeimbang beban Anda. Anda menggunakan ini untuk membuat pendengar baru. 
  +  ARN dari salah satu kelompok sasaran Anda. Anda menggunakan ini untuk membuat pendengar baru. 
  +  Grup CodeDeploy aplikasi dan penyebaran yang Anda buat. 
  +  AppSpec File yang Anda buat yang digunakan oleh CodeDeploy penyebaran Anda. Anda mengedit file ini dalam tutorial ini. 

# Langkah 1: Buat pendengar tes
<a name="tutorial-ecs-with-hooks-create-second-listener"></a>

 Penerapan Amazon ECS dengan pengujian validasi memerlukan pendengar kedua. Listener ini digunakan untuk menyajikan lalu lintas pengujian ke aplikasi Amazon ECS Anda yang diperbarui dalam set tugas pengganti. Tes validasi Anda dijalankan terhadap lalu lintas pengujian. 

 Listener untuk lalu lintas pengujian Anda dapat menggunakan salah satu grup target Anda. Gunakan AWS CLI perintah [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) untuk membuat pendengar kedua dengan aturan default yang meneruskan lalu lintas pengujian ke port 8080. Gunakan ARN penyeimbang beban Anda dan ARN dari salah satu grup target Anda.

```
aws elbv2 create-listener --load-balancer-arn your-load-balancer-arn \
--protocol HTTP --port 8080 \
--default-actions Type=forward,TargetGroupArn=your-target-group-arn --region your-aws-region
```

# Langkah 2: Perbarui aplikasi Amazon ECS Anda
<a name="tutorial-ecs-with-hooks-update-the-ecs-application"></a>

 Di bagian ini, Anda memperbarui aplikasi Amazon ECS Anda untuk menggunakan revisi baru dari definisi tugasnya. Anda membuat revisi baru dan menambahkan pembaruan kecil ke dalamnya dengan menambahkan tag. 

**Untuk memperbarui definisi tugas**

1. Buka konsol klasik Amazon ECS di [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

1.  Di panel navigasi, pilih **Ketentuan Tugas**. 

1.  Pilih kotak centang untuk definisi tugas yang digunakan oleh layanan Amazon ECS Anda.

1.  Pilih **Buat revisi baru**. 

1.  Buat pembaruan kecil untuk definisi tugas dengan menambahkan tag. Di bagian bawah halaman, di **Tag**, buat tag baru dengan memasukkan pasangan kunci dan nilai baru. 

1.  Pilih **Buat**. Anda akan melihat bahwa nomor revisi definisi tugas Anda telah bertambah satu. 

1.  Pilih tab **JSON**. Catat nilainya`taskDefinitionArn`. Formatnya adalah `arn:aws:ecs:aws-region: account-id:task-definition/task-definition-family: task-definition-revision`. Ini adalah ARN dari definisi tugas Anda yang diperbarui. 

# Langkah 3: Buat fungsi Lambda kait siklus hidup
<a name="tutorial-ecs-with-hooks-create-hooks"></a>

Di bagian ini, Anda menerapkan satu fungsi Lambda untuk hook penyebaran Amazon ECS Anda. `AfterAllowTestTraffic` Fungsi Lambda menjalankan uji validasi sebelum aplikasi Amazon ECS yang diperbarui diinstal. Untuk tutorial ini, fungsi Lambda kembali. `Succeeded` Selama penerapan dunia nyata, tes validasi kembali `Succeeded` atau`Failed`, tergantung pada hasil tes validasi. Juga selama penerapan dunia nyata, Anda dapat menerapkan fungsi pengujian Lambda untuk satu atau beberapa kait `BeforeInstall` peristiwa siklus hidup penerapan Amazon ECS lainnya (,,, dan). `AfterInstall` `BeforeAllowTraffic` `AfterAllowTraffic` Untuk informasi selengkapnya, lihat [Daftar kait peristiwa siklus hidup untuk penerapan Amazon ECS](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs).

 Peran IAM diperlukan untuk membuat fungsi Lambda Anda. Peran tersebut memberikan izin fungsi Lambda untuk menulis CloudWatch ke Log dan menyetel status hook siklus hidup CodeDeploy . 

**Untuk membuat IAM role**

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

1. Dari panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1.  Buat peran dengan properti berikut: 
   +  **Entitas tepercaya**: **AWS Lambda**. 
   +  **Izin**: **AWSLambdaBasicExecutionRole**. Ini memberikan izin fungsi Lambda Anda untuk menulis CloudWatch ke Log. 
   +  **Nama peran**: **`lambda-cli-hook-role`**. 

   Untuk informasi selengkapnya, lihat [Membuat peran AWS Lambda eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/with-userapp.html#with-userapp-walkthrough-custom-events-create-iam-role). 

1.  Lampirkan izin `codedeploy:PutLifecycleEventHookExecutionStatus` ke peran yang Anda buat. Ini memberikan izin fungsi Lambda Anda untuk menyetel status hook siklus CodeDeploy hidup selama penerapan. Untuk informasi selengkapnya, lihat [Menambahkan izin identitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) di *Panduan AWS Identity and Access Management Pengguna* dan [PutLifecycleEventHookExecutionStatus](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_PutLifecycleEventHookExecutionStatus.html)di Referensi *CodeDeploy API*. 

**Untuk membuat fungsi Lambda `AfterAllowTestTraffic` hook**

1.  Buat file bernama `AfterAllowTestTraffic.js` dengan isi berikut ini. 

   ```
   'use strict';
    
    const AWS = require('aws-sdk');
    const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'});
    
    exports.handler = (event, context, callback) => {
    
    	console.log("Entering AfterAllowTestTraffic hook.");
    	
    	// Read the DeploymentId and LifecycleEventHookExecutionId from the event payload
     var deploymentId = event.DeploymentId;
    	var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
    	var validationTestResult = "Failed";
    	
    	// Perform AfterAllowTestTraffic validation tests here. Set the test result 
    	// to "Succeeded" for this tutorial.
    	console.log("This is where AfterAllowTestTraffic validation tests happen.")
    	validationTestResult = "Succeeded";
    	
    	// Complete the AfterAllowTestTraffic hook by sending CodeDeploy the validation status
    	var params = {
    		deploymentId: deploymentId,
    		lifecycleEventHookExecutionId: lifecycleEventHookExecutionId,
    		status: validationTestResult // status can be 'Succeeded' or 'Failed'
    	};
    	
    	// Pass CodeDeploy the prepared validation test results.
    	codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) {
    		if (err) {
    			// Validation failed.
    			console.log('AfterAllowTestTraffic validation tests failed');
    			console.log(err, err.stack);
    			callback("CodeDeploy Status update failed");
    		} else {
    			// Validation succeeded.
    			console.log("AfterAllowTestTraffic validation tests succeeded");
    			callback(null, "AfterAllowTestTraffic validation tests succeeded");
    		}
    	});
    }
   ```

1.  Buat paket penyebaran Lambda. 

   ```
   zip AfterAllowTestTraffic.zip AfterAllowTestTraffic.js 
   ```

1.  Gunakan `create-function` perintah untuk membuat fungsi Lambda untuk hook Anda`AfterAllowTestTraffic`. 

   ```
   aws lambda create-function --function-name AfterAllowTestTraffic \
          --zip-file fileb://AfterAllowTestTraffic.zip \
          --handler AfterAllowTestTraffic.handler \
          --runtime nodejs10.x \
          --role arn:aws:iam::aws-account-id:role/lambda-cli-hook-role
   ```

1.  Catat ARN fungsi Lambda Anda dalam tanggapannya. `create-function` Anda menggunakan ARN ini saat memperbarui AppSpec file CodeDeploy penerapan di langkah berikutnya. 

# Langkah 4: Perbarui AppSpec file Anda
<a name="tutorial-ecs-with-hooks-create-appspec-file"></a>

 Di bagian ini, Anda memperbarui AppSpec file Anda dengan `Hooks` bagian. Di `Hooks` bagian ini, Anda menentukan fungsi Lambda untuk kait siklus `AfterAllowTestTraffic` hidup. 

**Untuk memperbarui AppSpec file Anda**

1.  Buka AppSpec file file yang Anda buat [Langkah 2: Buat AppSpec file](tutorial-ecs-create-appspec-file.md) dari file[Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md). 

1.  Perbarui `TaskDefinition` properti dengan definisi tugas ARN yang Anda catat. [Langkah 2: Perbarui aplikasi Amazon ECS Anda](tutorial-ecs-with-hooks-update-the-ecs-application.md) 

1. Salin dan tempel `Hooks` bagian tersebut ke AppSpec file file Anda. Perbarui ARN setelahnya `AfterAllowTestTraffic` dengan ARN dari fungsi Lambda yang Anda catat. [Langkah 3: Buat fungsi Lambda kait siklus hidup](tutorial-ecs-with-hooks-create-hooks.md) 

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

   ```
   {
     "version": 0.0,
     "Resources": [
       {
         "TargetService": {
           "Type": "AWS::ECS::Service",
           "Properties": {
             "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id::task-definition/ecs-demo-task-definition:revision-number",
             "LoadBalancerInfo": {
               "ContainerName": "sample-website",
               "ContainerPort": 80
             }
           }
         }
       }
     ],
     "Hooks": [
       {
         "AfterAllowTestTraffic": "arn:aws:lambda:aws-region-id:aws-account-id:function:AfterAllowTestTraffic"
       }
     ]
   }
   ```

------
#### [ YAML AppSpec ]

   ```
   version: 0.0
   Resources:
     - TargetService:
         Type: AWS::ECS::Service
         Properties:
           TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id::task-definition/ecs-demo-task-definition:revision-number"
           LoadBalancerInfo:
             ContainerName: "sample-website"
             ContainerPort: 80
   Hooks:
     - AfterAllowTestTraffic: "arn:aws:lambda:aws-region-id:aws-account-id:function:AfterAllowTestTraffic"
   ```

------

1.  Simpan AppSpec file Anda dan unggah ke bucket S3-nya. 

# Langkah 5: Gunakan CodeDeploy konsol untuk menyebarkan layanan Amazon ECS Anda
<a name="tutorial-ecs-with-hooks-deployment"></a>

 Di bagian ini, Anda memperbarui grup penerapan dengan menentukan port untuk listener pengujian Anda. Ini adalah pendengar yang Anda buat. [Langkah 1: Buat pendengar tes](tutorial-ecs-with-hooks-create-second-listener.md) Selama penerapan, CodeDeploy jalankan pengujian validasi Anda selama hook siklus hidup `AfterAllowTestTraffic` penerapan menggunakan lalu lintas pengujian yang disajikan ke set tugas pengganti Anda menggunakan listener pengujian. Tes validasi Anda mengembalikan hasilnya`Succeeded`, sehingga penerapan dilanjutkan dengan peristiwa siklus hidup penerapan berikutnya. Dalam skenario dunia nyata, fungsi pengujian Anda kembali `Succeeded` atau`Failed`. 

**Untuk menambahkan listener pengujian ke grup penerapan**

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

1. Dari panel navigasi, pilih **Aplikasi**. 

1. Pilih aplikasi yang Anda buat[Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md). Jika Anda menggunakan nama yang disarankan, itu benar **ecs-demo-codedeploy-app**.

1. Di **grup Deployment**, pilih grup penyebaran yang Anda buat. [Tutorial: Menyebarkan aplikasi ke Amazon ECS](tutorial-ecs-deployment.md) Jika Anda menggunakan nama yang disarankan, itu benar **ecs-demo-dg**.

1.  Pilih **Edit**. 

1. Dari **port Test listener**, pilih port dan protokol untuk test listener yang Anda buat sebelumnya dalam tutorial ini. Ini harus **HTTP: 8080**. 

1.  Pilih **Simpan perubahan**. 

**Untuk menyebarkan aplikasi Amazon ECS Anda**

1. Dari halaman konsol grup penerapan Anda, pilih **Buat penerapan**.

1.  Untuk **grup Deployment**, pilih **ecs-demo-dg**. 

1.  Untuk **jenis Revisi**, pilih **Aplikasi saya disimpan di Amazon** S3. Di **lokasi Revisi**, masukkan nama bucket dan AppSpec file S3 Anda (misalnya,**s3://my-s3-bucket/appspec.json**). 

1.  Untuk **jenis file Revisi**, pilih **.json atau.yaml** yang sesuai**.** 

1.  (Opsional) Dalam **deskripsi Deployment**, masukkan deskripsi untuk penerapan Anda. 

1. Pilih **Buat penerapan**.

 Anda dapat memantau penerapan Anda dalam status **Deployment**. Setelah 100% lalu lintas produksi dirutekan ke set tugas pengganti, Anda dapat memilih **Hentikan set tugas asli** untuk segera menghentikan set tugas asli. Jika Anda tidak memilih **Menghentikan set tugas asli, set** tugas asli akan berakhir setelah durasi yang Anda tentukan saat membuat grup penerapan. 

![\[Bagian status penerapan CodeDeploy konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-with-test-listener.png)


# Langkah 6: Lihat output fungsi kait Lambda Anda di Log CloudWatch
<a name="tutorial-ecs-with-hooks-view-cw-logs"></a>

 Jika CodeDeploy penerapan Anda berhasil, tes validasi di fungsi kait Lambda Anda juga berhasil. Anda dapat mengonfirmasi ini dengan melihat log untuk fungsi hook di CloudWatch Log. 

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

1.  Dari panel navigasi, pilih **Log**. Anda akan melihat satu grup log baru untuk fungsi kait Lambda yang Anda tentukan dalam file Anda AppSpec .   
![\[Grup log baru di CloudWatch konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/ecs-demo-cw-logs.png)

1.  Pilih grup log baru. Ini harus**/aws/lambda/AfterAllowTestTrafficHook**. 

1.  Pilih pengaliran log. Jika Anda melihat lebih dari satu aliran log, pilih salah satu dengan tanggal dan waktu terbaru di bawah **Waktu Acara Terakhir**. 

1.  Perluas peristiwa aliran log untuk mengonfirmasi fungsi kait Lambda Anda menulis pesan sukses ke log. Berikut ini menunjukkan fungsi kait `AfterAllowTraffic` Lambda berhasil.   
![\[Peristiwa aliran log yang menunjukkan AfterAllowTraffic hook.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/ecs-demo-cw-log-events.png)

# Langkah 7: Bersihkan
<a name="tutoria-ecs-with-hooks-clean-up"></a>

 Bila Anda telah menyelesaikan tutorial ini, bersihkan sumber daya yang terkait dengannya untuk menghindari biaya untuk sumber daya yang tidak Anda gunakan. Nama sumber daya dalam langkah ini adalah nama yang disarankan dalam tutorial ini (**ecs-demo-codedeploy-app**misalnya, untuk nama CodeDeploy aplikasi Anda). Jika Anda menggunakan nama yang berbeda, maka pastikan untuk menggunakannya dalam pembersihan Anda. 

**Untuk membersihkan sumber daya tutorial**

1. Gunakan [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)perintah untuk menghapus grup CodeDeploy penyebaran.

   ```
   aws deploy delete-deployment-group --application-name ecs-demo-deployment-group --deployment-group-name ecs-demo-dg --region aws-region-id
   ```

1. Gunakan perintah [hapus-aplikasi](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) untuk menghapus aplikasi. CodeDeploy 

   ```
   aws deploy delete-application --application-name ecs-demo-deployment-group --region aws-region-id
   ```

1. Gunakan perintah [delete-function](https://docs.aws.amazon.com/cli/latest/reference/lambda/delete-function.html) untuk menghapus fungsi hook Lambda Anda.

   ```
   aws lambda delete-function --function-name AfterAllowTestTraffic
   ```

1. Gunakan [delete-log-group](https://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html)perintah untuk menghapus grup CloudWatch log Anda.

   ```
   aws logs delete-log-group --log-group-name /aws/lambda/AfterAllowTestTraffic
   ```

# Tutorial: Menyebarkan fungsi Lambda yang diperbarui CodeDeploy dengan dan Model Aplikasi Tanpa AWS Server
<a name="tutorial-lambda-sam"></a>

AWS SAM adalah kerangka kerja sumber terbuka untuk membangun aplikasi tanpa server. Ini mengubah dan memperluas sintaks YAMAL dalam AWS SAM template menjadi CloudFormation sintaks untuk membangun aplikasi tanpa server, seperti fungsi Lambda. Untuk informasi selengkapnya, lihat [Apa itu AWS Model Aplikasi Tanpa Server](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)? 

 Dalam tutorial ini, Anda menggunakan AWS SAM untuk membuat solusi yang melakukan hal berikut: 
+  Membuat fungsi Lambda Anda. 
+  Membuat grup CodeDeploy aplikasi dan penyebaran Anda. 
+  Membuat dua fungsi Lambda yang menjalankan tes validasi penerapan selama kait siklus hidup. CodeDeploy 
+  Mendeteksi kapan fungsi Lambda Anda diperbarui. Pembaruan fungsi Lambda memicu penerapan yang secara bertahap menggeser lalu lintas produksi dari versi asli fungsi Lambda Anda ke versi terbaru. CodeDeploy 

**catatan**  
Tutorial ini mengharuskan Anda untuk membuat sumber daya yang mungkin menimbulkan biaya untuk akun AWS Anda. Ini termasuk kemungkinan biaya untuk CodeDeploy, Amazon CloudWatch, dan AWS Lambda. Untuk informasi selengkapnya, lihat [CodeDeploy harga](https://aws.amazon.com/codedeploy/pricing/), [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/), dan [AWS Lambda harga](https://aws.amazon.com/lambda/pricing/).

**Topics**
+ [Prasyarat](tutorial-lambda-sam-prereqs.md)
+ [Langkah 1: Siapkan infrastruktur Anda](tutorial-lambda-sam-setup-infrastructure.md)
+ [Langkah 2: Perbarui fungsi Lambda](tutorial-lambda-sam-update-function.md)
+ [Langkah 3: Menyebarkan fungsi Lambda yang diperbarui](tutorial-lambda-sam-deploy-update.md)
+ [Langkah 4: Lihat hasil penerapan Anda](tutorial-lambda-sam-deploy-view-results.md)
+ [Langkah 5: Bersihkan](tutorial-lambda-clean-up.md)

# Prasyarat
<a name="tutorial-lambda-sam-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+  Selesaikan langkah-langkah dalam [Memulai dengan CodeDeploy](getting-started-codedeploy.md). 
+  Instal AWS Serverless Application Model CLI. Untuk selengkapnya, lihat [Menginstal AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html). 
+  Buat ember S3. AWS SAM mengunggah artefak yang direferensikan dalam [template AWS SAM](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/tutorial-lambda-sam-template.html) Anda ke dalam ember ini. 

# Langkah 1: Siapkan infrastruktur Anda
<a name="tutorial-lambda-sam-setup-infrastructure"></a>

 Topik ini menunjukkan cara menggunakan AWS SAM untuk membuat file untuk AWS SAM template dan fungsi Lambda Anda. Kemudian, Anda menggunakan `deploy` perintah AWS SAM `package` dan untuk menghasilkan komponen dalam infrastruktur Anda. Ketika infrastruktur sudah siap, Anda memiliki grup CodeDeploy aplikasi dan penyebaran, fungsi Lambda untuk memperbarui dan menyebarkan, dan dua fungsi Lambda yang berisi pengujian validasi yang berjalan saat Anda menerapkan fungsi Lambda. Setelah selesai, Anda dapat menggunakan CloudFormation untuk melihat komponen Anda di konsol Lambda atau AWS CLI untuk menguji fungsi Lambda Anda. 

**Topics**
+ [Buat file Anda](tutorial-lambda-create-files.md)
+ [Package aplikasi AWS SAM](tutorial-lambda-sam-package.md)
+ [Menyebarkan aplikasi AWS SAM](tutorial-lambda-sam-deploy.md)
+ [(Opsional) memeriksa dan menguji infrastruktur Anda](tutorial-lambda-sam-confirm-components.md)

# Buat file Anda
<a name="tutorial-lambda-create-files"></a>

 Untuk membuat infrastruktur Anda, Anda harus membuat file-file berikut: 
+ `template.yml`
+ `myDateTimeFunction.js`
+ `beforeAllowTraffic.js`
+ `afterAllowTraffic.js`

**Topics**
+ [Buat template AWS SAM Anda](tutorial-lambda-sam-template.md)
+ [Buat file untuk fungsi Lambda Anda](tutorial-lambda-sam-create-lambda-function.md)
+ [Buat file untuk fungsi BeforeAllowTraffic Lambda Anda](tutorial-lambda-sam-create-lambda-before-traffic.md)
+ [Buat file untuk fungsi AfterAllowTraffic Lambda Anda](tutorial-lambda-sam-create-lambda-after-traffic.md)

# Buat template AWS SAM Anda
<a name="tutorial-lambda-sam-template"></a>

Buat file template AWS SAM yang menentukan komponen dalam infrastruktur Anda.

**Untuk membuat template AWS SAM Anda**

1.  Membuat sebuah direktori bernama `SAM-Tutorial`. 

1.  Di `SAM-Tutorial` direktori Anda, buat file bernama`template.yml`. 

1.  Salin kode YAML berikut ke dalam`template.yml`. Ini adalah AWS SAM template Anda. 

   ```
   AWSTemplateFormatVersion : '2010-09-09'
   Transform: AWS::Serverless-2016-10-31
   Description: A sample SAM template for deploying Lambda functions.
   
   Resources:
   # Details about the myDateTimeFunction Lambda function
     myDateTimeFunction:
       Type: AWS::Serverless::Function
       Properties:
         Handler: myDateTimeFunction.handler
         Runtime: nodejs18.x
   # Instructs your myDateTimeFunction is published to an alias named "live".      
         AutoPublishAlias: live
   # Grants this function permission to call lambda:InvokeFunction
         Policies:
           - Version: "2012-10-17"		 	 	 
             Statement: 
             - Effect: "Allow"
               Action: 
                 - "lambda:InvokeFunction"
               Resource: '*'
         DeploymentPreference:
   # Specifies the deployment configuration      
             Type: Linear10PercentEvery1Minute
   # Specifies Lambda functions for deployment lifecycle hooks
             Hooks:
               PreTraffic: !Ref beforeAllowTraffic
               PostTraffic: !Ref afterAllowTraffic
               
   # Specifies the BeforeAllowTraffic lifecycle hook Lambda function
     beforeAllowTraffic:
       Type: AWS::Serverless::Function
       Properties:
         Handler: beforeAllowTraffic.handler
         Policies:
           - Version: "2012-10-17"		 	 	 
   # Grants this function permission to call codedeploy:PutLifecycleEventHookExecutionStatus        
             Statement: 
             - Effect: "Allow"
               Action: 
                 - "codedeploy:PutLifecycleEventHookExecutionStatus"
               Resource:
                 !Sub 'arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:${ServerlessDeploymentApplication}/*'
           - Version: "2012-10-17"		 	 	 
   # Grants this function permission to call lambda:InvokeFunction        
             Statement: 
             - Effect: "Allow"
               Action: 
                 - "lambda:InvokeFunction"
               Resource: !Ref myDateTimeFunction.Version
         Runtime: nodejs18.x
   # Specifies the name of the Lambda hook function      
         FunctionName: 'CodeDeployHook_beforeAllowTraffic'
         DeploymentPreference:
           Enabled: false
         Timeout: 5
         Environment:
           Variables:
             NewVersion: !Ref myDateTimeFunction.Version
             
   # Specifies the AfterAllowTraffic lifecycle hook Lambda function
     afterAllowTraffic:
       Type: AWS::Serverless::Function
       Properties:
         Handler: afterAllowTraffic.handler
         Policies:
           - Version: "2012-10-17"		 	 	 
             Statement: 
   # Grants this function permission to call codedeploy:PutLifecycleEventHookExecutionStatus         
             - Effect: "Allow"
               Action: 
                 - "codedeploy:PutLifecycleEventHookExecutionStatus"
               Resource:
                 !Sub 'arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:${ServerlessDeploymentApplication}/*'
           - Version: "2012-10-17"		 	 	 
             Statement: 
   # Grants this function permission to call lambda:InvokeFunction          
             - Effect: "Allow"
               Action: 
                 - "lambda:InvokeFunction"
               Resource: !Ref myDateTimeFunction.Version
         Runtime: nodejs18.x
   # Specifies the name of the Lambda hook function      
         FunctionName: 'CodeDeployHook_afterAllowTraffic'
         DeploymentPreference:
           Enabled: false
         Timeout: 5
         Environment:
           Variables:
             NewVersion: !Ref myDateTimeFunction.Version
   ```

Template ini menentukan berikut ini. Untuk informasi selengkapnya, lihat [konsep AWS SAM templat](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html).

**Fungsi Lambda disebut `myDateTimeFunction`**  
 Ketika fungsi Lambda ini diterbitkan, `AutoPublishAlias` baris dalam template menautkannya ke alias bernama. `live` Kemudian dalam tutorial ini, pembaruan untuk fungsi ini memicu penerapan yang secara bertahap menggeser lalu lintas produksi dari versi asli ke versi yang diperbarui. AWS CodeDeploy 

**Dua fungsi validasi penerapan Lambda**  
 Fungsi Lambda berikut dijalankan selama kait siklus CodeDeploy hidup. Fungsi berisi kode yang memvalidasi penyebaran yang diperbarui. `myDateTimeFunction` Hasil tes validasi diteruskan CodeDeploy menggunakan metode `PutLifecycleEventHookExecutionStatus` API-nya. Jika tes validasi gagal, penerapan gagal dan dibatalkan.   
+  `CodeDeployHook_beforeAllowTraffic`berjalan selama `BeforeAllowTraffic` pengait. 
+  `CodeDeployHook_afterAllowTraffic`berjalan selama `AfterAllowTraffic` pengait. 
Nama kedua fungsi dimulai dengan`CodeDeployHook_`. `CodeDeployRoleForLambda`Peran memungkinkan panggilan ke `invoke` metode Lambda hanya dalam fungsi Lambda dengan nama yang dimulai dengan awalan ini. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'kait' untuk penerapan AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda) dan [PutLifecycleEventHookExecutionStatus](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_PutLifecycleEventHookExecutionStatus.html)di *Referensi CodeDeploy API*. 

**Deteksi otomatis fungsi Lambda yang diperbarui**  
 `AutoPublishAlias`Istilah ini memberi tahu kerangka kerja untuk mendeteksi kapan `myDateTimeFunction` fungsi berubah, dan kemudian menerapkannya menggunakan `live` alias. 

**Konfigurasi penerapan**  
 Konfigurasi deployment menentukan tingkat di mana CodeDeploy aplikasi Anda mengalihkan lalu lintas dari versi asli fungsi Lambda ke versi baru. Template ini menentukan konfigurasi deployment yang telah ditetapkan. `Linear10PercentEvery1Minute`   
 Anda tidak dapat menentukan konfigurasi penerapan kustom dalam template AWS SAM. Untuk informasi selengkapnya, lihat [Buat konfigurasi penerapan dengan CodeDeploy](deployment-configurations-create.md).

**Fungsi kait siklus hidup penerapan**  
 `Hooks`Bagian ini menentukan fungsi yang akan dijalankan selama kait peristiwa siklus hidup. `PreTraffic`menentukan fungsi yang berjalan selama `BeforeAllowTraffic` hook. `PostTraffic`menentukan fungsi yang berjalan selama `AfterAllowTraffic` hook. 

**Izin untuk Lambda untuk memanggil fungsi Lambda lain**  
 `lambda:InvokeFunction`Izin yang ditentukan memberikan peran yang digunakan oleh izin aplikasi AWS SAM untuk memanggil fungsi Lambda. Ini diperlukan saat `CodeDeployHook_afterAllowTraffic` fungsi `CodeDeployHook_beforeAllowTraffic` and memanggil fungsi Lambda yang diterapkan selama pengujian validasi. 

# Buat file untuk fungsi Lambda Anda
<a name="tutorial-lambda-sam-create-lambda-function"></a>

Buat file untuk fungsi yang Anda perbarui dan terapkan nanti dalam tutorial ini.

**catatan**  
 Fungsi Lambda dapat menggunakan runtime apa pun yang didukung oleh. AWS Lambda Untuk informasi selengkapnya, lihat [runtime AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). 

**Untuk membuat fungsi Lambda Anda**

1.  Buat file teks dan simpan seperti `myDateTimeFunction.js` di `SAM-Tutorial` direktori. 

1.  Salin kode Node.js berikut ke dalam`myDateTimeFunction.js`. 

   

   ```
   'use strict';
       
       exports.handler = function(event, context, callback) {
       
         if (event.body) {
           event = JSON.parse(event.body);
         }
       
         var sc; // Status code
         var result = ""; // Response payload
       
         switch(event.option) {
           case "date": 
             switch(event.period) {
               case "yesterday":
                 result = setDateResult("yesterday");
                 sc = 200;
                 break;
               case "today":
                 result = setDateResult();
                 sc = 200;
                 break;
               case "tomorrow":
                 result = setDateResult("tomorrow");
                 sc = 200;
                 break;
               default:
                 result = {
                   "error": "Must specify 'yesterday', 'today', or 'tomorrow'."
                 };
                 sc = 400;
                 break;
             }
             break;
             
       /*      Later in this tutorial, you update this function by uncommenting 
               this section. The framework created by AWS SAM detects the update 
               and triggers a deployment by CodeDeploy. The deployment shifts 
               production traffic to the updated version of this function.
               
               case "time":
               var d = new Date();
               var h = d.getHours();
               var mi = d.getMinutes();
               var s = d.getSeconds();
       
               result = {
                 "hour": h,
                 "minute": mi,
                 "second": s
               };
               sc = 200;
               break;
       */
             default:
               result = {
                 "error": "Must specify 'date' or 'time'."
               };
               sc = 400;
             break;
         }
       
         const response = {
           statusCode: sc,
           headers: { "Content-type": "application/json" },
           body: JSON.stringify( result )
         };
       
         callback(null, response);
       
         function setDateResult(option) {
       
           var d = new Date(); // Today
           var mo; // Month
           var da; // Day
           var y; // Year
       
           switch(option) {
             case "yesterday":
               d.setDate(d.getDate() - 1);
               break;
             case "tomorrow":
               d.setDate(d.getDate() + 1);
             default:
              break;
           }
       
           mo = d.getMonth() + 1; // Months are zero offset (0-11)
           da = d.getDate();
           y = d.getFullYear();
       
           result = {
             "month": mo,
             "day": da,
             "year": y
           };
       
           return result;
         }
       };
   ```

Fungsi Lambda mengembalikan hari, bulan, dan tahun untuk kemarin, hari ini, atau besok. Kemudian dalam tutorial ini, Anda menghapus kode komentar yang memperbarui fungsi untuk mengembalikan informasi tentang hari atau waktu yang Anda tentukan (misalnya, hari, bulan, dan tahun, atau jam, menit, dan detik saat ini). Kerangka kerja yang dibuat oleh AWS SAM mendeteksi dan menyebarkan versi fungsi yang diperbarui. 

**catatan**  
 Fungsi Lambda ini juga digunakan dalam tutorial. AWS Cloud9 AWS Cloud9 adalah lingkungan pengembangan terintegrasi berbasis cloud. Untuk informasi tentang cara membuat, mengeksekusi, memperbarui, dan men-debug fungsi ini AWS Cloud9, lihat [AWS Lambda tutorial untuk AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/tutorial-lambda.html). 

# Buat file untuk fungsi BeforeAllowTraffic Lambda Anda
<a name="tutorial-lambda-sam-create-lambda-before-traffic"></a>

Buat file untuk fungsi Lambda `beforeAllowTraffic` hook Anda.

1.  Buat file teks dan simpan seperti `beforeAllowTraffic.js` di `SAM-Tutorial` direktori. 

1.  Salin kode Node.js berikut ke dalam`beforeAllowTraffic.js`. Fungsi ini dijalankan selama hook penerapan Anda. `BeforeAllowTraffic` 

   ```
   'use strict';
       
       const AWS = require('aws-sdk'); 
       const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'});
       var lambda = new AWS.Lambda();
       
       exports.handler = (event, context, callback) => {
       
       	console.log("Entering PreTraffic Hook!");
       	
       	// Read the DeploymentId and LifecycleEventHookExecutionId from the event payload
         var deploymentId = event.DeploymentId;
       	var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
       
       	var functionToTest = process.env.NewVersion;
       	console.log("BeforeAllowTraffic hook tests started");
       	console.log("Testing new function version: " + functionToTest);
       
       	// Create parameters to pass to the updated Lambda function that
       	// include the newly added "time" option. If the function did not
       	// update, then the "time" option is invalid and function returns
       	// a statusCode of 400 indicating it failed.
       	var lambdaParams = {
       		FunctionName: functionToTest,    
       		Payload: "{\"option\": \"time\"}", 
       		InvocationType: "RequestResponse"
       	};
       
       	var lambdaResult = "Failed";
       	// Invoke the updated Lambda function.
       	lambda.invoke(lambdaParams, function(err, data) {
       		if (err){	// an error occurred
       			console.log(err, err.stack);
       			lambdaResult = "Failed";
       		}
       		else{	// successful response
       			var result = JSON.parse(data.Payload);
       			console.log("Result: " +  JSON.stringify(result));
             console.log("statusCode: " + result.statusCode);
             
             // Check if the status code returned by the updated
             // function is 400. If it is, then it failed. If 
             // is not, then it succeeded.
       			if (result.statusCode != "400"){
               console.log("Validation succeeded");
       				lambdaResult = "Succeeded";
             }
             else {
               console.log("Validation failed");
             }
       
       			// Complete the PreTraffic Hook by sending CodeDeploy the validation status
       			var params = {
       				deploymentId: deploymentId,
       				lifecycleEventHookExecutionId: lifecycleEventHookExecutionId,
       				status: lambdaResult // status can be 'Succeeded' or 'Failed'
       			};
       			
       			// Pass CodeDeploy the prepared validation test results.
       			codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) {
       				if (err) {
       					// Validation failed.
       					console.log("CodeDeploy Status update failed");
       					console.log(err, err.stack);
       					callback("CodeDeploy Status update failed");
       				} else {
       					// Validation succeeded.
       					console.log("CodeDeploy status updated successfully");
       					callback(null, "CodeDeploy status updated successfully");
       				}
       			});
       		}  
       	});
       }
   ```

# Buat file untuk fungsi AfterAllowTraffic Lambda Anda
<a name="tutorial-lambda-sam-create-lambda-after-traffic"></a>

Buat file untuk fungsi Lambda `afterAllowTraffic` hook Anda.

1.  Buat file teks dan simpan seperti `afterAllowTraffic.js` di `SAM-Tutorial` direktori. 

1.  Salin kode Node.js berikut ke dalam`afterAllowTraffic.js`. Fungsi ini dijalankan selama hook penerapan Anda. `AfterAllowTraffic` 

   ```
   'use strict';
       
       const AWS = require('aws-sdk');
       const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'});
       var lambda = new AWS.Lambda();
       
       exports.handler = (event, context, callback) => {
       
       	console.log("Entering PostTraffic Hook!");
       	
       	// Read the DeploymentId and LifecycleEventHookExecutionId from the event payload
         var deploymentId = event.DeploymentId;
       	var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
       
       	var functionToTest = process.env.NewVersion;
       	console.log("AfterAllowTraffic hook tests started");
       	console.log("Testing new function version: " + functionToTest);
       
       	// Create parameters to pass to the updated Lambda function that
       	// include the original "date" parameter. If the function did not 
       	// update as expected, then the "date" option might be invalid. If 
       	// the parameter is invalid, the function returns
       	// a statusCode of 400 indicating it failed.
       	var lambdaParams = {
       		FunctionName: functionToTest,    
       		Payload: "{\"option\": \"date\", \"period\": \"today\"}", 
       		InvocationType: "RequestResponse"
       	};
       
       	var lambdaResult = "Failed";
       	// Invoke the updated Lambda function.
       	lambda.invoke(lambdaParams, function(err, data) {
       		if (err){	// an error occurred
       			console.log(err, err.stack);
       			lambdaResult = "Failed";
       		}
       		else{	// successful response
       			var result = JSON.parse(data.Payload);
       			console.log("Result: " +  JSON.stringify(result));
             console.log("statusCode: " + result.statusCode);
             
             // Check if the status code returned by the updated
             // function is 400. If it is, then it failed. If 
             // is not, then it succeeded.
       			if (result.statusCode != "400"){
               console.log("Validation of time parameter succeeded");
       				lambdaResult = "Succeeded";
             }
             else {
               console.log("Validation failed");
             }
       
       			// Complete the PostTraffic Hook by sending CodeDeploy the validation status
       			var params = {
       				deploymentId: deploymentId,
       				lifecycleEventHookExecutionId: lifecycleEventHookExecutionId,
       				status: lambdaResult // status can be 'Succeeded' or 'Failed'
       			};
       			
       			// Pass CodeDeploy the prepared validation test results.
       			codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) {
       				if (err) {
       					// Validation failed.
       					console.log("CodeDeploy Status update failed");
       					console.log(err, err.stack);
       					callback("CodeDeploy Status update failed");
       				} else {
       					// Validation succeeded.
       					console.log("CodeDeploy status updated successfully");
       					callback(null, "CodeDeploy status updated successfully");
       				}
       			});
       		}  
       	});
       }
   ```

# Package aplikasi AWS SAM
<a name="tutorial-lambda-sam-package"></a>

 Anda sekarang harus memiliki empat file di `SAM-Tutorial` direktori Anda: 
+ `beforeAllowTraffic.js`
+ `afterAllowTraffic.js`
+ `myDateTimeFunction.js`
+ `template.yml`

 Anda sekarang siap menggunakan **sam package** perintah AWS SAM untuk membuat dan mengemas artefak untuk fungsi CodeDeploy dan aplikasi Lambda Anda. Artefak diunggah ke ember S3. Output dari perintah adalah file baru bernama`package.yml`. File ini digunakan oleh **sam deploy** perintah AWS SAM pada langkah berikutnya. 

**catatan**  
 Untuk informasi selengkapnya tentang **sam package** perintah, lihat [referensi perintah AWS SAM CLI di Panduan AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) *Pengembang*. 

 Di `SAM-Tutorial` direktori, jalankan yang berikut ini. 

```
sam package \
  --template-file template.yml \
  --output-template-file package.yml \
  --s3-bucket amzn-s3-demo-bucket
```

Untuk `s3-bucket` parameternya, tentukan bucket Amazon S3 yang Anda buat sebagai prasyarat untuk tutorial ini. `output-template-file`Menentukan nama file baru yang digunakan oleh **sam deploy** perintah AWS SAM.

# Menyebarkan aplikasi AWS SAM
<a name="tutorial-lambda-sam-deploy"></a>

 Gunakan **sam deploy** perintah AWS SAM dengan `package.yml` file untuk membuat fungsi Lambda Anda dan CodeDeploy aplikasi dan kelompok penyebaran menggunakan. CloudFormation

**catatan**  
Untuk informasi selengkapnya tentang **sam deploy** perintah, lihat [referensi perintah AWS SAM CLI di Panduan AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) *Pengembang*. 

 Dalam `SAM-Tutorial` direktori, jalankan perintah berikut. 

```
sam deploy \
  --template-file package.yml \
  --stack-name my-date-time-app \
  --capabilities CAPABILITY_IAM
```

 `--capabilities CAPABILITY_IAM`Parameter ini diperlukan untuk mengotorisasi CloudFormation untuk membuat peran IAM. 

# (Opsional) memeriksa dan menguji infrastruktur Anda
<a name="tutorial-lambda-sam-confirm-components"></a>

 Topik ini menunjukkan cara melihat komponen infrastruktur Anda dan menguji fungsi Lambda Anda. 

**Untuk melihat hasil tumpukan Anda setelah Anda menjalankan `sam deploy`**

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

1.  Di panel navigasi, pilih **Stacks (Tumpukan)**. `my-date-time-app`Tumpukan muncul di bagian atas. 

1.  Pilih tab **Acara** untuk melihat acara mana yang selesai. Anda dapat melihat peristiwa saat pembuatan tumpukan sedang berlangsung. Saat pembuatan tumpukan selesai, Anda dapat melihat semua peristiwa pembuatan tumpukan. 

1.  Dengan tumpukan Anda dipilih, pilih **Resources**. Di kolom **Type**, Anda dapat melihat fungsi Lambda Anda,, `myDateTimeFunction``CodeDeployHook_beforeAllowTraffic`, dan. `CodeDeployHook_afterAllowTraffic` Kolom **ID Fisik** dari setiap fungsi Lambda Anda berisi tautan untuk melihat fungsi di konsol Lambda. 
**catatan**  
 Nama fungsi `myDateTimeFunction` Lambda ditambahkan dengan nama CloudFormation tumpukan dan memiliki pengenal yang ditambahkan ke dalamnya, jadi sepertinya. `my-date-time-app-myDateTimeFunction-123456ABCDEF` 

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

1.  **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.** 

1.  Anda akan melihat CodeDeploy aplikasi baru yang dibuat CloudFormation dengan nama yang dimulai dengan`my-date-time-app-ServerlessDeploymentApplication`. Pilih aplikasi ini. 

1.  Anda akan melihat grup penyebaran dengan nama yang dimulai dengan`my-date-time-app-myDateTimeFunctionDeploymentGroup`. Pilih grup penyebaran ini. 

    **Di bawah **konfigurasi Deployment**, Anda akan melihatCodeDeployDefault. LambdaLinear10 PercentEvery 1 Menit**. 

**(Opsional) untuk menguji fungsi Anda (konsol)**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1.  Dari panel navigasi, pilih `my-date-time-app-myDateTimeFunction` fungsi Anda. Di konsol, namanya berisi pengidentifikasi, jadi sepertinya`my-date-time-app-myDateTimeFunction-123456ABCDEF`. 

1.  Pilih **Uji**. 

1.  Dalam **nama Acara**, masukkan nama untuk acara pengujian Anda. 

1.  Masukkan yang berikut ini untuk acara pengujian Anda, lalu pilih **Buat**. 

   ```
   {
     "option": "date",
     "period": "today"
   }
   ```

1.  Pilih **Uji**. Anda hanya akan melihat acara pengujian Anda dalam daftar acara pengujian. 

    Untuk **hasil Eksekusi**, Anda akan melihat **berhasil.** 

1.  Di bawah **Hasil eksekusi**, perluas **Detail** untuk melihat hasilnya. Anda harus melihat bulan, hari, dan tahun saat ini. 

**(Opsional) untuk menguji fungsi Anda (AWS CLI)**

1.  Temukan ARN fungsi Lambda Anda. Itu muncul di bagian atas konsol Lambda saat Anda melihat fungsi Anda. 

1.  Jalankan perintah berikut. Ganti *your-function-arn* dengan fungsi ARN. 

   ```
   aws lambda invoke \
   --function your-function-arn \
   --cli-binary-format raw-in-base64-out \
   --payload "{\"option\": \"date\", \"period\": \"today\"}" out.txt
   ```

1.  Buka `out.txt` untuk mengonfirmasi hasilnya berisi bulan, hari, dan tahun saat ini. 

# Langkah 2: Perbarui fungsi Lambda
<a name="tutorial-lambda-sam-update-function"></a>

 Dalam topik ini, Anda memperbarui `myDateTimeFunction.js` file Anda. Pada langkah berikutnya, Anda menggunakan file untuk menyebarkan fungsi yang diperbarui. Ini memicu CodeDeploy untuk menerapkannya dengan mengalihkan lalu lintas produksi dari versi fungsi Lambda saat ini ke versi yang diperbarui. 

**Untuk memperbarui fungsi Lambda Anda**

1.  Buka `myDateTimeFunction.js`. 

1.  Hapus dua penanda komentar (” `/*` "dan" `*/` “) dan teks penjelasan di awal dan akhir yang `case` disebutkan `time` di `switch` blok. 

    Kode yang tidak dikomentari memungkinkan Anda meneruskan parameter baru,`time`, ke fungsi. Jika Anda meneruskan `time` ke fungsi yang diperbarui, ia mengembalikan arus`hour`,`minute`, dan`second`. 

1.  Simpan `myDateTimeFunction.js`. Seharusnya terlihat seperti berikut: 

   ```
   'use strict';
   
   exports.handler = function(event, context, callback) {
   
     if (event.body) {
       event = JSON.parse(event.body);
     }
   
     var sc; // Status code
     var result = ""; // Response payload
   
     switch(event.option) {
       case "date":
         switch(event.period) {
           case "yesterday":
             result = setDateResult("yesterday");
             sc = 200;
             break;
           case "today":
             result = setDateResult();
             sc = 200;
             break;
           case "tomorrow":
             result = setDateResult("tomorrow");
             sc = 200;
             break;
           default:
             result = {
               "error": "Must specify 'yesterday', 'today', or 'tomorrow'."
             };
             sc = 400;
             break;
         }
         break;
         case "time":
           var d = new Date();
           var h = d.getHours();
           var mi = d.getMinutes();
           var s = d.getSeconds();
   
           result = {
             "hour": h,
             "minute": mi,
             "second": s
           };
           sc = 200;
           break;
   
         default:
           result = {
             "error": "Must specify 'date' or 'time'."
           };
           sc = 400;
         break;
     }
   
     const response = {
       statusCode: sc,
       headers: { "Content-type": "application/json" },
       body: JSON.stringify( result )
     };
   
     callback(null, response);
   
     function setDateResult(option) {
   
       var d = new Date(); // Today
       var mo; // Month
       var da; // Day
       var y; // Year
   
       switch(option) {
         case "yesterday":
           d.setDate(d.getDate() - 1);
           break;
         case "tomorrow":
           d.setDate(d.getDate() + 1);
         default:
          break;
       }
   
       mo = d.getMonth() + 1; // Months are zero offset (0-11)
       da = d.getDate();
       y = d.getFullYear();
   
       result = {
         "month": mo,
         "day": da,
         "year": y
       };
   
       return result;
     }
   };
   ```

# Langkah 3: Menyebarkan fungsi Lambda yang diperbarui
<a name="tutorial-lambda-sam-deploy-update"></a>

 Pada langkah ini, Anda menggunakan pembaruan `myDateTimeFunction.js` untuk memperbarui dan memulai penerapan fungsi Lambda Anda. Anda dapat memantau kemajuan penerapan di AWS Lambda konsol CodeDeploy atau. 

 `AutoPublishAlias: live`Baris di AWS SAM template Anda menyebabkan infrastruktur Anda mendeteksi pembaruan fungsi yang menggunakan `live` alias. Pembaruan fungsi Anda memicu penerapan yang menggeser lalu lintas produksi dari versi asli fungsi ke versi yang diperbarui. CodeDeploy 

 **sam deploy**Perintah **sam package** dan digunakan untuk memperbarui dan memicu penyebaran fungsi Lambda Anda. Anda menjalankan perintah ini di [Package aplikasi AWS SAM](tutorial-lambda-sam-package.md) dan[Menyebarkan aplikasi AWS SAM](tutorial-lambda-sam-deploy.md). 

**Untuk menerapkan fungsi Lambda Anda yang diperbarui**

1.  Dalam `SAM-Tutorial` direktori, jalankan perintah berikut. 

   ```
   sam package \
     --template-file template.yml \
     --output-template-file package.yml  \
     --s3-bucket amzn-s3-demo-bucket
   ```

    Ini membuat kumpulan artefak baru yang mereferensikan fungsi Lambda Anda yang diperbarui di bucket S3 Anda. 

1.  Dalam `SAM-Tutorial` direktori, jalankan perintah berikut. 

   ```
   sam deploy \
     --template-file package.yml \
     --stack-name my-date-time-app \
     --capabilities CAPABILITY_IAM
   ```

   Karena nama tumpukan masih`my-date-time-app`, CloudFormation mengakui bahwa ini adalah pembaruan tumpukan. Untuk melihat tumpukan yang diperbarui, kembalikan CloudFormation konsol, dan dari panel navigasi, pilih **Tumpukan**.

**(Opsional) untuk melihat lalu lintas selama penerapan (CodeDeploy konsol)**

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

1.  Di panel navigasi, perluas **Aplikasi**, lalu pilih **my-date-time-app- ServerlessDeploymentApplication** aplikasi Anda. 

1.  Di **grup Deployment**, pilih grup penerapan aplikasi Anda. Statusnya harus **Sedang berlangsung**. 

1.  Dalam **riwayat grup Deployment**, pilih penerapan yang sedang berlangsung. 

   Bilah kemajuan **pergeseran lalu lintas** dan persentase di kotak **Asli** dan **Penggantian** di halaman ini menampilkan kemajuannya.   
![\[Bagian kemajuan pergeseran lalu lintas CodeDeploy konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/lambda-tutorial-codedeploy-console-20-percent-deployed.png)

**(Opsional) untuk melihat lalu lintas selama penerapan (konsol Lambda)**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1.  Dari panel navigasi, pilih `my-date-time-app-myDateTimeFunction` fungsi Anda. Di konsol, namanya berisi pengidentifikasi, jadi sepertinya`my-date-time-app-myDateTimeFunction-123456ABCDEF`. 

1.  Pilih **Alias**, lalu pilih **live**. 

Bobot di sebelah versi fungsi asli Anda (versi 1) dan versi fungsi yang diperbarui (versi 2) menunjukkan berapa banyak lalu lintas yang disajikan ke setiap versi pada saat halaman AWS Lambda konsol ini dimuat. Halaman tidak memperbarui bobot dari waktu ke waktu. Jika Anda me-refresh halaman sekali dalam satu menit, berat untuk versi 1 berkurang 10 persen dan berat untuk versi 2 meningkat 10 persen hingga bobot untuk versi 2 adalah 100. 

![\[Bagian alias CodeDeploy konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/lambda-tutorial-lambda-console-20-percent-deployed.png)


# Langkah 4: Lihat hasil penerapan Anda
<a name="tutorial-lambda-sam-deploy-view-results"></a>

Pada langkah ini, Anda melihat hasil penerapan Anda. Jika penerapan berhasil, Anda dapat mengonfirmasi bahwa fungsi Lambda yang diperbarui menerima lalu lintas produksi. Jika penerapan gagal, Anda dapat menggunakan CloudWatch Log untuk melihat output pengujian validasi dalam fungsi Lambda yang berjalan selama hoook siklus hidup penerapan. 

**Topics**
+ [Uji fungsi yang Anda gunakan](#tutorial-lambda-sam-deploy-test-deployed-function)
+ [Lihat peristiwa hook di CloudWatch Log](#tutorial-lambda-view-hook-events)

## Uji fungsi yang Anda gunakan
<a name="tutorial-lambda-sam-deploy-test-deployed-function"></a>

 **sam deploy**Perintah memperbarui fungsi `my-date-time-app-myDateTimeFunction` Lambda. Versi fungsi diperbarui ke 2 dan ditambahkan ke `live` alias. 

**Untuk melihat pembaruan di konsol Lambda**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1.  Dari panel navigasi, pilih `my-date-time-app-myDateTimeFunction` fungsinya. Di konsol, namanya berisi pengidentifikasi, jadi sepertinya`my-date-time-app-myDateTimeFunction-123456ABCDEF`. 

1.  Pilih **Kualifikasi**, lalu pilih **Alias**. Setelah penerapan selesai (sekitar 10 menit), untuk `live` alias, Anda akan melihat **Versi: 2**.  
![\[Bagian alias CodeDeploy konsol.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/lambda-tutorial-function-version.png)

1.  Dalam **kode Fungsi**, lihat kode sumber untuk fungsi Anda. Perubahan Anda akan muncul. 

1.  (Opsional) Anda dapat menggunakan instruksi pengujian [Langkah 2: Perbarui fungsi Lambda](tutorial-lambda-sam-update-function.md) untuk menguji fungsi Anda yang diperbarui. Buat acara pengujian baru dengan muatan berikut, lalu konfirmasikan hasilnya berisi jam, menit, dan detik saat ini. 

   ```
   {
       "option": "time"
     }
   ```

    Untuk menggunakan fungsi AWS CLI to test yang diperbarui, jalankan perintah berikut, lalu buka `out.txt` untuk mengonfirmasi hasilnya berisi jam, menit, dan detik saat ini. 

   ```
   aws lambda invoke --function your-function-arn --payload "{\"option\": \"time\"}" out.txt 
   ```
**catatan**  
 Jika Anda menggunakan AWS CLI untuk menguji fungsi Anda sebelum penerapan selesai, Anda mungkin menerima hasil yang tidak terduga. Ini karena CodeDeploy secara bertahap menggeser 10 persen lalu lintas ke versi yang diperbarui setiap menit. Selama penyebaran, beberapa lalu lintas masih menunjuk ke versi aslinya, jadi `aws lambda invoke` mungkin menggunakan versi aslinya. Setelah 10 menit, penyebaran selesai dan semua lalu lintas menunjuk ke versi baru fungsi. 

## Lihat peristiwa hook di CloudWatch Log
<a name="tutorial-lambda-view-hook-events"></a>

 Selama `BeforeAllowTraffic` hook, CodeDeploy jalankan fungsi `CodeDeployHook_beforeAllowTraffic` Lambda Anda. Selama `AfterAllowTraffic` hook, CodeDeploy jalankan fungsi `CodeDeployHook_afterAllowTraffic` Lambda Anda. Setiap fungsi menjalankan uji validasi yang memanggil versi terbaru dari fungsi Anda menggunakan parameter baru`time`. Jika pembaruan fungsi Lambda Anda berhasil, `time` opsi tidak menyebabkan kesalahan dan validasi berhasil. Jika fungsi tidak diperbarui, parameter yang tidak dikenal menyebabkan kesalahan dan validasi gagal. Tes validasi ini hanya untuk tujuan demonstrasi. Anda menulis pengujian Anda sendiri untuk memvalidasi penerapan Anda. Anda dapat menggunakan konsol CloudWatch Log untuk melihat pengujian validasi Anda. 

**Untuk melihat acara CodeDeploy hook Anda**

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

1.  Dari panel navigasi, pilih **Log**. 

1.  Dari daftar grup log, pilih**/aws/lambda/CodeDeployHook\$1 beforeAllowTraffic** atau**/aws/lambda/CodeDeployHook\$1 afterAllowTraffic**. 

1.  Pilih pengaliran log. Anda harus melihat hanya satu. 

1.  Perluas acara untuk melihat detailnya.   
![\[Aliran log dari grup CodeDeployHook log.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/lambda-tutorial-cloudwatch.png)

# Langkah 5: Bersihkan
<a name="tutorial-lambda-clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat oleh AWS SAM template Anda dan CloudWatch log yang dibuat oleh fungsi validasi Lambda Anda.

**Untuk menghapus CloudFormation tumpukan Anda**

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

1. Di kolom **Stacks**, pilih `my-date-time-app` tumpukan Anda, lalu pilih **Hapus**.

1. Saat diminta, pilih **Hapus tumpukan**. Fungsi Lambda, grup CodeDeploy aplikasi dan penyebaran, dan peran IAM yang dibuat oleh dihapus. AWS SAM 

**Untuk menghapus log Anda di CloudWatch Log**

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

1.  Dari panel navigasi, pilih **Log**. 

1.  Dari daftar grup log, pilih tombol di sebelah**/aws/lambda/CodeDeployHook\$1 beforeAllowTraffic**. 

1.  Dari **Tindakan**, pilih **Hapus grup log**, lalu pilih **Ya, Hapus**. 

1.  Dari daftar grup log, pilih tombol di sebelah**/aws/lambda/CodeDeployHook\$1 afterAllowTraffic**. 

1.  Dari **Tindakan**, pilih **Hapus grup log**, lalu pilih **Ya, Hapus**. 