

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

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