

 AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. [Pelajari selengkapnya](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# Tutorial untuk AWS Cloud9
<a name="tutorials"></a>

Apakah Anda baru AWS Cloud9? Ikuti tur IDE di [Memulai: tutorial basic](tutorials-basic.md).

Bereksperimenlah dengan tutorial dan kode sampel ini untuk meningkatkan pengetahuan dan kepercayaan diri Anda menggunakan AWS Cloud9 berbagai bahasa dan AWS layanan pemrograman.

**Topics**
+ [AWS CLI dan tutorial aws-shell](sample-aws-cli.md)
+ [AWS CodeCommit tutorial](sample-codecommit.md)
+ [Amazon DynamoDB tutorial](sample-dynamodb.md)
+ [AWS CDK tutorial](sample-cdk.md)
+ [Tutorial LAMP](sample-lamp.md)
+ [WordPress tutorial](sample-wordpress.md)
+ [Tutorial Java](sample-java.md)
+ [C \$1\$1 tutorial](sample-cplusplus.md)
+ [Tutorial Python](sample-python.md)
+ [Tutorial.NET](sample-dotnetcore.md)
+ [Tutorial Node.js](sample-nodejs.md)
+ [PHP tutorial](sample-php.md)
+ [Ruby](tutorial-ruby.md)
+ [Pergi tutorial](sample-go.md)
+ [TypeScript tutorial](sample-typescript.md)
+ [Tutorial Docker](sample-docker.md)
+ [Tutorial Terkait](#samples-additonal)

# AWS CLI dan tutorial aws-shell untuk AWS Cloud9
<a name="sample-aws-cli"></a>

Tutorial berikut memungkinkan Anda untuk mengatur AWS Command Line Interface (AWS CLI), aws-shell, atau keduanya dalam lingkungan AWS Cloud9 pengembangan. The AWS CLI and the aws-shell adalah alat terpadu yang menyediakan antarmuka yang konsisten untuk berinteraksi dengan semua bagian. AWS Anda dapat menggunakan AWS CLI alih-alih Konsol Manajemen AWS untuk menjalankan perintah dengan cepat untuk berinteraksi AWS, dan beberapa perintah ini dapat dijalankan dengan AWS CLI atau menggunakan alternatif AWS CloudShell.

Untuk informasi selengkapnya tentang AWS CLI, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/). Untuk aws-shell, lihat sumber daya berikut:
+  [aws-shell di situs](https://github.com/awslabs/aws-shell) web GitHub
+  [aws-shell](https://pypi.python.org/pypi/aws-shell) di situs web pip

Untuk daftar perintah yang dapat Anda jalankan dengan AWS CLI untuk berinteraksi AWS, lihat [Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/). Anda dapat menggunakan perintah yang sama dengan AWS CloudShell, kecuali bahwa Anda memulai perintah tanpa `aws` awalan.

Membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-aws-cli-prereqs)
+ [Langkah 1: Instal AWS CLI, aws-shell, atau keduanya di lingkungan Anda](#sample-aws-cli-install)
+ [Langkah 2: Mengatur pengelolaan kredensial di lingkungan Anda](#sample-aws-cli-creds)
+ [Langkah 3: Jalankan perintah dasar dengan AWS CLI atau aws-shell di lingkungan Anda](#sample-aws-cli-run)
+ [Langkah 4: Membersihkan](#sample-aws-cli-clean-up)

## Prasyarat
<a name="sample-aws-cli-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Instal AWS CLI, aws-shell, atau keduanya di lingkungan Anda
<a name="sample-aws-cli-install"></a>

Pada langkah ini, Anda menggunakan AWS Cloud9 IDE untuk menginstal AWS CLI, aws-shell, atau keduanya di lingkungan Anda sehingga Anda dapat menjalankan perintah untuk berinteraksi. AWS

Jika Anda menggunakan lingkungan pengembangan AWS Cloud9 EC2 dan Anda hanya ingin menggunakannya AWS CLI, Anda dapat melompat ke [Langkah 3: Jalankan perintah dasar dengan AWS CLI atau aws-shell di lingkungan Anda](#sample-aws-cli-run) depan. Ini karena AWS CLI sudah diinstal di lingkungan EC2, dan satu set kredensyal AWS akses sudah diatur di lingkungan. Untuk informasi selengkapnya, lihat [AWS kredensi sementara yang dikelola](security-iam.md#auth-and-access-control-temporary-managed-credentials).

Jika Anda tidak menggunakan lingkungan EC2, lakukan hal berikut untuk memasang AWS CLI:

1. Dengan lingkungan Anda terbuka, di IDE, periksa AWS CLI apakah sudah diinstal. Di terminal, jalankan perintah ** `aws --version` **. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika diinstal, nomor versi ditampilkan, dengan informasi seperti nomor versi Python dan nomor versi sistem operasi instans Amazon EC2 Anda atau server Anda sendiri. AWS CLI Jika AWS CLI sudah diinstal, lewati ke depan[Langkah 2: Mengatur pengelolaan kredensial di lingkungan Anda](#sample-aws-cli-creds).

1. Untuk menginstal AWS CLI, lihat [Menginstal AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) di *Panduan AWS Command Line Interface Pengguna*. Sebagai contoh, untuk lingkungan EC2 yang menjalankan Amazon Linux, jalankan tiga perintah ini, satu per satu, di terminal untuk memasang AWS CLI.

   ```
   sudo yum -y update          # Install the latest system updates.
   sudo yum -y install aws-cli # Install the AWS CLI.
   aws --version               # Confirm the AWS CLI was installed.
   ```

   Untuk lingkungan EC2 yang menjalankan Server Ubuntu, jalankan tiga perintah ini sebagai gantinya, satu per satu, di terminal untuk memasang AWS CLI.

   ```
   sudo apt update             # Install the latest system updates.
   sudo apt install -y awscli  # Install the AWS CLI.
   aws --version               # Confirm the AWS CLI was installed.
   ```

Jika Anda ingin memasang aws-shell, lakukan hal berikut:

1. Dengan lingkungan Anda terbuka, di IDE, periksa apakah aws-shell sudah terpasang. Di terminal, jalankan perintah ** `aws-shell` **. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika aws-shell terpasang, prompt `aws>` ditampilkan. Jika aws-shell terpasang, lewati ke [Langkah 2: Mengatur pengelolaan kredensial di lingkungan Anda](#sample-aws-cli-creds).

1. Untuk memasang aws-shell, Anda menggunakan pip. Untuk menggunakan pip, Anda harus memiliki Python yang sudah terpasang.

   Untuk memeriksa apakah Python sudah terpasang (dan untuk memasangnya jika diperlukan), ikuti instruksi di [Langkah 1: Pasang Python](sample-python.md#sample-python-install) dalam *Sampel Python*, lalu kembali ke topik ini.

   Untuk memeriksa apakah pip sudah terpasang, di terminal, jalankan perintah ** `pip --version` **. Jika pip terpasang, nomor versi akan ditampilkan. Jika pip tidak terpasang, pasang dengan menjalankan ketiga perintah ini, satu per satu, di terminal.

   ```
   wget https://bootstrap.pypa.io/get-pip.py # Get the pip install file.
   sudo python get-pip.py                    # Install pip. (You might need to run 'sudo python2 get-pip.py' or 'sudo python3 get-pip.py' instead, depending on how Python is installed.)
   rm get-pip.py                             # Delete the pip install file, as it is no longer needed.
   ```

1. Untuk menggunakan pip untuk memasang aws-shell, jalankan perintah berikut.

   ```
   sudo pip install aws-shell
   ```

## Langkah 2: Mengatur pengelolaan kredensial di lingkungan Anda
<a name="sample-aws-cli-creds"></a>

Setiap kali Anda menggunakan AWS CLI atau aws-shell untuk memanggil AWS layanan, Anda harus memberikan satu set kredensyal dengan panggilan tersebut. Kredensyal ini menentukan apakah AWS CLI atau aws-shell memiliki izin yang sesuai untuk melakukan panggilan itu. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Jika Anda menggunakan lingkungan pengembangan AWS Cloud9 EC2, Anda dapat melompat ke [Langkah 3: Jalankan perintah dasar dengan AWS CLI atau aws-shell di lingkungan Anda](#sample-aws-cli-run) depan. Ini karena kredensial sudah diatur di lingkungan EC2. Untuk informasi selengkapnya, lihat [AWS kredensi sementara yang dikelola](security-iam.md#auth-and-access-control-temporary-managed-credentials).

Jika Anda tidak menggunakan lingkungan EC2, Anda harus menyimpan kredensial Anda secara manual di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

## Langkah 3: Jalankan perintah dasar dengan AWS CLI atau aws-shell di lingkungan Anda
<a name="sample-aws-cli-run"></a>

Pada langkah ini, Anda menggunakan AWS CLI atau aws-shell di lingkungan Anda untuk membuat bucket di Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket.

1. Jika Anda ingin menggunakan aws-shell tetapi belum memulainya, mulai aws-shell dengan menjalankan perintah `aws-shell`. Prompt `aws>` ditampilkan.

1. Buat bucket. Jalankan **`aws s3 mb`**perintah dengan **`s3 mb`**perintah AWS CLI or dengan aws-shell, berikan nama bucket untuk dibuat. Dalam contoh ini, kami menggunakan bucket bernama`cloud9-123456789012-bucket`, di `123456789012` mana ID AWS akun Anda. Jika Anda menggunakan nama yang berbeda, gantilah sepanjang langkah ini.

   ```
   aws s3 mb s3://cloud9-123456789012-bucket # For the AWS CLI.
   s3 mb s3://cloud9-123456789012-bucket     # For the aws-shell.
   ```
**catatan**  
Nama bucket harus unik di semua AWS, bukan hanya AWS akun Anda. Nama bucket yang disarankan sebelumnya dapat membantu Anda menemukan nama bucket yang unik. Jika Anda mendapatkan pesan yang berisi kesalahan `BucketAlreadyExists`, Anda harus menjalankan perintah lagi dengan nama bucket yang berbeda.

1. Buat daftar bucket Anda yang tersedia. Jalankan **`aws s3 ls`**perintah dengan AWS CLI atau **`s3 ls`**perintah dengan aws-shell. Daftar bucket Anda yang tersedia akan ditampilkan.

1. Hapus bucket. Jalankan **`aws s3 rb`**perintah dengan AWS CLI atau **`s3 rb`**perintah dengan aws-shell, berikan nama bucket untuk dihapus.

   ```
   aws s3 rb s3://cloud9-123456789012-bucket # For the AWS CLI.
   s3 rb s3://cloud9-123456789012-bucket     # For the aws-shell.
   ```

   Untuk mengonfirmasi apakah bucket telah dihapus, jalankan **`aws s3 ls`**perintah lagi dengan AWS CLI atau **`s3 ls`**perintah lagi dengan aws-shell. Nama bucket yang telah dihapus seharusnya tidak lagi muncul dalam daftar.
**catatan**  
Anda tidak perlu menghapus bucket jika Anda ingin terus menggunakannya. Untuk informasi selengkapnya, lihat [Menambahkan Objek ke Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-an-object-bucket.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. Lihat juga [perintah s3](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html.html) di *Referensi Perintah AWS CLI *. (Ingat, jika Anda tidak menghapus bucket, hal itu dapat mengakibatkan tagihan berkelanjutan ke AWS akun Anda.)

Untuk terus bereksperimen dengan AWS CLI, lihat [Bekerja dengan Amazon Web Services](https://docs.aws.amazon.com/cli/latest/userguide/chap-working-with-services.html) di *Panduan AWS Command Line Interface Pengguna* serta [Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/). Untuk melanjutkan eksperimen dengan aws-shell, lihat [Referensi Perintah AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/), perhatikan bahwa Anda memulai perintah tanpa prefiks `aws`.

## Langkah 4: Membersihkan
<a name="sample-aws-cli-clean-up"></a>

Jika Anda menggunakan aws-shell, Anda dapat berhenti menggunakannya dengan menjalankan perintah ** `.exit` ** atau ** `.quit` **.

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# AWS CodeCommit tutorial untuk AWS Cloud9
<a name="sample-codecommit"></a>

Anda dapat menggunakan AWS CodeCommit tutorial untuk mengatur lingkungan AWS Cloud9 pengembangan untuk berinteraksi dengan repositori kode jarak jauh di. CodeCommit CodeCommit adalah layanan kontrol kode sumber yang dapat Anda gunakan untuk menyimpan dan mengelola Git repositori secara pribadi di. AWS Cloud Untuk informasi selengkapnya CodeCommit, lihat [Panduan AWS CodeCommit Pengguna](https://docs.aws.amazon.com/codecommit/latest/userguide/).

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya untuk Anda Akun AWS. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan. CodeCommit Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga AWS CodeCommit](https://aws.amazon.com/codecommit/pricing/).
+  [Prasyarat](#sample-codecommit-prereqs) 
+  [Langkah 1: Siapkan grup IAM Anda dengan izin akses yang diperlukan](#sample-codecommit-permissions) 
+  [Langkah 2: Buat repositori di AWS CodeCommit](#sample-codecommit-create-repo) 
+  [Langkah 3: Hubungkan lingkungan Anda ke repositori jarak jauh](#sample-codecommit-connect-repo) 
+  [Langkah 4: Kloning repositori jarak jauh ke lingkungan Anda](#sample-codecommit-clone-repo) 
+  [Langkah 5: Tambahkan file ke repositori](#sample-codecommit-add-files) 
+  [Langkah 6: Bersihkan](#sample-codecommit-clean-up) 

## Prasyarat
<a name="sample-codecommit-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Mengatur grup IAM Anda dengan izin akses yang diperlukan
<a name="sample-codecommit-permissions"></a>

Misalkan AWS kredensi Anda terkait dengan pengguna administrator di Anda Akun AWS, dan Anda ingin menggunakan pengguna itu untuk bekerja dengan CodeCommit Kemudian, lewati ke [Langkah 2: Buat Repositori](#sample-codecommit-create-repo) di. AWS CodeCommit

Anda dapat menyelesaikan langkah ini menggunakan [Konsol Manajemen AWS](#sample-codecommit-permissions-console) atau [Antarmuka Baris Perintah AWS (AWS CLI)](#sample-codecommit-permissions-cli).

### Atur grup IAM Anda dengan izin akses yang diperlukan menggunakan konsol tersebut
<a name="sample-codecommit-permissions-console"></a>

1. Masuk ke Konsol Manajemen AWS, jika Anda belum masuk.

   Untuk langkah ini, kami sarankan Anda masuk menggunakan kredensi untuk pengguna administrator di Anda. Akun AWS Jika Anda tidak dapat melakukan ini, tanyakan kepada Akun AWS administrator Anda.

1. Buka konsol IAM. Untuk melakukannya, di bilah navigasi konsol tersebut, pilih **Layanan**. Kemudian, pilih **IAM**.

1. Pilih **Grup**.

1. Pilih nama grup.

1. Pada tab **Izin**, untuk **Kebijakan Terkelola**, pilih **Lampirkan Kebijakan**.

1. Dalam daftar nama kebijakan, pilih salah satu kotak berikut ini:
   + Pilih **AWSCodeCommitPowerUser**untuk akses ke semua fungsionalitas CodeCommit dan sumber daya terkait repositori. Namun, ini tidak memungkinkan Anda untuk menghapus CodeCommit repositori atau membuat atau menghapus sumber daya terkait repositori di tempat lain, Layanan AWS seperti Amazon Events. CloudWatch 
   + Pilih **AWSCodeCommitFullAccess**untuk kontrol penuh atas CodeCommit repositori dan sumber daya terkait di. Akun AWS Ini termasuk kemampuan untuk menghapus repositori.

   Jika Anda tidak melihat salah satu nama kebijakan ini dalam daftar, masukkan nama kebijakan di kotak **Filter** untuk menampilkannya.

1. Pilih **Lampirkan Kebijakan**.

Untuk melihat daftar izin akses yang diberikan oleh kebijakan AWS terkelola ini ke grup, lihat [Kebijakan AWS Terkelola (Standar) AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#managed-policies) di *AWS CodeCommit Panduan Pengguna*.

Lewati ke [Langkah 2: Buat Repositori](#sample-codecommit-create-repo) di. AWS CodeCommit

### Siapkan grup IAM Anda dengan izin akses yang diperlukan menggunakan AWS CLI
<a name="sample-codecommit-permissions-cli"></a>

Jalankan `attach-group-policy` perintah IAM, tentukan nama grup dan Nama Sumber Daya Amazon (ARN) dari kebijakan AWS terkelola yang menjelaskan izin akses yang diperlukan. Sintaksnya adalah sebagai berikut.

```
aws iam attach-group-policy --group-name MyGroup --policy-arn POLICY_ARN
```

Dengan perintah sebelumnya, ganti `MyGroup` dengan nama grup. Ganti `POLICY_ARN` dengan ARN dari kebijakan yang AWS dikelola:
+  `arn:aws:iam::aws:policy/AWSCodeCommitPowerUser`untuk akses ke semua fungsionalitas CodeCommit dan sumber daya terkait repositori. Namun, itu tidak memungkinkan Anda untuk menghapus CodeCommit repositori atau membuat atau menghapus sumber daya terkait repositori di tempat lain, Layanan AWS seperti Amazon Events. CloudWatch 
+  `arn:aws:iam::aws:policy/AWSCodeCommitFullAccess`untuk kontrol penuh atas CodeCommit repositori dan sumber daya terkait di. Akun AWS Ini termasuk kemampuan untuk menghapus repositori.

Untuk melihat daftar izin akses yang diberikan oleh kebijakan AWS terkelola ini ke grup, lihat [Kebijakan AWS Terkelola (Standar) AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#managed-policies) di *AWS CodeCommit Panduan Pengguna*.

## Langkah 2: Buat repositori di CodeCommit
<a name="sample-codecommit-create-repo"></a>

Pada langkah ini, Anda membuat repositori kode jarak jauh CodeCommit dengan menggunakan konsol. CodeCommit

Jika Anda sudah memiliki CodeCommit repositori, lanjutkan ke [Langkah 3: Connect Your Environment to the Remote](#sample-codecommit-connect-repo) Repository.

Anda dapat menyelesaikan langkah ini menggunakan [Konsol Manajemen AWS](#sample-codecommit-create-repo-console) atau [Antarmuka Baris Perintah AWS (AWS CLI)](#sample-codecommit-create-repo-cli).

### Buat repositori dalam CodeCommit menggunakan konsol
<a name="sample-codecommit-create-repo-console"></a>

1. Misalkan Anda masuk ke Konsol Manajemen AWS sebagai pengguna administrator dari langkah sebelumnya, dan Anda tidak ingin menggunakan pengguna administrator untuk membuat repositori. Kemudian, keluar dari Konsol Manajemen AWS.

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

1. Di bilah navigasi konsol, gunakan pemilih Wilayah untuk memilih tempat Wilayah AWS Anda ingin membuat repositori (misalnya, **US East (Ohio))**.

1. Jika halaman selamat datang ditampilkan, pilih **Memulai**. Jika tidak, pilih **Buat repositori**.

1. Pada halaman **Buat repositori**, untuk nama **Repositori, masukkan nama** untuk repositori baru Anda (misalnya,). `MyDemoCloud9Repo` Jika Anda memilih nama yang berbeda, gantilah di seluruh sampel ini.

1. (Opsional) Untuk **Deskripsi**, masukkan sesuatu tentang repositori. Misalnya, Anda dapat memasukkan: `This is a demonstration repository for the AWS Cloud9 sample.` 

1. Pilih **Buat repositori**. Panel **Sambungkan ke repositori Anda** ditampilkan. Pilih **Tutup**, karena Anda akan terhubung ke repositori Anda dengan cara yang berbeda nanti dalam topik ini.

Lewati ke [Langkah 3: Hubungkan Lingkungan Anda ke Repositori Jarak Jauh](#sample-codecommit-connect-repo).

### Buat repositori dalam CodeCommit menggunakan AWS CLI
<a name="sample-codecommit-create-repo-cli"></a>

Jalankan perintah AWS CodeCommit `create-repository`. Tentukan nama repositori, deskripsi opsional, dan Wilayah AWS untuk membuat repositori di.

```
aws codecommit create-repository --repository-name MyDemoCloud9Repo --repository-description "This is a demonstration repository for the AWS Cloud9 sample." --region us-east-2
```

Pada perintah sebelumnya, ganti `us-east-2` dengan ID Wilayah AWS untuk membuat repositori di. Untuk daftar Wilayah yang didukung, lihat [AWS CodeCommit](https://docs.aws.amazon.com/general/latest/gr/rande.html#codecommit_region)di *Referensi Umum Amazon Web Services*.

Jika Anda memilih untuk menggunakan nama repositori yang berbeda, gantilah di seluruh sampel ini.

## Langkah 3: Hubungkan lingkungan Anda ke repositori jarak jauh
<a name="sample-codecommit-connect-repo"></a>

Pada langkah ini, Anda menggunakan AWS Cloud9 IDE untuk terhubung ke CodeCommit repositori yang Anda buat atau identifikasi pada langkah sebelumnya.

**catatan**  
Jika Anda lebih suka bekerja dengan Git melalui antarmuka visual, Anda dapat mengkloning repositori jarak jauh. Kemudian, Anda dapat menambahkan file menggunakan fitur [panel Git](source-control-gitpanel.md) yang tersedia di IDE.

Lengkapi salah satu dari serangkaian prosedur berikut berdasarkan jenis lingkungan AWS Cloud9 pengembangan Anda.


****  

|  **Jenis lingkungan**  |  **Ikuti prosedur ini**  | 
| --- | --- | 
|  Lingkungan EC2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/sample-codecommit.html)  | 
|  Lingkungan SSH  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/sample-codecommit.html)  | 

## Langkah 4: Klon repositori jarak jauh ke lingkungan Anda
<a name="sample-codecommit-clone-repo"></a>

Pada langkah ini, Anda menggunakan AWS Cloud9 IDE untuk mengkloning repositori jarak jauh CodeCommit ke dalam lingkungan Anda.

Untuk mengkloning repositori, jalankan perintah. **`git clone`** Ganti `CLONE_URL` dengan URL klon repositori.

```
git clone CLONE_URL
```

Untuk lingkungan EC2, Anda menyediakan URL klon HTTPS yang dimulai dengan `https://`. Untuk lingkungan SSH, Anda menyediakan URL klon SSH yang dimulai dengan `ssh://`.

*Untuk mendapatkan URL klon lengkap repositori, lihat [Menggunakan AWS CodeCommit Konsol untuk Melihat Detail Repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-view-repository-details.html#how-to-view-repository-details-console) di Panduan Pengguna.AWS CodeCommit *

Jika repositori Anda tidak memiliki file di dalamnya, pesan peringatan akan ditampilkan, seperti `You appear to have cloned an empty repository.` Ini diharapkan. Anda akan membahas nanti.

## Langkah 5: Tambahkan file ke repositori
<a name="sample-codecommit-add-files"></a>

Pada langkah ini, Anda membuat tiga file sederhana di repositori kloning di lingkungan AWS Cloud9 Anda. Selanjutnya, Anda menambahkan file ke area Git pementasan di repositori kloning Anda. Terakhir, Anda mengkomit file bertahap dan mendorong komit ke repositori jarak jauh Anda. CodeCommit

Jika repositori kloning sudah memiliki file di dalamnya, Anda sudah selesai dan dapat melewati sisa sampel ini.

**Untuk menambahkan file ke repositori**

1. Buat file baru. Pada bilah menu, pilih **File**, **File Baru**.

1. Masukkan konten berikut ke dalam file, lalu pilih **File**, **Simpan** untuk menyimpan file seperti `bird.txt` di `MyDemoCloud9Repo` direktori di AWS Cloud9 lingkungan Anda.

   ```
   bird.txt
   --------
   Birds are a group of endothermic vertebrates, characterized by feathers,
   toothless beaked jaws, the laying of hard-shelled eggs, a high metabolic
   rate, a four-chambered heart, and a lightweight but strong skeleton.
   ```
**catatan**  
Untuk mengonfirmasi bahwa Anda menyimpan file ini di direktori yang benar, di kotak dialog **Save** As, pilih `MyDemoCloud9Repo` folder. Kemudian, pastikan **Folder** ditampilkan`/MyDemoCloud9Repo`.

1. Buat dua file lagi, bernama `insect.txt` dan`reptile.txt`, dengan konten berikut. Simpan file di `MyDemoCloud9Repo` direktori yang sama.

   ```
   insect.txt
   ----------
   Insects are a class of invertebrates within the arthropod phylum that
   have a chitinous exoskeleton, a three-part body (head, thorax, and abdomen),
   three pairs of jointed legs, compound eyes, and one pair of antennae.
   ```

   ```
   reptile.txt
   -----------
   Reptiles are tetrapod (four-limbed vertebrate) animals in the class
   Reptilia, comprising today's turtles, crocodilians, snakes,
   amphisbaenians, lizards, tuatara, and their extinct relatives.
   ```

1. Di terminal, jalankan **`cd`**perintah untuk beralih ke `MyDemoCloud9Repo` direktori.

   ```
   cd MyDemoCloud9Repo
   ```

1. Konfirmasikan bahwa file berhasil disimpan di `MyDemoCloud9Repo` direktori dengan menjalankan **`git status`**perintah. Ketiga file akan terdaftar sebagai file yang tidak terlacak.

   ```
   Untracked files:
     (use "git add <file>..." to include in what will be committed)
   
           bird.txt
           insect.txt
           reptile.txt
   ```

1. Tambahkan file ke area pementasan Git dengan menjalankan **`git add`**perintah.

   ```
   git add --all
   ```

1. Konfirmasikan bahwa file berhasil ditambahkan ke area pementasan Git dengan menjalankan **`git status`**perintah lagi. Ketiga file sekarang terdaftar sebagai perubahan untuk dilakukan.

   ```
   Changes to be committed:
     (use "git rm --cached <file>..." to unstage)
   
           new file:   bird.txt
           new file:   insect.txt
           new file:   reptile.txt
   ```

1. Komit file bertahap dengan menjalankan **`git commit`**perintah.

   ```
   git commit -m "Added information about birds, insects, and reptiles."
   ```

1. Dorong komit ke repositori jarak jauh Anda CodeCommit dengan menjalankan perintah. **`git push`**

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

1. Konfirmasi apakah file berhasil didorong. Buka CodeCommit konsol, jika belum terbuka, di [https://console.aws.amazon.com/codecommit](https://console.aws.amazon.com/codecommit).

1. Di bilah navigasi atas, dekat tepi kanan, pilih Wilayah AWS tempat Anda membuat repositori (misalnya, **US East (Ohio**)).

1. Pada halaman **Dashboard**, pilih **MyDemoCloud9Repo**. Tiga file ditampilkan.

*Untuk terus bereksperimen dengan CodeCommit repositori Anda, lihat [Menelusuri Isi Repositori Anda di](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started-cc.html#getting-started-cc-browse) Panduan Pengguna.AWS CodeCommit *

[Jika Anda baru Git dan tidak ingin mengacaukan repositori Anda, bereksperimenlah dengan CodeCommit repositori sampel di situs Git Try. Git](https://try.github.io/)

## Langkah 6: Bersihkan
<a name="sample-codecommit-clean-up"></a>

Untuk mencegah tagihan berkelanjutan ke Anda Akun AWS setelah Anda selesai menggunakan sampel ini, hapus CodeCommit repositori. Untuk petunjuk, lihat [Menghapus AWS CodeCommit Repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-delete-repository.html) di *AWS CodeCommit Panduan Pengguna*.

Pastikan juga untuk menghapus lingkungan. Untuk instruksi, lihat [Menghapus Lingkungan](delete-environment.md).

# Amazon DynamoDB tutorial untuk AWS Cloud9
<a name="sample-dynamodb"></a>

Tutorial ini memungkinkan Anda untuk mengatur lingkungan AWS Cloud9 pengembangan untuk bekerja dengan Amazon DynamoDB.

DynamoDB adalah layanan basis data NoSQL yang terkelola penuh. Anda dapat menggunakan DynamoDB untuk membuat tabel basis data yang dapat menyimpan dan mengambil data dalam jumlah berapa pun, dan melayani tingkat lalu lintas permintaan apapun. DynamoDB secara otomatis menyebarkan data dan lalu lintas untuk tabel melalui sejumlah server yang cukup untuk menangani kapasitas permintaan yang ditentukan dan jumlah data yang disimpan, sambil mempertahankan performa yang konsisten dan cepat. Untuk informasi selengkapnya, lihat [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) di situs web. AWS 

Membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan DynamoDB. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/).

[Untuk informasi tentang penawaran AWS database tambahan, lihat [Amazon Relational Database Service (RDS), Amazon[, ElastiCache](https://aws.amazon.com/elasticache/) dan Amazon Redshift](https://aws.amazon.com/rds/) di situs web.](https://aws.amazon.com/redshift/) AWS Lihat juga [AWS Database Migration Service](https://aws.amazon.com/dms/) di situs web AWS .
+  [Prasyarat](#sample-dynamodb-prereqs) 
+  [Langkah 1: Instal dan konfigurasikan AWS CLI, yang AWS CloudShell, atau keduanya di lingkungan Anda](#sample-dynamodb-cli-setup) 
+  [Langkah 2: Buat tabel](#sample-dynamodb-create-table) 
+  [Langkah 3: Tambahkan item ke tabel](#sample-dynamodb-add-item) 
+  [Langkah 4: Tambahkan beberapa item ke tabel](#sample-dynamodb-add-items) 
+  [Langkah 5: Buat indeks sekunder global](#sample-dynamodb-create-index) 
+  [Langkah 6: Dapatkan item dari tabel](#sample-dynamodb-get-items) 
+  [Langkah 7: Bersihkan](#sample-dynamodb-clean-up) 

## Prasyarat
<a name="sample-dynamodb-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Instal dan konfigurasikan AWS CLI, yang AWS CloudShell, atau keduanya di lingkungan Anda
<a name="sample-dynamodb-cli-setup"></a>

Pada langkah ini, Anda menggunakan AWS Cloud9 IDE untuk menginstal dan mengkonfigurasi AWS CLI, AWS CloudShell, atau keduanya di lingkungan Anda sehingga Anda dapat menjalankan perintah untuk berinteraksi dengan DynamoDB. Kemudian Anda menggunakan AWS CLI untuk menjalankan perintah basic DynamoDB untuk menguji pemasangan dan konfigurasi Anda.

1. Untuk mengatur manajemen kredensyal untuk AWS CLI atau AWS CloudShell dan untuk menginstal AWS CLI, AWS CloudShell, atau keduanya di lingkungan Anda, ikuti Langkah 1 dan 2 di [AWS CLI dan AWS CloudShell Contoh](sample-aws-cli.md), lalu kembali ke topik ini. Jika Anda sudah menginstal dan mengkonfigurasi AWS CLI AWS CloudShell, the, atau keduanya di lingkungan Anda, Anda tidak perlu melakukannya lagi.

1. Uji instalasi dan konfigurasi, aws-shell AWS CLI, atau keduanya dengan menjalankan **`list-tables`**perintah DynamoDB dari sesi terminal di lingkungan Anda untuk membuat daftar tabel DynamoDB yang ada, jika ada. Untuk memulai sesi terminal baru, pada bilah menu, pilih **Windows**, **Terminal Baru**.

   ```
   aws dynamodb list-tables # For the AWS CLI.
   dynamodb list-tables     # For the aws-shell.
   ```
**catatan**  
Sepanjang sampel ini, jika Anda menggunakan aws-shell, hilangkan `aws` dari setiap perintah yang dimulai dengan `aws`. Untuk memulai aws-shell, jalankan perintah ** `aws-shell` **. Untuk berhenti menggunakan aws-shell, jalankan perintah ** `.exit` ** atau ** `.quit` **.

   Jika perintah ini berhasil, perintah ini akan mengeluarkan larik `TableNames` yang berisi daftar tabel DynamoDB yang sudah ada yang mungkin sudah Anda miliki. Jika Anda belum memiliki tabel DynamoDB, larik `TableNames` akan kosong.

   ```
   {
     "TableNames": []
   }
   ```

   Jika Anda memiliki tabel DynamoDB, larik `TableNames` berisi daftar nama tabel.

## Langkah 2: Buat Tabel
<a name="sample-dynamodb-create-table"></a>

Pada langkah ini, Anda membuat tabel di DynamoDB dan menentukan nama tabel, tata letak, kunci primer sederhana, dan pengaturan throughput data.

Tabel sampel ini, dengan nama `Weather`, berisi informasi tentang prakiraan cuaca untuk beberapa kota di Amerika Serikat. Tabel menyimpan jenis informasi berikut (di DynamoDB, setiap bagian informasi dikenal sebagai *atribut*):
+ ID kota unik yang diperlukan (`CityID`)
+ Tanggal prakiraan yang diperlukan (`Date`)
+ Nama kota (`City`)
+ Nama negara (`State`)
+ Prakiraan kondisi cuaca (`Conditions`)
+ Prakiraan suhu (`Temperatures`)
  + Prakiraan tinggi, dalam derajat Fahrenheit (`HighF`)
  + Prakiraan rendah, dalam derajat Fahrenheit (`LowF`)

Untuk membuat tabel, dalam sesi terminal di AWS Cloud9 IDE, jalankan perintah DynamoDB **`create-table`**.

```
aws dynamodb create-table \
--table-name Weather \
--attribute-definitions \
  AttributeName=CityID,AttributeType=N AttributeName=Date,AttributeType=S \
--key-schema \
  AttributeName=CityID,KeyType=HASH AttributeName=Date,KeyType=RANGE \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
```

Dalam perintah ini:
+  `--table-name` mewakili nama tabel (`Weather` dalam sampel ini). Nama tabel harus unik di setiap AWS Wilayah di AWS akun Anda.
+  `--attribute-definitions` mewakili atribut yang digunakan untuk mengidentifikasi item tabel secara unik. Setiap item tabel ini diidentifikasi secara unik dengan kombinasi atribut `ID` numerik dan atribut `Date` yang direpresentasikan sebagai string berformat ISO-8601.
+  `--key-schema` mewakili skema kunci tabel ini. Tabel memiliki kunci primer komposit `CityID` dan `Date`. Ini berarti bahwa setiap item tabel harus memiliki nilai atribut `CityID` dan nilai atribut `Date`, tetapi tidak ada dua item dalam tabel yang dapat memiliki nilai atribut `CityID` dan nilai atribut `Date` yang sama.
+  `--provisioned-throughput` mewakili kapasitas baca-tulis tabel. DynamoDB memungkinkan hingga 5 bacaan konsisten per detik untuk item berukuran hingga 4 KB, atau hingga 5 bacaan akhir konsisten per detik untuk item berukuran hingga 4 KB. DynamoDB juga memungkinkan hingga 5 penulisan per detik untuk item berukuran hingga 1 KB.
**catatan**  
Menyetel throughput yang disediakan lebih tinggi dapat mengakibatkan biaya tambahan ke akun Anda. AWS   
Untuk informasi selengkapnya tentang ini dan perintah DynamoDB lainnya, lihat [dynamodb](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html) di *Referensi Perintah AWS CLI *.

Jika perintah ini berhasil, ini akan menampilkan informasi ringkasan tentang tabel baru yang sedang dibuat. Untuk mengonfirmasi bahwa tabel berhasil dibuat, jalankan perintah DynamoDB ** `describe-table` **, dengan menentukan nama tabel (`--table-name`).

```
aws dynamodb describe-table --table-name Weather
```

Ketika tabel berhasil dibuat, nilai `TableStatus` berubah dari `CREATING` menjadi `ACTIVE`. Jangan lanjutkan melewati langkah ini sampai tabel berhasil dibuat.

## Langkah 3: Tambahkan item ke tabel
<a name="sample-dynamodb-add-item"></a>

Pada langkah ini, Anda menambahkan item ke tabel yang baru saja Anda buat.

1. Buat file dengan nama `weather-item.json` dengan konten berikut ini. Untuk membuat file baru, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**.

   ```
   {
     "CityID": { "N": "1" },
     "Date": { "S": "2017-04-12" },
     "City": { "S": "Seattle" },
     "State": { "S": "WA" },
     "Conditions": { "S": "Rain" },
     "Temperatures": { "M": {
         "HighF": { "N": "59" },
         "LowF": { "N": "46" }
       }
     }
   }
   ```

   Dalam kode ini, `N` mewakili nilai atribut yang berupa angka. `S` adalah nilai atribut string. `M` adalah atribut pemetaan, yang merupakan himpunan pasangan atribut-nilai. Anda harus menentukan tipe data atribut setiap kali Anda bekerja dengan item. Untuk tipe data atribut tambahan yang tersedia, lihat [Tipe Data](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) di *Panduan Developer Amazon DynamoDB*.

1. Jalankan perintah DynamoDB ** `put-item` **, tentukan nama tabel (`--table-name`) dan jalur ke item berformat JSON (`--item`).

   ```
   aws dynamodb put-item \
   --table-name Weather \
   --item file://weather-item.json
   ```

   Jika perintah berhasil, itu berjalan tanpa kesalahan, dan tidak ada pesan konfirmasi yang ditampilkan.

1. Untuk mengonfirmasi bahwa tabel berhasil dibuat, jalankan perintah DynamoDB ** `scan` **, dengan menentukan nama tabel (`--table-name`).

   ```
   aws dynamodb scan --table-name Weather
   ```

   Jika perintah berhasil, ringkasan informasi tentang tabel dan item yang baru saja Anda tambahkan akan ditampilkan.

## Langkah 4: Tambahkan beberapa item ke tabel
<a name="sample-dynamodb-add-items"></a>

Pada langkah ini, Anda menambahkan beberapa item lagi ke tabel `Weather`.

1. Buat file dengan nama `more-weather-items.json` dengan konten berikut ini.

   ```
   {
     "Weather": [
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "1" },
             "Date": { "S": "2017-04-13" },
             "City": { "S": "Seattle" },
             "State": { "S": "WA" },
             "Conditions": { "S": "Rain" },
             "Temperatures": { "M": {
                 "HighF": { "N": "52" },
                 "LowF": { "N": "43" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "1" },
             "Date": { "S": "2017-04-14" },
             "City": { "S": "Seattle" },
             "State": { "S": "WA" },
             "Conditions": { "S": "Rain" },
             "Temperatures": { "M": {
                 "HighF": { "N": "49" },
                 "LowF": { "N": "43" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "2" },
             "Date": { "S": "2017-04-12" },
             "City": { "S": "Portland" },
             "State": { "S": "OR" },
             "Conditions": { "S": "Thunderstorms" },
             "Temperatures": { "M": {
                 "HighF": { "N": "59" },
                 "LowF": { "N": "43" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "2" },
             "Date": { "S": "2017-04-13" },
             "City": { "S": "Portland" },
             "State": { "S": "OR" },
             "Conditions": { "S": "Rain" },
             "Temperatures": { "M": {
                 "HighF": { "N": "51" },
                 "LowF": { "N": "41" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "2" },
             "Date": { "S": "2017-04-14" },
             "City": { "S": "Portland" },
             "State": { "S": "OR" },
             "Conditions": { "S": "Rain Showers" },
             "Temperatures": { "M": {
                 "HighF": { "N": "49" },
                 "LowF": { "N": "39" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "3" },
             "Date": { "S": "2017-04-12" },
             "City": { "S": "Portland" },
             "State": { "S": "ME" },
             "Conditions": { "S": "Rain" },
             "Temperatures": { "M": {
                 "HighF": { "N": "59" },
                 "LowF": { "N": "40" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "3" },
             "Date": { "S": "2017-04-13" },
             "City": { "S": "Portland" },
             "State": { "S": "ME" },
             "Conditions": { "S": "Partly Sunny" },
             "Temperatures": { "M": {
                 "HighF": { "N": "54" },
                 "LowF": { "N": "37" }
               }
             }
           }
         }
       },
       {
         "PutRequest": {
           "Item": {
             "CityID": { "N": "3" },
             "Date": { "S": "2017-04-14" },
             "City": { "S": "Portland" },
             "State": { "S": "ME" },
             "Conditions": { "S": "Mostly Sunny" },
             "Temperatures": { "M": {
                 "HighF": { "N": "53" },
                 "LowF": { "N": "37" }
               }
             }
           }
         }
       }
     ]
   }
   ```

   Dalam kode ini, 8 objek `Item` mendefinisikan 8 item untuk ditambahkan ke tabel, mirip dengan satu item yang ditentukan pada langkah sebelumnya. Namun, saat Anda menjalankan perintah DynamoDB ** `batch-write-item` ** di langkah berikutnya, Anda harus menyediakan objek berformat JSON yang menyertakan setiap objek `Item` di objek `PutRequest` yang berisi. Kemudian Anda harus menyertakan objek `PutRequest` tersebut dalam larik induk yang memiliki nama yang sama dengan tabel.

1. Jalankan perintah DynamoDB ** `batch-write-item` **, dengan menetapkan jalur ke item berformat JSON untuk ditambahkan (`--request-items`).

   ```
   aws dynamodb batch-write-item \
   --request-items file://more-weather-items.json
   ```

   Jika perintah berhasil, ini akan menampilkan pesan berikut, mengonfirmasi bahwa item berhasil ditambahkan.

   ```
   {
     "UnprocessedItems": {}
   }
   ```

1. Untuk mengonfirmasi konten tabel saat ini, jalankan kembali perintah DynamoDB ** `scan` **.

   ```
   aws dynamodb scan --table-name Weather
   ```

   Jika perintah berhasil, 9 item sekarang ditampilkan.

## Langkah 5: Buat indeks sekunder global
<a name="sample-dynamodb-create-index"></a>

Menjalankan perintah DynamoDB ** `scan` ** untuk mendapatkan informasi tentang item bisa lambat, terutama karena ukuran tabel bertambah atau jika jenis informasi yang ingin Anda dapatkan rumit. Anda dapat membuat satu atau beberapa indeks sekunder untuk mempercepat dan mempermudah mendapatkan informasi. Dalam langkah ini, Anda mempelajari tentang dua jenis indeks sekunder yang didukung DynamoDB untuk melakukan hal itu. Ini dikenal sebagai *indeks sekunder lokal* dan *indeks sekunder global*. Kemudian Anda membuat indeks sekunder global.

Untuk memahami tipe indeks sekunder ini, Anda harus terlebih dahulu mengetahui tentang kunci primer, yang secara unik mengidentifikasi item tabel. DynamoDB mendukung *kunci primer sederhana* atau *kunci primer komposit*. Kunci primer sederhana memiliki satu atribut, dan nilai atribut itu harus unik untuk setiap item dalam tabel. Atribut ini juga dikenal sebagai *kunci partisi* (atau *atribut hash*), yang dapat digunakan DynamoDB untuk mempartisi item untuk akses yang lebih cepat. Sebuah tabel juga dapat memiliki kunci primer komposit, yang berisi dua atribut. Atribut pertama adalah kunci partisi, dan yang kedua adalah *kunci pengurutan* (juga dikenal sebagai *atribut rentang*). Dalam tabel dengan kunci primer komposit, dua item dapat memiliki nilai kunci partisi yang sama, tetapi mereka juga tidak dapat memiliki nilai kunci pengurutan yang sama. Tabel `Weather` memiliki kunci primer komposit.

Indeks sekunder lokal memiliki kunci partisi yang sama dengan tabel itu sendiri, tetapi tipe indeks ini dapat memiliki kunci pengurutan yang berbeda. Indeks sekunder global dapat memiliki kunci partisi dan kunci pengurutan yang keduanya berbeda dari tabel itu sendiri.

Misalnya, Anda sudah dapat menggunakan kunci primer untuk mengakses item `Weather` dengan `CityID`. Untuk mengakses item `Weather` dengan `State`, Anda dapat membuat indeks sekunder lokal yang memiliki kunci partisi `CityID` (harus sama dengan tabel itu sendiri) dan kunci pengurutan `State`. Untuk mengakses item `Weather` dengan `City`, Anda dapat membuat indeks sekunder global yang memiliki kunci partisi `City` dan kunci pengurutan `Date`.

Anda dapat membuat indeks sekunder lokal hanya saat Anda membuat tabel. Karena tabel `Weather` sudah ada, Anda tidak dapat menambahkan indeks sekunder lokal apa pun ke dalamnya. Namun, Anda dapat menambahkan indeks sekunder global. Berlatih menambahkan satu sekarang.

**catatan**  
Membuat indeks sekunder dapat mengakibatkan biaya tambahan ke akun AWS Anda.

1. Buat file dengan nama `weather-global-index.json` dengan konten berikut ini.

   ```
   [
     {
       "Create": {
         "IndexName": "weather-global-index",
         "KeySchema": [
           {
             "AttributeName": "City",
             "KeyType": "HASH"
           },
           {
             "AttributeName": "Date",
             "KeyType": "RANGE"
           }
         ],
         "Projection": {
           "ProjectionType": "INCLUDE",
           "NonKeyAttributes": [
             "State",
             "Conditions",
             "Temperatures"
           ]
         },
         "ProvisionedThroughput": {
           "ReadCapacityUnits": 5,
           "WriteCapacityUnits": 5
         }
       }
     }
   ]
   ```

   Dalam kode ini:
   + Nama indeks sekunder global adalah `weather-global-index`.
   + Atribut `City` adalah kunci partisi (atribut hash), dan atribut `Date` adalah kunci pengurutan (atribut range).
   +  `Projection` mendefinisikan atribut yang akan diambil secara default (selain atribut hash dan atribut rentang apa pun) untuk setiap item yang cocok dengan pencarian tabel yang menggunakan indeks ini. Dalam sampel ini, atribut `State`, `Conditions`, `HighF` (bagian dari `Temperatures`), dan `LowF` (juga bagian dari `Temperatures`) (serta atribut `City` dan `Date`) diambil untuk setiap item yang cocok.
   + Mirip dengan tabel, indeks sekunder global harus menentukan pengaturan throughput yang disediakan.
   + Pengaturan `IndexName`, `KeySchema`, `Projection`, dan `ProvisionedThroughput` harus dimuat dalam objek `Create`, yang menentukan indeks sekunder global yang akan dibuat saat Anda menjalankan perintah DynamoDB ** `update-table` ** di langkah berikutnya.

1. Jalankan perintah DynamoDB ** `update-table` **.

   ```
   aws dynamodb update-table \
   --table-name Weather \
   --attribute-definitions \
     AttributeName=City,AttributeType=S AttributeName=Date,AttributeType=S \
   --global-secondary-index-updates file://weather-global-index.json
   ```

   Dalam perintah ini:
   +  `--table-name` adalah nama tabel yang akan diperbarui.
   +  `--attribute-definitions` adalah atribut untuk dimasukkan dalam indeks. Kunci partisi selalu dicantumkan pertama, dan kunci pengurutan apa pun selalu dicantumkan kedua.
   +  `--global-secondary-index-updates` adalah jalur ke file yang mendefinisikan indeks sekunder global.

   Jika perintah ini berhasil, ini akan menampilkan informasi ringkasan tentang indeks sekunder global baru yang sedang dibuat. Untuk mengonfirmasi bahwa indeks sekunder global berhasil dibuat, jalankan perintah DynamoDB ** `describe-table` **, dengan menentukan nama tabel (`--table-name`).

   ```
   aws dynamodb describe-table --table-name Weather
   ```

   Ketika indeks sekunder global berhasil dibuat, nilai `TableStatus` berubah dari `UPDATING` ke `ACTIVE`, dan nilai `IndexStatus` berubah dari `CREATING` ke `ACTIVE`. Jangan lanjutkan melewati langkah ini sampai indeks sekunder global berhasil dibuat. Ini dapat memakan waktu beberapa menit.

## Langkah 6: Dapatkan item dari tabel
<a name="sample-dynamodb-get-items"></a>

Ada banyak cara untuk mendapatkan item dari tabel. Dalam langkah ini, Anda mendapatkan item dengan menggunakan kunci primer tabel, dengan menggunakan atribut tabel lainnya, dan dengan menggunakan indeks sekunder global.

### Untuk mendapatkan satu item dari tabel berdasarkan nilai kunci primer item
<a name="w2aac31c21c25b5"></a>

Jika Anda mengetahui nilai kunci primer item, Anda bisa mendapatkan item yang cocok dengan menjalankan perintah DynamoDB ** `get-item` **, ** `scan` **, atau ** `query` **. Berikut ini adalah perbedaan utama dalam perintah ini:
+  ** `get-item` ** mengembalikan satu set atribut untuk item dengan kunci primer yang diberikan.
+  ** `scan` ** mengembalikan satu atau lebih item dan atribut item dengan mengakses setiap item dalam tabel atau indeks sekunder.
+  ** `query` ** menemukan item berdasarkan nilai kunci primer. Anda dapat membuat kueri tabel atau indeks sekunder apa pun yang memiliki kunci primer komposit (kunci partisi dan kunci pengurutan).

Dalam sampel ini, berikut adalah cara menggunakan masing-masing perintah ini untuk mendapatkan item yang berisi nilai atribut `CityID` dari `1` dan nilai atribut `Date` dari `2017-04-12`.

1. Untuk menjalankan perintah DynamoDB ** `get-item` **, tentukan nama tabel (`--table-name`), nilai kunci primer (`--key`), dan nilai atribut untuk item yang akan ditampilkan (`--projection-expression`). Karena `Date` adalah kata kunci yang dicadangkan di DynamoDB, Anda juga harus memberikan alias untuk nilai atribut `Date` (`--expression-attribute-names`). (`State` juga merupakan kata kunci yang dicadangkan, jadi Anda akan melihat alias yang disediakan untuknya di langkah selanjutnya.)

   ```
   aws dynamodb get-item \
   --table-name Weather \
   --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }' \
   --projection-expression \
     "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \
   --expression-attribute-names '{ "#D": "Date" }'
   ```

   Dalam perintah ini dan perintah lainnya, untuk menampilkan semua atribut item, jangan sertakan `--projection-expression`. Dalam contoh ini, karena Anda tidak menyertakan `--projection-expression`, Anda juga tidak perlu menyertakan `--expression-attribute-names`.

   ```
   aws dynamodb get-item \
   --table-name Weather \
   --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }'
   ```

1. Untuk menjalankan perintah DynamoDB ** `scan` **, tentukan:
   + Nama tabel (`--table-name`).
   + Pencarian untuk dijalankan (`--filter-expression`).
   + Kriteria pencarian untuk digunakan (`--expression-attribute-values`).
   + Jenis atribut yang akan ditampilkan untuk item yang cocok (`--select`).
   + Nilai atribut untuk item yang akan ditampilkan (`--projection-expression`).
   + Jika ada atribut Anda yang menggunakan kata kunci yang dicadangkan di DynamoDB, alias untuk atribut tersebut (`--expression-attribute-names`).

   ```
   aws dynamodb scan \
   --table-name Weather \
   --filter-expression "(CityID = :cityID) and (#D = :date)" \
   --expression-attribute-values \
     '{ ":cityID": { "N": "1" }, ":date": { "S": "2017-04-12" } }' \
   --select SPECIFIC_ATTRIBUTES \
   --projection-expression \
     "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \
   --expression-attribute-names '{ "#D": "Date" }'
   ```

1. Untuk menjalankan perintah DynamoDB ** `query` **, tentukan:
   + Nama tabel (`--table-name`).
   + Pencarian untuk dijalankan (`--key-condition-expression`).
   + Nilai atribut yang akan digunakan dalam pencarian (`--expression-attribute-values`).
   + Jenis atribut yang akan ditampilkan untuk item yang cocok (`--select`).
   + Nilai atribut untuk item yang akan ditampilkan (`--projection-expression`).
   + Jika ada atribut Anda yang menggunakan kata kunci yang dicadangkan di DynamoDB, alias untuk atribut tersebut (`--expression-attribute-names`).

   ```
   aws dynamodb query \
   --table-name Weather \
   --key-condition-expression "(CityID = :cityID) and (#D = :date)" \
   --expression-attribute-values \
     '{ ":cityID": { "N": "1" }, ":date": { "S": "2017-04-12" } }' \
   --select SPECIFIC_ATTRIBUTES \
   --projection-expression \
     "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \
   --expression-attribute-names '{ "#D": "Date" }'
   ```

   Perhatikan bahwa perintah ** `scan` ** diperlukan untuk memindai semua 9 item untuk mendapatkan hasilnya, sedangkan perintah ** `query` ** hanya perlu memindai 1 item.

### Untuk mendapatkan beberapa item dari tabel berdasarkan nilai kunci primer item
<a name="w2aac31c21c25b7"></a>

Jika Anda mengetahui nilai kunci primer item, Anda bisa mendapatkan item yang cocok dengan menjalankan perintah DynamoDB ** `batch-get-item` **. Dalam sampel ini, berikut cara mendapatkan item yang berisi nilai atribut `CityID` dari `3` dan nilai atribut `Date` dari `2017-04-13` atau `2017-04-14`.

Jalankan perintah DynamoDB ** `batch-get-item` **, dengan menetapkan jalur ke file yang menjelaskan item yang akan diperoleh (`--request-items`).

```
aws dynamodb batch-get-item --request-items file://batch-get-item.json
```

Untuk sampel ini, kode dalam file `batch-get-item.json` menentukan untuk mencari tabel `Weather` untuk item dengan `CityID` dari `3` dan `Date` dari `2017-04-13` atau `2017-04-14`. Untuk setiap item yang ditemukan, nilai atribut untuk `City`, `State`, `Date`, dan `HighF` (bagian dari `Temperatures`) ditampilkan, jika ada.

```
{
  "Weather" : {
    "Keys": [
      {
        "CityID": { "N": "3" },
        "Date": { "S": "2017-04-13" }
      },
      {
        "CityID": { "N": "3" },
        "Date": { "S": "2017-04-14" }
      }
    ],
    "ProjectionExpression": "City, #S, #D, Temperatures.HighF",
    "ExpressionAttributeNames": { "#S": "State", "#D": "Date" }
  }
}
```

### Untuk mendapatkan semua item yang cocok dari sebuah tabel
<a name="w2aac31c21c25b9"></a>

Jika Anda mengetahui sesuatu tentang nilai atribut dalam tabel, Anda bisa mendapatkan item yang cocok dengan menjalankan perintah DynamoDB ** `scan` **. Dalam sampel ini, berikut cara mendapatkan tanggal saat nilai atribut `Conditions` berisi `Sunny` dan nilai atribut `HighF` (bagian dari `Temperatures`) lebih besar dari `53`.

Jalankan perintah DynamoDB ** `scan` **, dengan menetapkan:
+ Nama tabel (`--table-name`).
+ Pencarian untuk dijalankan (`--filter-expression`).
+ Kriteria pencarian untuk digunakan (`--expression-attribute-values`).
+ Jenis atribut yang akan ditampilkan untuk item yang cocok (`--select`).
+ Nilai atribut untuk item yang akan ditampilkan (`--projection-expression`).
+ Jika ada atribut Anda yang menggunakan kata kunci yang dicadangkan di DynamoDB, alias untuk atribut tersebut (`--expression-attribute-names`).

```
aws dynamodb scan \
--table-name Weather \
--filter-expression \
  "(contains (Conditions, :sun)) and (Temperatures.HighF > :h)" \
--expression-attribute-values \
  '{ ":sun": { "S" : "Sunny" }, ":h": { "N" : "53" } }' \
--select SPECIFIC_ATTRIBUTES \
--projection-expression "City, #S, #D, Conditions, Temperatures.HighF" \
--expression-attribute-names '{ "#S": "State", "#D": "Date" }'
```

### Untuk mendapatkan semua item yang cocok dari indeks sekunder global
<a name="w2aac31c21c25c11"></a>

Untuk mencari menggunakan indeks sekunder global, gunakan perintah DynamoDB ** `query` **. Dalam sampel ini, berikut adalah cara menggunakan indeks sekunder `weather-global-index` untuk mendapatkan kondisi prakiraan kota bernama `Portland` untuk tanggal `2017-04-13` dan `2017-04-14`.

Jalankan perintah DynamoDB ** `query` **, dengan menetapkan:
+ Nama tabel (`--table-name`).
+ Nama indeks sekunder global (`--index-name`).
+ Pencarian untuk dijalankan (`--key-condition-expression`).
+ Nilai atribut yang akan digunakan dalam pencarian (`--expression-attribute-values`).
+ Jenis atribut yang akan ditampilkan untuk item yang cocok (`--select`).
+ Jika ada atribut Anda yang menggunakan kata kunci yang dicadangkan di DynamoDB, alias untuk atribut tersebut (`--expression-attribute-names`).

```
aws dynamodb query \
--table-name Weather \
--index-name weather-global-index \
--key-condition-expression "(City = :city) and (#D between :date1 and :date2)" \
--expression-attribute-values \
  '{ ":city": { "S" : "Portland" }, ":date1": { "S": "2017-04-13" }, ":date2": { "S": "2017-04-14" } }' \
--select SPECIFIC_ATTRIBUTES \
--projection-expression "City, #S, #D, Conditions, Temperatures.HighF" \
--expression-attribute-names '{ "#S": "State", "#D": "Date" }'
```

## Langkah 7: Bersihkan
<a name="sample-dynamodb-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus tabel. Menghapus tabel akan menghapus indeks sekunder global juga. Anda juga harus menghapus lingkungan Anda.

Untuk menghapus tabel, jalankan perintah DynamoDB ** `delete-table` **, dengan menentukan nama tabel (`--table-name`).

```
aws dynamodb delete-table --table-name Weather
```

Jika perintah berhasil, informasi tentang tabel ditampilkan, termasuk nilai `TableStatus` dari `DELETING`.

Untuk mengonfirmasi bahwa tabel berhasil dihapus, jalankan perintah DynamoDB ** `describe-table` **, dengan menentukan nama tabel (`--table-name`).

```
aws dynamodb describe-table --table-name Weather
```

Jika tabel berhasil dihapus, pesan yang berisi frasa `Requested resource not found` ditampilkan.

Untuk menghapus lingkungan Anda, lihat [Menghapus Lingkungan](delete-environment.md).

# AWS CDK tutorial untuk AWS Cloud9
<a name="sample-cdk"></a>

Tutorial ini menunjukkan cara bekerja dengan lingkungan AWS Cloud9 pengembangan. AWS Cloud Development Kit (AWS CDK) AWS CDK Ini adalah seperangkat perangkat perangkat lunak dan perpustakaan yang dapat digunakan pengembang untuk memodelkan komponen AWS infrastruktur sebagai kode.

 AWS CDK Termasuk AWS Construct Library yang dapat Anda gunakan untuk menyelesaikan banyak tugas dengan cepat. AWS Misalnya, Anda dapat menggunakan konstruksi `Fleet` untuk men-deploy kode secara penuh dan aman ke armada host. Anda dapat membuat konstruksi Anda sendiri untuk memodelkan berbagai elemen arsitektur Anda, membaginya dengan orang lain, atau mempublikasikannya ke komunitas. Untuk informasi selengkapnya, lihat [Panduan Developer AWS Cloud Development Kit](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2, Amazon SNS, dan Amazon SQS. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/), [Harga Amazon SNS](https://aws.amazon.com/sns/pricing/), dan [Harga Amazon SQS](https://aws.amazon.com/sqs/pricing/).

**Topics**
+ [Prasyarat](#sample-cdk-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-cdk-install)
+ [Langkah 2: Menambahkan kode](#sample-cdk-code)
+ [Langkah 3: Jalankan kode](#sample-cdk-run)
+ [Langkah 4: Membersihkan](#sample-cdk-clean-up)

## Prasyarat
<a name="sample-cdk-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-cdk-install"></a>

Pada langkah ini, Anda menginstal semua alat di lingkungan Anda yang AWS CDK perlu menjalankan sampel yang ditulis dalam bahasa TypeScript pemrograman.

1.  [Node Version Manager](#sample-cdk-install-nvm), atau ** `nvm` ** , yang Anda gunakan untuk memasang Node.js nanti.

1.  [Node.js](#sample-cdk-install-nodejs), yang diperlukan oleh sampel dan berisi Node Package Manager **`npm`**, atau, yang Anda gunakan untuk menginstal TypeScript dan AWS CDK nanti.

1.  [TypeScript](#sample-cdk-install-typescript), yang dibutuhkan oleh sampel ini. (Ini AWS CDK juga menyediakan dukungan untuk beberapa bahasa pemrograman lainnya.)

1. [AWS CDK](#sample-cdk-install-cdk).

### Langkah 1.1: Pasang Node Version Manager (nvm)
<a name="sample-cdk-install-nvm"></a>

1. Dalam sesi terminal di AWS Cloud9 IDE, pastikan pembaruan keamanan terbaru dan perbaikan bug diinstal. Untuk melakukan ini, jalankan perintah ** `yum update` ** (untuk Amazon Linux) atau ** `apt update` ** (untuk Server Ubuntu). (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.)

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Konfirmasi apakah ** `nvm` ** sudah terpasang. Untuk melakukan ini, jalankan perintah ** `nvm` ** dengan opsi ** `--version` **.

   ```
   nvm --version
   ```

   Jika berhasil, output berisi nomor versi ** `nvm` **, dan Anda dapat langsung melanjutkan ke [Langkah 1.2: Pasang Node.js](#sample-cdk-install-nodejs).

1. Unduh dan pasang ** `nvm` **. Untuk melakukan ini, jalankan skrip pemasangan. Dalam contoh ini, v0.33.0 terpasang, tetapi Anda dapat memeriksa versi terbaru ** `nvm` ** [di sini](https://github.com/nvm-sh/nvm#installing-and-updating).

   ```
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
   ```

1. Mulai menggunakan ** `nvm` **. Anda dapat menutup sesi terminal dan kemudian memulai kembali, atau cari file `~/.bashrc` yang berisi perintah untuk memuat ** `nvm` **..

   ```
   . ~/.bashrc
   ```

### Langkah 1.2: Pasang Node.js
<a name="sample-cdk-install-nodejs"></a>

1. Konfirmasikan apakah Anda sudah menginstal Node.js, dan jika Anda melakukannya, konfirmasikan bahwa versi yang diinstal adalah 16.17.0 atau lebih tinggi. **Sampel ini telah diuji dengan Node.js 16.17.0.** Untuk memeriksa, dengan sesi terminal masih terbuka di IDE, jalankan perintah ** `node` ** dengan opsi ** `--version` **.

   ```
   node --version
   ```

   Jika Anda telah memasang Node.js, output berisi nomor versi. Jika nomor versinya v16.17.0 lompat ke depan. [Langkah 1.3: Instal TypeScript](#sample-cdk-install-typescript)

1. Instal Node.js 16 dengan menjalankan **`nvm`**perintah dengan **`install`**tindakan.
**catatan**  
Anda juga dapat menjalankan **`nvm install node`**untuk menginstal versi dukungan jangka panjang (LTS) dari Node.js. AWS Cloud9 dukungan melacak versi LTS dari Node.js. 

   ```
   nvm install v16
   ```

1. Mulai gunakan Node.js 16. Untuk melakukannya, jalankan perintah ** `nvm` ** dengan tindakan ** `alias` **, nomor versi ke alias, dan versi yang digunakan untuk alias itu, sebagai berikut.

   ```
   nvm alias default 16
   ```
**catatan**  
Perintah sebelumnya menetapkan Node.js 16 sebagai versi default Node.js. Atau, Anda dapat menjalankan perintah ** `nvm` ** bersama dengan tindakan ** `use` ** alih-alih tindakan ** `alias` ** (misalnya, ** `nvm use 16.17.0` **). Namun, tindakan ** `use` ** menyebabkan versi Node.js tersebut hanya berjalan saat sesi terminal saat ini sedang berjalan.

1. Untuk mengonfirmasi bahwa Anda menggunakan Node.js 16 jalankan **`node --version`**perintah lagi. Jika versi yang benar diinstal, output berisi versi v16.

### Langkah 1.3: Instal TypeScript
<a name="sample-cdk-install-typescript"></a>

1. Konfirmasikan apakah Anda sudah TypeScript menginstal. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, jalankan TypeScript kompiler baris perintah dengan **`--version`**opsi.

   ```
   tsc --version
   ```

   Jika Anda telah TypeScript menginstal, output berisi nomor TypeScript versi. Jika TypeScript diinstal, lewati ke depan[Langkah 1.4: Instal AWS CDK](#sample-cdk-install-cdk).

1. Instal TypeScript. Untuk melakukan ini, jalankan **`npm`**perintah dengan **`install`**tindakan, **`-g`**opsi, dan nama TypeScript paket. Ini diinstal TypeScript sebagai paket global di lingkungan.

   ```
   npm install -g typescript
   ```

1. Konfirmasikan bahwa TypeScript sudah diinstal. Untuk melakukan ini, jalankan TypeScript compiler baris perintah dengan **`--version`**opsi.

   ```
   tsc --version
   ```

   Jika TypeScript diinstal, output berisi nomor TypeScript versi.

### Langkah 1.4: Instal AWS CDK
<a name="sample-cdk-install-cdk"></a>

1. Konfirmasikan apakah Anda sudah AWS CDK menginstal. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, jalankan perintah ** `cdk` ** dengan opsi ** `--version` **.

   ```
   cdk --version
   ```

   Jika AWS CDK diinstal, output berisi AWS CDK versi dan nomor build. Lewati ke [Langkah 2: Menambahkan kode](#sample-cdk-code).

1. Instal AWS CDK dengan menjalankan **`npm`**perintah bersama dengan `install` tindakan, nama AWS CDK paket yang akan diinstal, dan `-g` opsi untuk menginstal paket secara global di lingkungan.

   ```
   npm install -g aws-cdk
   ```

1. Konfirmasikan bahwa AWS CDK sudah diinstal dan direferensikan dengan benar. Untuk melakukan ini, jalankan perintah ** `cdk` ** dengan opsi ** `--version` **.

   ```
   cdk --version
   ```

   Jika berhasil, AWS CDK versi dan nomor build akan ditampilkan.

## Langkah 2: Menambahkan kode
<a name="sample-cdk-code"></a>

Pada langkah ini, Anda membuat TypeScript proyek sampel yang berisi semua kode sumber yang Anda butuhkan untuk menyebarkan AWS CDK tumpukan secara terprogram. AWS CloudFormation Tumpukan ini membuat topik Amazon SNS dan antrean Amazon SQS di akun AWS Anda dan kemudian berlangganan antrian ke topik tersebut.

1. Dengan sesi terminal masih terbuka di IDE, buat direktori untuk menyimpan kode sumber proyek, misalnya direktori `~/environment/hello-cdk` di lingkungan Anda. Kemudian beralih ke direktori itu.

   ```
   rm -rf ~/environment/hello-cdk # Remove this directory if it already exists.
   mkdir ~/environment/hello-cdk  # Create the directory.
   cd ~/environment/hello-cdk     # Switch to the directory.
   ```

1. Siapkan direktori sebagai proyek TypeScript bahasa untuk file AWS CDK. Untuk melakukan ini, jalankan perintah ** `cdk` ** dengan tindakan ** `init` **, templat ** `sample-app` **, dan opsi ** `--language` ** bersama dengan nama bahasa pemrograman.

   ```
   cdk init sample-app --language typescript
   ```

   Ini membuat file dan subdirektori berikut di direktori.
   + Subdirektori `.git` tersembunyi dan file `.gitignore` tersembunyi, yang membuat proyek kompatibel dengan alat pengendali sumber seperti Git.
   + Subdirektori `lib`, yang menyertakan file `hello-cdk-stack.ts`. File ini berisi kode untuk AWS CDK tumpukan Anda. Kode ini dijelaskan pada langkah berikutnya dalam prosedur ini.
   + Subdirektori `bin`, yang menyertakan file `hello-cdk.ts`. File ini berisi titik masuk untuk AWS CDK aplikasi Anda.
   + Subdirektori `node_modules`, yang berisi paket kode pendukung yang dapat digunakan aplikasi dan tumpukan sesuai kebutuhan.
   + File `.npmignore` tersembunyi, yang mencantumkan jenis subdirektori dan file yang tidak dibutuhkan ** `npm` ** saat membuat kode.
   + File `cdk.json`, yang berisi informasi untuk membuat menjalankan perintah ** `cdk` ** lebih mudah.
   + File `package-lock.json`, yang berisi informasi yang dapat digunakan ** `npm` ** untuk mengurangi kemungkinan kesalahan pembangunan dan pelaksanaan.
   + File `package.json`, yang berisi informasi untuk membuat menjalankan perintah ** `npm` ** lebih mudah dan dengan kemungkinan kesalahan pembangunan dan pelaksanaan yang lebih sedikit.
   + `README.md`File, yang mencantumkan perintah berguna yang dapat Anda jalankan **`npm`**dan file AWS CDK.
   + File `tsconfig.json`, yang berisi informasi untuk membuat menjalankan perintah ** `tsc` ** lebih mudah dan dengan kemungkinan kesalahan pembangunan dan pelaksanaan yang lebih sedikit.

1. Di jendela **Lingkungan**, buka file `lib/hello-cdk-stack.ts`, dan telusuri kode berikut di file itu.

   ```
   import sns = require('@aws-cdk/aws-sns');
   import sqs = require('@aws-cdk/aws-sqs');
   import cdk = require('@aws-cdk/cdk');
   
   export class HelloCdkStack extends cdk.Stack {
     constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
       super(parent, name, props);
   
       const queue = new sqs.Queue(this, 'HelloCdkQueue', {
         visibilityTimeoutSec: 300
       });
   
       const topic = new sns.Topic(this, 'HelloCdkTopic');
   
       topic.subscribeQueue(queue);
     }
   }
   ```
   + `Topic`Kelas`Stack`,`App`,`StackProps`,`Queue`, dan mewakili CloudFormation tumpukan dan propertinya, program yang dapat dieksekusi, antrian Amazon SQS, dan topik Amazon SNS, masing-masing.
   + `HelloCdkStack`Kelas mewakili CloudFormation tumpukan untuk aplikasi ini. Tumpukan ini berisi antrean Amazon SQS baru dan topik Amazon SNS untuk aplikasi ini.

1. Di jendela **Lingkungan**, buka file `bin/hello-cdk.ts`, dan telusuri kode berikut di file itu.

   ```
   #!/usr/bin/env node
   import cdk = require('@aws-cdk/cdk');
   import { HelloCdkStack } from '../lib/hello-cdk-stack';
   
   const app = new cdk.App();
   new HelloCdkStack(app, 'HelloCdkStack');
   app.run();
   ```

   Kode ini memuat, membuat instans, dan kemudian menjalankan kelas `HelloCdkStack` dari file `lib/hello-cdk-stack.ts`.

1. Gunakan **`npm`**untuk menjalankan TypeScript kompiler untuk memeriksa kesalahan pengkodean, dan kemudian aktifkan AWS CDK untuk mengeksekusi `bin/hello-cdk.js` file proyek. Untuk melakukannya, dari direktori root proyek, jalankan perintah ** `npm` ** dengan tindakan ** `run` **, dengan menetapkan nilai perintah ** `build` ** dalam file `package.json`, sebagai berikut.

   ```
   npm run build
   ```

   Perintah sebelumnya menjalankan TypeScript kompiler, yang menambahkan dukungan `bin/hello-cdk.d.ts` dan file. `lib/hello-cdk-stack.d.ts` Kompiler juga mentranspilasikan file `hello-cdk.ts` dan `hello-cdk-stack.ts` menjadi file `hello-cdk.js` dan `hello-cdk-stack.js`.

## Langkah 3: Jalankan kode
<a name="sample-cdk-run"></a>

Pada langkah ini, Anda menginstruksikan AWS CDK untuk membuat template CloudFormation tumpukan berdasarkan kode dalam `bin/hello-cdk.js` file. Anda kemudian menginstruksikan AWS CDK untuk menerapkan tumpukan, yang membuat topik Amazon SNS dan antrean Amazon SQS dan kemudian berlangganan antrian ke topik. Anda kemudian mengonfirmasi bahwa topik dan antrean berhasil ter-deploy dengan mengirimkan pesan dari topik ke antrean.

1. Minta template AWS CDK buat CloudFormation tumpukan. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, dari direktori root proyek, jalankan perintah ** `cdk` ** dengan tindakan ** `synth` ** dan nama tumpukan.

   ```
   cdk synth HelloCdkStack
   ```

   Jika berhasil, output menampilkan `Resources` bagian CloudFormation stack template ini.

1. Pertama kali Anda menerapkan AWS CDK aplikasi ke lingkungan untuk AWS akun tertentu dan kombinasi AWS Wilayah, Anda harus menginstal *tumpukan bootstrap*. Tumpukan ini mencakup berbagai sumber daya yang AWS CDK dibutuhkan untuk menyelesaikan berbagai operasinya. Misalnya, tumpukan ini menyertakan bucket Amazon S3 yang AWS CDK digunakan untuk menyimpan templat dan aset selama proses penerapannya. Untuk memasang tumpukan bootstrap, jalankan perintah ** `cdk` ** dengan tindakan ** `bootstrap` **.

   ```
   cdk bootstrap
   ```
**catatan**  
Jika Anda menjalankan `cdk bootstrap` tanpa menentukan opsi apa pun, AWS akun default dan AWS Wilayah digunakan. Anda juga dapat mem-bootstrap lingkungan tertentu dengan menentukan profil dan account/Region kombinasi. Contoh:  

   ```
   cdk bootstrap --profile test 123456789012/us-east-1
   ```

1.  AWS CDK Jalankan template CloudFormation tumpukan untuk menyebarkan tumpukan. Untuk melakukan ini, dari direktori root proyek, jalankan perintah ** `cdk` ** dengan tindakan ** `deploy` ** dan nama tumpukan.

   ```
   cdk deploy HelloCdkStack
   ```

   Jika berhasil, output menampilkan bahwa tumpukan `HelloCdkStack` di-deploy tanpa kesalahan.
**catatan**  
Jika output menampilkan pesan bahwa tumpukan tidak menentukan lingkungan dan AWS kredensialnya tidak dapat diperoleh dari lokasi standar atau tidak ada wilayah yang dikonfigurasi, pastikan AWS kredensialnya disetel dengan benar di IDE, lalu jalankan perintahnya lagi. **`cdk deploy`** Untuk informasi selengkapnya, lihat [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md).

1. Untuk mengonfirmasi bahwa topik Amazon SNS dan antrean Amazon SQS berhasil di-deploy, kirim pesan ke topik tersebut, lalu periksa antrean untuk pesan yang diterima. Untuk melakukan ini, Anda dapat menggunakan alat seperti AWS Command Line Interface (AWS CLI) atau AWS CloudShell. Untuk informasi lebih lanjut tentang alat ini, lihat [AWS CLI dan tutorial aws-shell untuk AWS Cloud9](sample-aws-cli.md).

   Misalnya, untuk mengirim pesan ke topik, dengan sesi terminal masih terbuka di IDE, gunakan perintah AWS CLI untuk menjalankan **`publish`**perintah Amazon SNS, memasok subjek dan isi pesan, AWS Wilayah untuk topik, dan Nama Sumber Daya Amazon topik (ARN).

   ```
   aws sns publish --subject "Hello from the AWS CDK" --message "This is a message from the AWS CDK." --topic-arn arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
   ```

   Dalam perintah sebelumnya, ganti `arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K` dengan ARN yang CloudFormation menetapkan topik. Untuk mendapatkan ID, Anda dapat menjalankan perintah ** `list-topics` ** Amazon SNS.

   ```
   aws sns list-topics --output table --query 'Topics[*].TopicArn'
   ```

   Jika berhasil, output dari perintah ** `publish` ** menampilkan nilai `MessageId` untuk pesan yang dipublikasikan.

   Untuk memeriksa antrean pesan yang diterima, jalankan perintah ** `receive-message` ** Amazon SQS, yang menyediakan URL antrean.

   ```
   aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
   ```

   Pada perintah sebelumnya, ganti `https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K` dengan ARN yang CloudFormation menetapkan antrian. Untuk mendapatkan URL, Anda dapat menjalankan perintah ** `list-queues` ** Amazon SQS.

   ```
   aws sqs list-queues --output table --query 'QueueUrls[*]'
   ```

   Jika berhasil, output dari perintah ** `receive-message` ** menampilkan informasi tentang pesan yang diterima.

## Langkah 4: Membersihkan
<a name="sample-cdk-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus CloudFormation tumpukan. Ini akan menghapus topik Amazon SNS dan antrean Amazon SQS. Anda juga harus menghapus lingkungan.

### Langkah 4.1: Hapus tumpukan
<a name="step-4-1-delete-the-stack"></a>

Dengan sesi terminal masih terbuka di IDE, dari direktori root proyek, jalankan perintah ** `cdk` ** dengan tindakan ** `destroy` ** dan nama tumpukan.

```
cdk destroy HelloCdkStack
```

Saat diminta untuk menghapus tumpukan, ketik `y`, lalu tekan `Enter`.

Jika berhasil, output menampilkan bahwa tumpukan `HelloCdkStack` dihapus tanpa kesalahan.

### Langkah 4.2: Hapus lingkungan
<a name="step-4-2-delete-the-envtitle"></a>

Untuk menghapus lingkungan, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# Tutorial LAMP untuk AWS Cloud9
<a name="sample-lamp"></a>

Tutorial ini memungkinkan Anda untuk mengatur dan menjalankan LAMP (Linux, Apache Server HTTP, MySQL, dan PHP) dalam lingkungan AWS Cloud9 pembangunan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya untuk Anda Akun AWS. Ini termasuk kemungkinan biaya untuk Layanan AWS seperti Amazon Elastic Compute Cloud (Amazon EC2). Untuk informasi selengkapnya, lihat [ EC2 Harga Amazon](https://aws.amazon.com/ec2/pricing/).

**Topics**
+ [Prasyarat](#sample-lamp-prereqs)
+ [Langkah 1: Pasang alatnya](#sample-lamp-install-tools)
+ [Langkah 2: Mengatur MySQL](#sample-lamp-setup-mysql)
+ [Langkah 3: Mengatur situs web](#sample-lamp-apache)
+ [Langkah 4: Membersihkan](#sample-lamp-clean-up)

## Prasyarat
<a name="sample-lamp-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan AWS Cloud9 EC2 pengembangan yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki EC2 lingkungan yang terhubung ke EC2 instans Amazon yang menjalankan Amazon Linux atau Ubuntu Peladen. Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alatnya
<a name="sample-lamp-install-tools"></a>

Dalam langkah ini, Anda memasang alat-alat berikut:
+ Apache HTTP Server, host server web.
+ PHP, bahasa scripting yang sangat cocok untuk pengembangan web dan dapat disematkan ke dalam HTML. 
+ MySQL, sistem manajemen basis data.

Anda kemudian menyelesaikan langkah ini dengan memulai Apache HTTP Server dan kemudian MySQL.

1. Pastikan pembaruan keamanan terbaru dan perbaikan bug telah terpasang pada instans. Untuk melakukan ini, dalam sesi terminal di AWS Cloud9 IDE, jalankan **`yum update`**for (Amazon Linux) atau **`apt update`**untuk (Ubuntu Server) perintah. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) 

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Peladen:

   ```
   sudo apt -y update
   ```

1. Periksa apakah Apache HTTP Server sudah diinstal. Untuk melakukan ini, jalankan **`httpd -v`**(untuk Amazon Linux) atau **`apache2 -v`**(untuk Ubuntu Server) perintah. 

   Jika berhasil, output berisi Apache Nomor versi HTTP Server. 

   Jika Anda melihat kesalahan, maka instal Apache HTTP Server dengan menjalankan **`install`**perintah.

   Untuk Amazon Linux:

   ```
   sudo yum install -y httpd24
   ```

   Untuk Ubuntu Peladen:

   ```
   sudo apt install -y apache2
   ```

1. Konfirmasikan apakah PHP sudah diinstal dengan menjalankan **`php -v`**perintah. 

   Jika berhasil, output berisi nomor versi PHP. 

   Jika Anda melihat kesalahan, maka instal PHP dengan menjalankan **`install`**perintah.

   Untuk Amazon Linux:

   ```
   sudo yum install -y php56
   ```

   Untuk Ubuntu Peladen:

   ```
   sudo apt install -y php libapache2-mod-php php-xml
   ```

1. Konfirmasikan apakah MySQL sudah diinstal dengan menjalankan **`mysql --version`**perintah. 

   Jika berhasil, output berisi MySQL nomor versi. 

   Jika Anda melihat kesalahan, maka instal MySQL dengan menjalankan **`install`**perintah.

   Untuk Amazon Linux:

   ```
   sudo yum install -y mysql-server
   ```

   Untuk Ubuntu Peladen:

   ```
   sudo apt install -y mysql-server
   ```

1. Setelah Anda menginstal Apache Server HTTP, PHP, dan MySQL, mulai Apache HTTP Server, dan kemudian konfirmasikan telah dimulai, dengan menjalankan perintah berikut.

   Untuk Amazon Linux (Anda mungkin perlu menjalankan perintah ini dua kali):

   ```
   sudo service httpd start && sudo service httpd status
   ```

   Untuk Ubuntu Server (untuk kembali ke command prompt, tekan`q`):

   ```
   sudo service apache2 start && sudo service apache2 status
   ```

1. Mulai MySQL, dan kemudian konfirmasikan sudah dimulai, dengan menjalankan perintah berikut.

   Untuk Amazon Linux:

   ```
   sudo service mysqld start && sudo service mysqld status
   ```

   Untuk Ubuntu Server (untuk kembali ke command prompt, tekan`q`):

   ```
   sudo service mysql start && sudo service mysql status
   ```

## Langkah 2: Mengatur MySQL
<a name="sample-lamp-setup-mysql"></a>

Pada langkah ini, Anda mengatur MySQL untuk mengikuti MySQL praktik terbaik keamanan. Praktik terbaik keamanan ini mencakup pengaturan kata sandi untuk akun root dan menghapus akun root yang dapat diakses dari luar host lokal. Praktik terbaik lainnya yang harus diperhatikan adalah menghapus pengguna anonim, menghapus database pengujian, dan menghapus hak istimewa yang memungkinkan siapa pun untuk mengakses database dengan nama yang dimulai dengan. `test_` 

Anda kemudian menyelesaikan langkah ini dengan berlatih memulai dan kemudian keluar dari MySQL klien baris perintah.

1. Implementasikan MySQL praktik terbaik keamanan untuk MySQL instalasi dengan menjalankan perintah berikut dalam sesi terminal di AWS Cloud9 IDE.

   ```
   sudo mysql_secure_installation
   ```

1. Saat diminta, jawablah pertanyaan berikut seperti yang ditentukan.

   Untuk Amazon Linux: 

   1. **Masukkan kata sandi saat ini untuk root (masukkan untuk tidak ada)** – Tekan `Enter` (tanpa kata sandi).

   1. **Atur kata sandi root** – Ketik `Y`, lalu tekan `Enter`.

   1. **Kata sandi baru** – Ketik kata sandi, lalu tekan `Enter`.

   1. **Masukkan kembali kata sandi baru** – Ketikkan kata sandi lagi, lalu tekan `Enter`. (Pastikan untuk menyimpan kata sandi di lokasi yang aman untuk digunakan nanti.)

   1. **Hapus pengguna anonim** – Ketik `Y`, lalu tekan `Enter`.

   1. **Larang login root dari jarak jauh** – Ketik `Y`, lalu tekan `Enter`.

   1. **Hapus basis data pengujian dan akses ke sana** – Ketik `Y`, lalu tekan `Enter`.

   1. **Muat ulang tabel hak istimewa sekarang** – Ketik `Y`, lalu tekan `Enter`.

   Untuk Ubuntu Peladen:

   1. **Apakah Anda ingin mengatur plugin VALIDATE PASSWORD** — Enter`y`, lalu tekan`Enter`.

   1. **Ada tiga tingkat kebijakan validasi kata sandi** - Enter`0`,`1`, atau`2`, dan kemudian tekan`Enter`.

   1. **Kata sandi baru** — Masukkan kata sandi, lalu tekan`Enter`.

   1. **Masukkan kembali kata sandi baru** — Masukkan kata sandi lagi, lalu tekan`Enter`. Pastikan Anda menyimpan kata sandi di lokasi yang aman untuk digunakan nanti.

   1. **Apakah Anda ingin melanjutkan dengan kata sandi yang disediakan** — Enter`y`, lalu tekan`Enter`.

   1. **Hapus pengguna anonim** — Enter`y`, lalu tekan`Enter`.

   1. **Larang login root dari jarak jauh** — Enter`y`, lalu tekan. `Enter`

   1. **Hapus database uji dan akses ke sana** — Enter`y`, lalu tekan`Enter`.

   1. **Muat ulang tabel hak istimewa sekarang** — Enter`y`, lalu tekan. `Enter`

1. Untuk berinteraksi langsung dengan MySQL, mulai MySQL command line client sebagai root user dengan menjalankan perintah berikut. Saat diminta, ketik kata sandi pengguna root yang Anda atur sebelumnya, lalu tekan `Enter`. Prompt berubah menjadi `mysql>` saat Anda berada di MySQL klien baris perintah.

   ```
   sudo mysql -uroot -p
   ```

1. Untuk keluar dari MySQL command line client, jalankan perintah berikut. Prompt berubah kembali ke`$`.

   ```
   exit;
   ```

## Langkah 3: Mengatur situs web
<a name="sample-lamp-apache"></a>

Pada langkah ini, Anda mengatur root situs web default untuk Apache Server HTTP dengan pemilik yang direkomendasikan dan izin akses. Anda kemudian membuat PHPhalaman web berbasis dalam root situs web default itu. 

Anda kemudian mengaktifkan lalu lintas web yang masuk untuk melihat halaman web tersebut dengan menyiapkan grup keamanan di Amazon EC2 dan daftar kontrol akses jaringan (network ACL) di Amazon Virtual Private Cloud (Amazon VPC) yang terkait dengan lingkungan ini. EC2 Setiap EC2 lingkungan harus dikaitkan dengan grup keamanan di Amazon EC2 dan ACL jaringan di Amazon VPC. Namun, meskipun ACL jaringan default dalam Akun AWS memungkinkan semua lalu lintas masuk dan keluar untuk lingkungan, grup keamanan default hanya mengizinkan lalu lintas masuk menggunakan SSH melalui port 22. Untuk informasi selengkapnya, lihat [Pengaturan VPC untuk Lingkungan Pengembangan AWS Cloud9](vpc-settings.md).

Anda kemudian menyelesaikan langkah ini dengan berhasil melihat halaman web dari luar AWS Cloud9 IDE.

1. Siapkan root situs web default untuk Apache HTTP Server (`/var/www/html`) dengan pemilik yang direkomendasikan dan izin akses. Untuk melakukan ini, jalankan enam perintah berikut, satu per satu dalam urutan berikut, dalam sesi terminal di AWS Cloud9 IDE. Untuk memahami apa yang dilakukan setiap perintah, baca informasi setelah karakter `#` setelah setiap perintah.

   Untuk Amazon Linux:

   ```
   sudo groupadd web-content # Create a group named web-content.
   
   sudo usermod -G web-content -a ec2-user # Add the user ec2-user (your default user for this environment) to the group web-content.
   
   sudo usermod -G web-content -a apache # Add the user apache (Apache HTTP Server) to the group web-content.
   
   sudo chown -R ec2-user:web-content /var/www/html # Change the owner of /var/www/html and its files to user ec2-user and group web-content.
   
   sudo find /var/www/html -type f -exec chmod u=rw,g=rx,o=rx {} \; # Change all file permissions within /var/www/html to user read/write, group read-only, and others read/execute. 
   
   sudo find /var/www/html -type d -exec chmod u=rwx,g=rx,o=rx {} \; # Change /var/www/html directory permissions to user read/write/execute, group read/execute, and others read/execute.
   ```

   Untuk Ubuntu Peladen:

   ```
   sudo groupadd web-content # Create a group named web-content.
   
   sudo usermod -G web-content -a ubuntu # Add the user ubuntu (your default user for this environment) to the group web-content.
   
   sudo usermod -G web-content -a www-data # Add the user www-data (Apache HTTP Server) to the group web-content.
   
   sudo chown -R ubuntu:web-content /var/www/html # Change the owner of /var/www/html and its files to user ubuntu and group web-content.
   
   sudo find /var/www/html -type f -exec chmod u=rw,g=rx,o=rx {} \; # Change all file permissions within /var/www/html to user read/write, group read-only, and others read/execute. 
   
   sudo find /var/www/html -type d -exec chmod u=rwx,g=rx,o=rx {} \; # Change /var/www/html directory permissions to user read/write/execute, group read/execute, and others read/execute.
   ```

1. Buat PHPhalaman web berbasis yang dinamai `index.php` dalam folder root situs web default untuk Apache HTTP Server (yaitu`/var/www/html`) dengan menjalankan perintah berikut.

   Untuk Amazon Linux:

   ```
   sudo touch /var/www/html/index.php && sudo chown -R ec2-user:web-content /var/www/html/index.php && sudo chmod u=rw,g=rx,o=rx /var/www/html/index.php && sudo printf '%s\n%s\n%s' '<?php' '  phpinfo();' '?>' >> /var/www/html/index.php
   ```

   Perintah sebelumnya untuk Amazon Linux juga mengubah pemilik file menjadi`ec2-user`, mengubah grup file menjadi`web-content`, dan mengubah izin file read/write for the user, and read/execute untuk grup dan lainnya. 

   Untuk Ubuntu Peladen:

   ```
   sudo touch /var/www/html/index.php && sudo chown -R ubuntu:web-content /var/www/html/index.php && sudo chmod u=rw,g=rx,o=rx /var/www/html/index.php && sudo printf '%s\n%s\n%s' '<?php' '  phpinfo();' '?>' >> /var/www/html/index.php
   ```

   Perintah sebelumnya untuk Ubuntu Server juga mengubah pemilik file menjadi`ubuntu`, mengubah grup file menjadi`web-content`, dan mengubah izin file read/write for the user, and read/execute untuk grup dan lainnya. 

   Jika berhasil, perintah sebelumnya membuat file `index.php` dengan konten berikut.

   ```
   <?php
     phpinfo();
   ?>
   ```

1. Aktifkan lalu lintas web masuk melalui port 80 untuk melihat halaman web baru dengan menyiapkan ACL jaringan di Amazon VPC dan grup keamanan Amazon EC2 yang terkait dengan lingkungan ini. EC2 Untuk melakukannya, jalankan delapan perintah berikut, satu per satu dalam urutan berikut. Untuk memahami apa yang dilakukan setiap perintah, baca informasi setelah karakter `#` untuk setiap perintah.
**penting**  
Menjalankan perintah berikut memungkinkan lalu lintas web masuk melalui port 80 untuk **semua** EC2 lingkungan dan EC2 instans Amazon yang terkait dengan grup keamanan dan ACL jaringan untuk lingkungan ini. Hal ini dapat mengakibatkan secara tak terduga memungkinkan lalu lintas web masuk melalui port 80 untuk lingkungan EC2 dan EC2 contoh Amazon selain yang satu ini.
**catatan**  
Perintah kedua hingga keempat berikut memungkinkan grup keamanan untuk mengizinkan lalu lintas web masuk melalui port 80. Jika Anda memiliki grup keamanan default, yang hanya mengizinkan lalu lintas SSH masuk melalui port 22, maka Anda harus menjalankan perintah pertama diikuti oleh perintah kedua hingga keempat ini. Namun, jika Anda memiliki grup keamanan khusus yang sudah memungkinkan lalu lintas web masuk melalui port 80, Anda dapat melewati menjalankan perintah tersebut.  
Perintah kelima hingga kedelapan berikut mengaktifkan ACL jaringan untuk mengizinkan lalu lintas web masuk melalui port 80. Jika Anda memiliki ACL jaringan default, yang sudah mengizinkan semua lalu lintas masuk melalui semua port, maka Anda dapat melewati perintah tersebut dengan aman. Namun, misalkan Anda memiliki ACL jaringan khusus yang tidak mengizinkan lalu lintas web masuk melalui port 80. Kemudian, jalankan perintah pertama diikuti oleh perintah kelima hingga kedelapan ini. 

   ```
   MY_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) # Get the ID of the instance for the environment, and store it temporarily.
              
   MY_SECURITY_GROUP_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SecurityGroups[0].GroupId' --output text) # Get the ID of the security group associated with the instance, and store it temporarily.
   
   aws ec2 authorize-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --protocol tcp --cidr 0.0.0.0/0 --port 80 # Add an inbound rule to the security group to allow all incoming IPv4-based traffic over port 80.
   
   aws ec2 authorize-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --ip-permissions IpProtocol=tcp,Ipv6Ranges='[{CidrIpv6=::/0}]',FromPort=80,ToPort=80 # Add an inbound rule to the security group to allow all incoming IPv6-based traffic over port 80.
   
   MY_SUBNET_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SubnetId' --output text) # Get the ID of the subnet associated with the instance, and store it temporarily.
   
   MY_NETWORK_ACL_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$MY_SUBNET_ID --query 'NetworkAcls[].Associations[0].NetworkAclId' --output text) # Get the ID of the network ACL associated with the subnet, and store it temporarily.
   
   aws ec2 create-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --protocol tcp --rule-action allow --rule-number 10000 --cidr-block 0.0.0.0/0 --port-range From=80,To=80 # Add an inbound rule to the network ACL to allow all IPv4-based traffic over port 80. Advanced users: change this suggested rule number as desired.
   
   aws ec2 create-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --protocol tcp --rule-action allow --rule-number 10100 --ipv6-cidr-block ::/0 --port-range From=80,To=80 # Add an inbound rule to the network ACL to allow all IPv6-based traffic over port 80. Advanced users: change this suggested rule number as desired.
   ```

1. Dapatkan URL ke file `index.php` di dalam root server web. Untuk melakukan ini, jalankan perintah berikut, dan gunakan tab browser web baru atau browser web lain yang terpisah dari AWS Cloud9 IDE untuk pergi ke URL yang ditampilkan. Jika berhasil, halaman web menampilkan informasi tentang Apache Server HTTP, MySQL, PHP, dan pengaturan terkait lainnya.

   ```
   MY_PUBLIC_IP=$(curl http://169.254.169.254/latest/meta-data/public-ipv4) && echo http://$MY_PUBLIC_IP/index.php # Get the URL to the index.php file within the web server root.
   ```

## Langkah 4: Membersihkan
<a name="sample-lamp-clean-up"></a>

Misalkan Anda ingin tetap menggunakan lingkungan ini tetapi Anda ingin menonaktifkan lalu lintas web masuk melalui port 80. Kemudian, jalankan delapan perintah berikut, satu per satu dalam urutan berikut, untuk menghapus peraturan lalu lintas masuk yang sesuai yang Anda tetapkan sebelumnya di grup keamanan dan ACL jaringan yang terkait dengan lingkungan. Untuk memahami apa yang dilakukan setiap perintah, baca informasi setelah karakter `#` untuk setiap perintah.

**penting**  
Menjalankan perintah berikut menonaktifkan lalu lintas web yang masuk melalui port 80 untuk **semua** EC2 lingkungan dan EC2 instans Amazon yang terkait dengan grup keamanan dan ACL jaringan untuk lingkungan ini. Hal ini dapat mengakibatkan secara tak terduga menonaktifkan lalu lintas web masuk melalui port 80 untuk lingkungan EC2 dan EC2 contoh Amazon selain yang satu ini.

**catatan**  
Perintah kelima hingga kedelapan berikut menghapus aturan yang ada untuk memblokir ACL jaringan agar tidak memungkinkan lalu lintas web masuk melalui port 80. Jika Anda memiliki jaringan default ACL, yang sudah memungkinkan semua lalu lintas masuk ke semua port, maka Anda dapat melewati menjalankan perintah tersebut. Namun, misalkan Anda memiliki ACL jaringan khusus dengan aturan yang ada yang memungkinkan lalu lintas web masuk melalui port 80 dan Anda ingin menghapus aturan tersebut. Kemudian, Anda perlu menjalankan perintah pertama diikuti oleh perintah kelima hingga kedelapan ini. 

```
MY_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) # Get the ID of the instance for the environment, and store it temporarily.
           
MY_SECURITY_GROUP_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SecurityGroups[0].GroupId' --output text) # Get the ID of the security group associated with the instance, and store it temporarily.

aws ec2 revoke-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --protocol tcp --cidr 0.0.0.0/0 --port 80 # Delete the existing inbound rule from the security group to block all incoming IPv4-based traffic over port 80.

aws ec2 revoke-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --ip-permissions IpProtocol=tcp,Ipv6Ranges='[{CidrIpv6=::/0}]',FromPort=80,ToPort=80 # Delete the existing inbound rule from the security group to block all incoming IPv6-based traffic over port 80.

MY_SUBNET_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SubnetId' --output text) # Get the ID of the subnet associated with the instance, and store it temporarily.

MY_NETWORK_ACL_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$MY_SUBNET_ID --query 'NetworkAcls[].Associations[0].NetworkAclId' --output text) # Get the ID of the network ACL associated with the subnet, and store it temporarily.

aws ec2 delete-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --rule-number 10000 # Delete the existing inbound rule from the network ACL to block all IPv4-based traffic over port 80. Advanced users: if you originally created this rule with a different number, change this suggested rule number to match.

aws ec2 delete-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --rule-number 10100 # Delete the existing inbound rule from the network ACL to block all IPv6-based traffic over port 80. Advanced users: if you originally created this rule with a different number, change this suggested rule number to match.
```

Jika Anda selesai menggunakan lingkungan ini, hapus lingkungan untuk mencegah tagihan yang sedang berlangsung ke lingkungan Anda Akun AWS. Untuk instruksi, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# WordPress tutorial untuk AWS Cloud9
<a name="sample-wordpress"></a>

Tutorial ini memungkinkan Anda untuk menginstal dan menjalankan WordPress dalam lingkungan AWS Cloud9 pengembangan. WordPress adalah sistem manajemen konten open-source (CMS) yang banyak digunakan untuk pengiriman konten web. 

**catatan**  
Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon Elastic Compute Cloud (Amazon EC2). Untuk informasi selengkapnya, lihat [Penetapan Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/).

## Prasyarat
<a name="sample-wordpress-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).
+ **Anda memiliki instans up-to-date EC2 dengan semua paket perangkat lunak terbaru**. Di jendela terminal AWS Cloud9 IDE, Anda dapat menjalankan `yum update` dengan `-y` opsi untuk menginstal pembaruan tanpa meminta konfirmasi. Jika Anda ingin memeriksa pembaruan sebelum menginstal, Anda dapat menghapus opsi ini. 

  ```
  sudo yum update -y
  ```

## Gambaran umum instalasi
<a name="task-overview"></a>

 WordPress Menginstal instans EC2 lingkungan Anda melibatkan langkah-langkah berikut:

1. Menginstal dan mengkonfigurasi MariaDB Server, yang merupakan database relasional open-source yang menyimpan informasi untuk instalasi WordPress 

1. Menginstal dan mengonfigurasi WordPress, yang mencakup pengeditan file `wordpress.conf` konfigurasi

1. Mengkonfigurasi server Apache yang menghosting situs WordPress 

1. Mempratinjau konten WordPress web yang di-host oleh server Apache

## Langkah 1: Menginstal dan mengkonfigurasi MariaDB Server
<a name="wp-install-configure-mariadb"></a>

1. Di AWS Cloud9 IDE, pilih **Window**, **New Terminal** dan masukkan perintah berikut untuk menginstal dan memulai instalasi MariaDB Server:

   ```
   sudo yum install -y mariadb-server
   sudo systemctl start mariadb
   ```

1. Selanjutnya, jalankan `mysql_secure_installation` penulisan untuk meningkatkan keamanan instalasi MariaDB Server Anda. 

   Saat memberikan tanggapan terhadap skrip, tekan **Masukkan**untuk pertanyaan pertama agar kata sandi admin tetap kosong. Tekan **n** untuk `Set root password?` dan kemudian **y** untuk masing-masing pilihan keamanan lainnya.

   ```
   mysql_secure_installation
   ```

1. Sekarang buat tabel database untuk menyimpan WordPress informasi menggunakan klien MariaDB.

   (Tekan **Masukkan** ketika diminta untuk memasukkan kata sandi Anda.)

   ```
   sudo mysql -u root -p
   MariaDB [(none)]> create database wp_test;
   MariaDB [(none)]> grant all privileges on wp_test.* to root@localhost identified by ';'
   ```

1. Untuk log out dari klien MariaDB, jalankan `exit` perintah.

## Langkah 2: Menginstal dan mengkonfigurasi WordPress
<a name="wp-install-configure-wordpress"></a>

1. Di jendela terminal IDE, arahkan ke `environment` direktori, lalu buat direktori `config` dan `wordpress`. Kemudian jalankan perintah `touch` untuk membuat sebuah file bernama `wordpress.conf` di `config` direktori:

   ```
   cd /home/ec2-user/environment
   mkdir config wordpress
   touch config/wordpress.conf
   ```

1. Gunakan editor IDE atau vim untuk memperbarui `wordpress.conf` dengan informasi konfigurasi host yang memungkinkan server Apache untuk menyajikan WordPress konten:

   ```
   # Ensure that Apache listens on port 80
   Listen 8080
   <VirtualHost *:8080>
       DocumentRoot "/var/www/wordpress"
       ServerName www.example.org
       # Other directives here
   </VirtualHost>
   ```

1. Sekarang jalankan perintah berikut untuk mengambil file arsip yang diperlukan dan menginstal WordPress: 

   ```
   cd /home/ec2-user/environment
   wget https://wordpress.org/latest.tar.gz
   tar xvf latest.tar.gz
   ```

1. Jalankan perintah `touch` untuk membuat sebuah file bernama `wp-config.php` di `environment/wordpress` direktori:

   ```
   touch wordpress/wp-config.php
   ```

1. Gunakan editor IDE atau vim untuk memperbarui `wp-config.php` dan mengganti data sampel dengan penyiapan Anda: 

   ```
   // ** MySQL settings - You can get this info from your web host ** //
   /** The name of the database for WordPress */
   define( 'DB_NAME', 'wp_test' );
   
   /** MySQL database username */
   define( 'DB_USER', 'wp_user' );
   
   /** MySQL database password */
   define( 'DB_PASSWORD', 'YourSecurePassword' );
   
   /** MySQL hostname */
   define( 'DB_HOST', 'localhost' );
   
   /** Database Charset to use in creating database tables. */
   define( 'DB_CHARSET', 'utf8' );
   
   /** The Database Collate type. Don't change this if in doubt. */
   define( 'DB_COLLATE', '' );
   
   define('FORCE_SSL', true);
   
   if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';
   ```

## Langkah 3: Mengkonfigurasi Apache HTTP Server
<a name="wp-install-configure-apache"></a>

1. Di jendela terminal AWS Cloud9 IDE, pastikan bahwa Anda telah menginstal Apache: 

   ```
   httpd -v
   ```

   Jika server Apache tidak diinstal, jalankan perintah berikut:

   ```
   sudo yum install -y httpd 
   ```

1. Arahkan ke direktori `/etc/httpd/conf.d`, yang merupakan lokasi untuk file konfigurasi host virtual Apache. Kemudian gunakan perintah `ln` untuk menautkan `wordpress.conf` yang Anda buat sebelumnya ke direktori kerja saat ini (`/etc/httpd/conf.d`):

   ```
   cd /etc/httpd/conf.d
   sudo ln -s /home/ec2-user/environment/config/wordpress.conf
   ```

1. Sekarang navigasikan ke direktori `/var/www`, yang merupakan folder admin default untuk server Apache. Dan gunakan perintah `ln` untuk menautkan direktori `wordpress` yang Anda buat sebelumnya ke direktori kerja saat ini (`/var/www`): 

   ```
   cd /var/www
   sudo ln -s /home/ec2-user/environment/wordpress
   ```

1. Jalankan perintah `chmod` untuk mengizinkan server Apache menjalankan konten di subdirektori `wordpress`:

   ```
   sudo chmod +x /home/ec2-user/
   ```

1. Sekarang mulai ulang server Apache agar ia dapat mendeteksi konfigurasi baru: 

   ```
   sudo service httpd restart
   ```

## Langkah 4: Mempratinjau konten WordPress web
<a name="wp-preview-wordpress"></a>

1. Menggunakan AWS Cloud9 IDE, buat file baru yang disebut `index.html` dalam direktori berikut:`environment/wordpress`.

1. Tambahkan teks berformat HTML ke `index.html`. Contoh:

   ```
   <h1>Hello World!</h1>
   ```

1. Di jendela **Environment**, pilih `index.html` file, lalu pilih **Preview, Preview** **Running Application**.

   Halaman web, yang menampilkan pesan *Halo Dunia\$1*, muncul di tab pratinjau aplikasi. Untuk melihat konten web di browser pilihan Anda, pilih **Munculkan ke Jendela Baru**.

   Jika Anda menghapus `index.html` file dan menyegarkan tab pratinjau aplikasi, halaman WordPress konfigurasi akan ditampilkan. 

## Mengelola kesalahan konten campuran
<a name="wp-allow-mixed"></a>

Browser web menampilkan kesalahan konten campuran untuk WordPress situs jika memuat skrip HTTPS dan HTTP atau konten pada saat yang bersamaan. Kata-kata pesan kesalahan tergantung pada peramban web yang Anda gunakan, tetapi Anda diberi tahu bahwa koneksi Anda ke situs tidak aman atau tidak sepenuhnya aman. Dan peramban web Anda memblokir akses ke konten campuran.

**penting**  
Secara default, semua halaman web yang Anda akses di tab pratinjau aplikasi AWS Cloud9 IDE secara otomatis menggunakan protokol HTTPS. Jika URI halaman memiliki fitur `http` protokol yang tidak aman, ia secara otomatis digantikan oleh `https`. Dan Anda tidak dapat mengakses konten yang tidak aman dengan mengubah `https` kembali ke `http` secara manual.  
Untuk panduan tentang penerapan HTTPS untuk situs web Anda, lihat [WordPressdokumentasi](https://wordpress.org/support/article/https-for-wordpress/).

# Tutorial Java untuk AWS Cloud9
<a name="sample-java"></a>

**penting**  
Jika Anda menggunakan lingkungan AWS Cloud9 pengembangan yang didukung oleh instans EC2 dengan memori 2 GiB atau lebih, kami sarankan Anda mengaktifkan dukungan Java yang disempurnakan. Ini menyediakan akses ke fitur produktivitas seperti penyelesaian kode, linting untuk kesalahan, tindakan spesifik konteks, dan opsi debugging seperti breakpoint dan stepping.  
Untuk informasi selengkapnya, lihat [Peningkatan dukungan untuk pengembangan Java](enhanced-java.md).

Tutorial ini memungkinkan Anda untuk menjalankan beberapa kode Java di lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-java-prerequisites)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-java-install)
+ [Langkah 2: Menambahkan kode](#sample-java-code)
+ [Langkah 3: Bangun dan jalankan kode](#sample-java-run)
+ [Langkah 4: Siapkan untuk menggunakan AWS SDK untuk Java](#sample-java-sdk)
+ [Langkah 5: Siapkan manajemen AWS kredensil di lingkungan Anda](#sample-java-sdk-creds)
+ [Langkah 6: Tambahkan kode AWS SDK](#sample-java-sdk-code)
+ [Langkah 7: Bangun dan jalankan kode AWS SDK](#sample-java-sdk-run)
+ [Langkah 8: Membersihkan](#sample-java-clean-up)

## Prasyarat
<a name="sample-java-prerequisites"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-java-install"></a>

Pada langkah ini, Anda menginstal satu set alat pengembangan Java di lingkungan AWS Cloud9 pengembangan Anda. Jika Anda sudah memiliki seperangkat alat developer Java seperti Oracle JDK atau OpenJDK yang terpasang di lingkungan Anda, Anda dapat langsung beralih ke [Langkah 2: Menambahkan kode](#sample-java-code). Sampel ini dikembangkan dengan OpenJDK 8, yang dapat Anda pasang di lingkungan Anda dengan menyelesaikan prosedur berikut.

1. Konfirmasi apakah OpenJDK 8 sudah terpasang. Untuk melakukan ini, dalam sesi terminal di AWS Cloud9 IDE, jalankan versi baris perintah dari runner Java dengan **`-version`**opsi. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.)

   ```
   java -version
   ```

   Berdasarkan output dari perintah sebelumnya, lakukan salah satu hal berikut:
   + Jika output menyatakan bahwa perintah `java` tidak ditemukan, lanjutkan dengan langkah 2 dalam prosedur ini untuk memasang OpenJDK 8.
   + Jika output berisi nilai yang dimulai dengan `Java(TM)`, `Java Runtime Environment`, `Java SE`, `J2SE`, atau `Java2`, OpenJDK tidak dipasang atau tidak diatur sebagai perangkat pengembangan Java default. Lanjutkan dengan langkah 2 dalam prosedur ini untuk memasang OpenJDK 8, dan kemudian beralih menggunakan OpenJDK 8.
   + Jika output berisi nilai yang dimulai dengan `java version 1.8` dan `OpenJDK`, lanjutkan ke [Langkah 2: Menambahkan kode](#sample-java-code). OpenJDK 8 dipasang dengan benar untuk sampel ini.
   + Jika output berisi `java version` kurang dari `1.8` dan nilai dimulai dengan `OpenJDK`, lanjutkan dengan langkah 2 dalam prosedur ini untuk memutakhirkan versi OpenJDK yang dipasang ke OpenJDK 8.

1. Pastikan pembaruan keamanan terbaru dan perbaikan bug telah terpasang. Untuk melakukan ini, jalankan alat yum (untuk Amazon Linux) atau alat apt (untuk Server Ubuntu) dengan perintah ** `update` **.

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Pasang OpenJDK 8. Untuk melakukannya, jalankan alat yum (untuk Amazon Linux) atau alat apt (untuk Server Ubuntu) dengan perintah ** `install` **, dengan menentukan paket OpenJDK 8.

   Untuk Amazon Linux:

   ```
   sudo yum -y install java-1.8.0-openjdk-devel
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt install -y openjdk-8-jdk
   ```

   Untuk informasi lebih lanjut, lihat [Cara mengunduh dan memasang paket OpenJDK yang telah dibangun sebelumnya](https://openjdk.org/install/) di situs web OpenJDK.

1. Ganti atau tingkatkan perangkat pengembangan Java default ke OpenJDK 8. Untuk melakukan ini, jalankan perintah ** `update-alternatives` ** dengan opsi ** `--config` **. Jalankan perintah ini dua kali untuk beralih atau memutakhirkan versi baris perintah dari Java runner dan compiler.

   ```
   sudo update-alternatives --config java
   sudo update-alternatives --config javac
   ```

   Pada setiap prompt, ketik nomor pilihan untuk OpenJDK 8 (yang berisi `java-1.8`).

1. Konfirmasikan bahwa versi baris perintah Java runner dan compiler menggunakan OpenJDK 8. Untuk melakukannya, jalankan versi baris perintah dari Java runner dan compiler dengan opsi `-version`.

   ```
   java -version
   javac -version
   ```

   Jika OpenJDK 8 dipasang dan diatur dengan benar, output versi Java runner berisi nilai yang dimulai dengan `openjdk version 1.8`, dan output versi kompiler Java dimulai dengan nilai `javac 1.8`.

## Langkah 2: Menambahkan kode
<a name="sample-java-code"></a>

Di AWS Cloud9 IDE, buat file dengan kode berikut, dan simpan file dengan nama`hello.java`. (Untuk membuat file, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**.)

```
public class hello {

  public static void main(String []args) {
    System.out.println("Hello, World!");

    System.out.println("The sum of 2 and 3 is 5.");

    int sum = Integer.parseInt(args[0]) + Integer.parseInt(args[1]);

    System.out.format("The sum of %s and %s is %s.\n",
      args[0], args[1], Integer.toString(sum));
  }
}
```

## Langkah 3: Bangun dan jalankan kode
<a name="sample-java-run"></a>

1. Gunakan versi baris perintah dari compiler Java untuk mengkompilasi file `hello.java` ke dalam file `hello.class`. Untuk melakukan ini, menggunakan terminal di AWS Cloud9 IDE, dari direktori yang sama dengan `hello.java` file, jalankan kompiler Java, tentukan file. `hello.java`

   ```
   javac hello.java
   ```

1. Gunakan versi baris perintah dari Java runner untuk menjalankan file `hello.class`. Untuk melakukan ini, dari direktori yang sama dengan file `hello.class`, jalankan Java runner, tentukan nama kelas `hello` yang dideklarasikan dalam file `hello.java`, dengan dua bilangan bulat untuk ditambahkan (misalnya, `5` dan `9`).

   ```
   java hello 5 9
   ```

1. Bandingkan output Anda.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

## Langkah 4: Siapkan untuk menggunakan AWS SDK untuk Java
<a name="sample-java-sdk"></a>

Anda dapat menyempurnakan sampel ini AWS SDK untuk Java untuk menggunakan bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja Anda buat.

Pada langkah ini, Anda memasang [Apache Maven](https://maven.apache.org/) atau [Gradle](https://gradle.org/) di lingkungan Anda. Maven dan Gradle adalah sistem otomatisasi bangun yang umum yang dapat digunakan dengan proyek Java. Setelah Anda memasang Maven atau Gradle, Anda menggunakannya untuk menghasilkan proyek Java baru. Dalam proyek baru ini, Anda menambahkan referensi ke AWS SDK untuk Java. Ini AWS SDK untuk Java menyediakan cara mudah untuk berinteraksi dengan AWS layanan seperti Amazon S3, dari kode Java Anda.

**Topics**
+ [Mengatur dengan Maven](#sample-java-sdk-maven)
+ [Mengatur dengan Gradle](#sample-java-sdk-gradle)

### Mengatur dengan Maven
<a name="sample-java-sdk-maven"></a>

1. Pasang Maven di lingkungan Anda. Untuk melihat apakah Maven sudah diinstal, menggunakan terminal di AWS Cloud9 IDE, jalankan Maven dengan opsi. **`-version`**

   ```
   mvn -version
   ```

   Jika berhasil, output berisi nomor versi Maven. Jika Maven sudah terpasang, lanjutkan ke langkah 4 dalam prosedur ini untuk menggunakan Maven untuk menghasilkan proyek Java baru di lingkungan Anda.

1. Pasang Maven dengan menggunakan terminal untuk menjalankan perintah berikut. 

   Untuk Amazon Linux, perintah berikut mendapatkan informasi tentang repositori paket tempat Maven disimpan, lalu menggunakan informasi ini untuk memasang Maven.

   ```
   sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
   sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
   sudo yum install -y apache-maven
   ```

   Untuk informasi selengkapnya tentang perintah sebelumnya, lihat [Paket Ekstra untuk Linux Korporasi (EPEL)](https://docs.fedoraproject.org/en-US/epel/) di situs web Fedora Project Wiki.

   Untuk Server Ubuntu, jalankan perintah berikut sebagai gantinya.

   ```
   sudo apt install -y maven
   ```

1. Konfirmasi pemasangan dengan menjalankan Maven dengan opsi ** `-version` **.

   ```
   mvn -version
   ```

1. Gunakan Maven untuk menghasilkan proyek Java baru. Untuk melakukan ini, gunakan terminal untuk menjalankan perintah berikut dari direktori tempat Anda ingin Maven menghasilkan proyek (misalnya, direktori root lingkungan Anda).

   ```
   mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
   ```

   Perintah sebelumnya membuat struktur direktori berikut untuk proyek di lingkungan Anda.

   ```
   my-app
     |- src
     |   `- main
     |        `- java
     |             `- com
     |                 `- mycompany
     |                      `- app
     |                          `-App.java
     |- test
     |   `- java
     |        `- com
     |            `- mycompany
     |                 `- app
     |                     `- AppTest.java
     `- pom.xml
   ```

   Untuk informasi selengkapnya tentang struktur direktori sebelumnya, lihat [Pola Dasar Cepat Maven](https://maven.apache.org/archetypes/maven-archetype-quickstart/) dan [Pengenalan Tata Letak Direktori Standar](https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html) di situs web Proyek Maven Apache.

1. Ubah file Project Object Model (POM) untuk proyek tersebut. (File POM mendefinisikan pengaturan proyek Maven.) Untuk melakukan ini, di jendela **Lingkungan**, buka file `my-app/pom.xml`. Di editor, ganti konten file saat ini dengan kode berikut, lalu simpan file `pom.xml`.

   ```
   <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.mycompany.app</groupId>
     <artifactId>my-app</artifactId>
     <packaging>jar</packaging>
     <version>1.0-SNAPSHOT</version>
     <build>
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-assembly-plugin</artifactId>
           <version>3.6.0</version>
           <configuration>
             <descriptorRefs>
               <descriptorRef>jar-with-dependencies</descriptorRef>
             </descriptorRefs>
             <archive>
               <manifest>
                 <mainClass>com.mycompany.app.App</mainClass>
               </manifest>
             </archive>
           </configuration>
           <executions>
             <execution>
               <phase>package</phase>
                 <goals>
                   <goal>single</goal>
                 </goals>
             </execution>
           </executions>
         </plugin>
       </plugins>
     </build>
     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>com.amazonaws</groupId>
         <artifactId>aws-java-sdk</artifactId>
         <version>1.11.330</version>
       </dependency>
     </dependencies>
   </project>
   ```

   File POM sebelumnya menyertakan pengaturan proyek yang menentukan deklarasi seperti berikut ini:
   + Pengaturan `artifactid` dari `my-app` menetapkan nama direktori root proyek, dan pengaturan `group-id` dari `com.mycompany.app` menetapkan struktur subdirektori `com/mycompany/app` dan deklarasi `package` dalam file `App.Java` dan `AppTest.java`.
   + Pengaturan `artifactId` dari `my-app`, dengan pengaturan `packaging` dari `jar`, pengaturan `version` dari `1.0-SNAPSHOT`, dan pengaturan `descriptorRef` dari `jar-with-dependencies` mengatur nama file JAR output dari `my-app-1.0-SNAPSHOT-jar-with-dependencies.jar`.
   + Bagian `plugin` menyatakan bahwa JAR tunggal, yang mencakup semua dependensi, akan dibuat.
   + `dependency`Bagian dengan `groupId` pengaturan `com.amazon.aws` dan `artifactId` pengaturan `aws-java-sdk` termasuk file AWS SDK untuk Java perpustakaan. Versi AWS SDK untuk Java yang akan digunakan dideklarasikan oleh pengaturan `version`. Untuk menggunakan versi yang berbeda, ganti nomor versi ini.

Lewati ke [Langkah 5: Siapkan manajemen AWS kredensil di lingkungan Anda](#sample-java-sdk-creds).

### Mengatur dengan Gradle
<a name="sample-java-sdk-gradle"></a>

1. Pasang Gradle di lingkungan Anda. Untuk melihat apakah Gradle sudah diinstal, menggunakan terminal di AWS Cloud9 IDE, jalankan Gradle dengan opsi. **`-version`**

   ```
   gradle -version
   ```

   Jika berhasil, output berisi nomor versi Gradle. Jika Gradle sudah terpasang, lanjutkan ke langkah 4 dalam prosedur ini untuk menggunakan Gradle guna menghasilkan proyek Java baru di lingkungan Anda.

1. Pasang Gradle dengan menggunakan terminal untuk menjalankan perintah berikut. Perintah ini memasang dan menjalankan alat SDKMAN\$1, dan kemudian menggunakan SDKMAN\$1 untuk memasang versi terbaru Gradle.

   ```
   curl -s "https://get.sdkman.io" | bash
   source "$HOME/.sdkman/bin/sdkman-init.sh"
   sdk install gradle
   ```

   Untuk informasi lebih lanjut tentang perintah sebelumnya, lihat [Pemasangan](https://sdkman.io/install) di situs web SDKMAN\$1 dan [Pasang dengan pengelola paket](https://gradle.org/install/#with-a-package-manager) di situs web Gradle.

1. Konfirmasi pemasangan dengan menjalankan Gradle dengan opsi ** `-version` **.

   ```
   gradle -version
   ```

1. Gunakan Gradle untuk membuat proyek Java baru di lingkungan Anda. Untuk melakukannya, gunakan terminal untuk menjalankan perintah berikut untuk membuat direktori proyek, dan kemudian beralih ke direktori itu.

   ```
   mkdir my-app
   cd my-app
   ```

1. Jalankan perintah berikut agar Gradle membuat proyek aplikasi Java baru di direktori `my-app` di lingkungan Anda.

   ```
   gradle init --type java-application
   ```

   Perintah sebelumnya membuat struktur direktori berikut untuk proyek di lingkungan Anda.

   ```
   my-app
     |- .gradle
     |   `- (various supporting project folders and files)
     |- gradle
     |   `- (various supporting project folders and files)
     |- src
     |   |- main
     |   |    `- java
     |   |         `- App.java
     |   `- test
     |        `- java
     |             `- AppTest.java
     |- build.gradle
     |- gradlew
     |- gradlew.bat
     `- settings.gradle
   ```

1. Ubah `AppTest.java` untuk proyek. (Jika Anda tidak melakukan ini, proyek mungkin tidak dibangun atau berjalan seperti yang diharapkan). Untuk melakukan ini, di jendela **Lingkungan**, buka file `my-app/src/test/java/AppTest.java`. Di editor, ganti konten file saat ini dengan kode berikut, lalu simpan file `AppTest.java`.

   ```
   import org.junit.Test;
   import static org.junit.Assert.*;
   
   public class AppTest {
     @Test public void testAppExists () {
       try {
         Class.forName("com.mycompany.app.App");
       } catch (ClassNotFoundException e) {
         fail("Should have a class named App.");
       }
     }
   }
   ```

1. Ubah file `build.gradle` untuk proyek. (File `build.gradle` mendefinisikan pengaturan proyek Gradle.) Untuk melakukan ini, di jendela **Lingkungan**, buka file `my-app/build.gradle`. Di editor, ganti konten file saat ini dengan kode berikut, lalu simpan file `build.gradle`.

   ```
   apply plugin: 'java'
   apply plugin: 'application'
   
   repositories {
     jcenter()
     mavenCentral()
   }
   
   buildscript {
     repositories {
       mavenCentral()
     }
     dependencies {
       classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
     }
   }
   
   apply plugin: "io.spring.dependency-management"
   
   dependencyManagement {
     imports {
       mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.330'
     }
   }
   
   dependencies {
     compile 'com.amazonaws:aws-java-sdk-s3'
     testCompile group: 'junit', name: 'junit', version: '4.12'
   }
   
   run {
     if (project.hasProperty("appArgs")) {
       args Eval.me(appArgs)
     }
   }
   
   mainClassName = 'App'
   ```

   File `build.gradle` sebelumnya menyertakan pengaturan proyek yang menentukan deklarasi seperti berikut ini:
   + `io.spring.dependency-management`Plugin ini digunakan untuk mengimpor AWS SDK untuk Java Maven Bill of Materials (BOM) untuk mengelola AWS SDK untuk Java dependensi proyek. `classpath`mendeklarasikan versi yang akan digunakan. Untuk menggunakan versi yang berbeda, ganti nomor versi ini.
   +  `com.amazonaws:aws-java-sdk-s3` menyertakan bagian Amazon S3 dari file pustaka AWS SDK untuk Java . `mavenBom` mendeklarasikan versi yang akan digunakan. Jika Anda ingin menggunakan versi lain, ganti nomor versi ini.

## Langkah 5: Siapkan manajemen AWS kredensil di lingkungan Anda
<a name="sample-java-sdk-creds"></a>

Setiap kali Anda menggunakan AWS SDK untuk Java untuk memanggil AWS layanan, Anda harus memberikan satu set AWS kredensil dengan panggilan tersebut. Kredensil ini menentukan apakah AWS SDK untuk Java memiliki izin yang sesuai untuk melakukan panggilan itu. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Pada langkah ini, Anda menyimpan kredensial Anda di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi tambahan, lihat [Mengatur Kredensial dan Wilayah AWS untuk Pengembangan](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html#setup-credentials) di *Panduan Developer AWS SDK untuk Java *.

## Langkah 6: Tambahkan kode AWS SDK
<a name="sample-java-sdk-code"></a>

Pada langkah ini, Anda menambahkan kode untuk berinteraksi dengan Amazon S3 untuk membuat bucket, membuat daftar bucket Anda yang tersedia, lalu menghapus bucket yang baru saja Anda buat.

Dari jendela **Lingkungan**, buka file `my-app/src/main/java/com/mycompany/app/App.java` untuk Maven atau file `my-app/src/main/java/App.java` untuk Gradle. Di editor, ganti konten file saat ini dengan kode berikut, lalu simpan file `App.java`.

```
package com.mycompany.app;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.CreateBucketRequest;

import java.util.List;

public class App {

    private static AmazonS3 s3;

    public static void main(String[] args) {
        if (args.length < 2) {
            System.out.format("Usage: <the bucket name> <the AWS Region to use>\n" +
                    "Example: my-test-bucket us-east-2\n");
            return;
        }

        String bucket_name = args[0];
        String region = args[1];

        s3 = AmazonS3ClientBuilder.standard()
                .withCredentials(new ProfileCredentialsProvider())
                .withRegion(region)
                .build();

        // List current buckets.
        ListMyBuckets();

        // Create the bucket.
        if (s3.doesBucketExistV2(bucket_name)) {
            System.out.format("\nCannot create the bucket. \n" +
                    "A bucket named '%s' already exists.", bucket_name);
            return;
        } else {
            try {
                System.out.format("\nCreating a new bucket named '%s'...\n\n", bucket_name);
                s3.createBucket(new CreateBucketRequest(bucket_name, region));
            } catch (AmazonS3Exception e) {
                System.err.println(e.getErrorMessage());
            }
        }

        // Confirm that the bucket was created.
        ListMyBuckets();

        // Delete the bucket.
        try {
            System.out.format("\nDeleting the bucket named '%s'...\n\n", bucket_name);
            s3.deleteBucket(bucket_name);
        } catch (AmazonS3Exception e) {
            System.err.println(e.getErrorMessage());
        }

        // Confirm that the bucket was deleted.
        ListMyBuckets();

    }

    private static void ListMyBuckets() {
        List<Bucket> buckets = s3.listBuckets();
        System.out.println("My buckets now are:");

        for (Bucket b : buckets) {
            System.out.println(b.getName());
        }
    }

}
```

## Langkah 7: Bangun dan jalankan kode AWS SDK
<a name="sample-java-sdk-run"></a>

Untuk menjalankan kode dari langkah sebelumnya, jalankan perintah berikut dari terminal. Perintah ini menggunakan Maven atau Gradle untuk membuat file JAR yang dapat dieksekusi untuk proyek tersebut, lalu menggunakan runner Java untuk menjalankan JAR. JAR berjalan dengan nama bucket untuk dibuat di Amazon S3 (misalnya,`my-test-bucket`) dan ID AWS Wilayah untuk membuat bucket sebagai input (misalnya,`us-east-2`).

Untuk Maven, jalankan perintah berikut.

```
cd my-app
mvn package
java -cp target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar com.mycompany.app.App my-test-bucket us-east-2
```

Untuk Gradle, jalankan perintah berikut.

```
gradle build
gradle run -PappArgs="['my-test-bucket', 'us-east-2']"
```

Bandingkan hasil Anda dengan output berikut.

```
My buckets now are:

Creating a new bucket named 'my-test-bucket'...

My buckets now are:

my-test-bucket

Deleting the bucket named 'my-test-bucket'...

My buckets now are:
```

## Langkah 8: Membersihkan
<a name="sample-java-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# Tutorial C\$1\$1 untuk AWS Cloud9
<a name="sample-cplusplus"></a>

Tutorial ini memungkinkan Anda untuk menjalankan kode C \$1\$1 di lingkungan AWS Cloud9 pengembangan. Kode ini juga menggunakan sumber daya yang disediakan oleh [AWS SDK untuk C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/welcome.html), pustaka sumber terbuka lintas platform termodulasi yang dapat Anda gunakan untuk terhubung ke Amazon Web Services.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-cplusplus-prereqs)
+ [Langkah 1: Pasang g\$1\$1 dan paket dev yang diperlukan](#sample-cplusplus-install)
+ [Langkah 2: Instal CMake](#install-cmake)
+ [Langkah 3: Dapatkan dan bangun SDK for C\$1\$1](#install-cmake)
+ [Langkah 4: Buat file C \$1\$1 dan CMake Daftar](#sample-cplusplus-sdk-code)
+ [Langkah 5: Membangun dan menjalankan kode C\$1\$1](#build-and-run-cpp)
+ [Langkah 6: Bersihkan](#sample-cplusplus-clean-up)

## Prasyarat
<a name="sample-cplusplus-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang g\$1\$1 dan paket dev yang diperlukan
<a name="sample-cplusplus-install"></a>

Untuk membangun dan menjalankan aplikasi C\$1\$1, Anda memerlukan utilitas seperti `g++`, yang merupakan kompiler C\$1\$1 yang disediakan oleh [GNU Complier Collection (GCC)](https://gcc.gnu.org/).

Anda juga perlu menambahkan file header (paket `-dev`) untuk `libcurl`, `libopenssl`, `libuuid`, `zlib` dan, secara opsional, `libpulse` untuk dukungan Amazon Polly. 

Proses menginstal alat pengembangan sedikit berbeda tergantung pada apakah Anda menggunakan instans Amazon Linux/Amazon Linux 2 atau instance Ubuntu.

------
#### [ Amazon Linux-based systems ]

Anda dapat memeriksa apakah Anda sudah `gcc` menginstal dengan menjalankan perintah berikut di AWS Cloud9 terminal:

```
g++ --version
```

Jika `g++` tidak terpasang, Anda dapat dengan mudah memasangnya bagian dari grup paket yang disebut "Alat Developer". Alat-alat ini ditambahkan ke sebuah instans dengan perintah `yum groupinstall`:

```
sudo yum groupinstall "Development Tools"
```

Jalankan `g++ --version` lagi untuk mengonfirmasi bahwa kompiler telah terpasang.

Sekarang pasang paket untuk perpustakaan yang diperlukan menggunakan pengelola paket sistem Anda: 

```
sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel
```

------
#### [ Ubuntu-based systems ]

Anda dapat memeriksa apakah Anda sudah `gcc` menginstal dengan menjalankan perintah berikut di AWS Cloud9 terminal:

```
g++ --version
```

Jika gcc tidak terpasang, Anda dapat memasangnya di sistem berbasis Ubuntu dengan menjalankan perintah berikut:

```
sudo apt update
sudo apt install build-essential
sudo apt-get install manpages-dev
```

Jalankan `g++ --version` lagi untuk mengonfirmasi bahwa kompiler telah terpasang.

Sekarang pasang paket untuk perpustakaan yang diperlukan menggunakan pengelola paket sistem Anda: 

```
sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
```

------

## Langkah 2: Instal CMake
<a name="install-cmake"></a>

 Anda perlu memasang alat `cmake`, yang mengotomatisasi proses pembangunan file yang dapat dieksekusi dari kode sumber. 

1. Di jendela terminal IDE, jalankan perintah berikut untuk mendapatkan arsip yang diperlukan:

   ```
   wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
   ```

1. Ekstrak file dari arsip dan arahkan ke direktori yang berisi file yang belum dibongkar:

   ```
   tar xzf cmake-3.18.0.tar.gz
   cd cmake-3.18.0
   ```

1. Selanjutnya, jalankan skrip bootstrap dan pasang `cmake` dengan menjalankan perintah berikut:

   ```
   ./bootstrap
   make
   sudo make install
   ```

1. Konfirmasikan bahwa Anda telah memasang alat dengan menjalankan perintah berikut:

   ```
   cmake --version
   ```

## Langkah 3: Dapatkan dan bangun SDK for C\$1\$1
<a name="install-cmake"></a>

Untuk menyiapkan AWS SDK for C\$1\$1, Anda dapat membuat SDK sendiri langsung dari sumbernya atau mengunduh pustaka menggunakan pengelola paket. Anda dapat menemukan detail tentang opsi yang tersedia di [Memulai Menggunakan AWS SDK for](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html) C\$1\$1 *AWS SDK untuk C\$1\$1 di* Panduan Pengembang. 

Sampel ini menunjukkan penggunaan `git` untuk mengkloning kode sumber SDK dan `cmake` untuk membangun SDK for C\$1\$1.

1. Kloning repositori jarak jauh dan dapatkan semua submodul git secara rekursif untuk AWS Cloud9 lingkungan Anda dengan menjalankan perintah berikut di terminal:

   ```
   git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
   ```

1. Arahkan ke `aws-sdk-cpp` direktori baru, buat sub-direktori untuk membangun AWS SDK for C\$1\$1, lalu arahkan ke direktori tersebut:

   ```
   cd aws-sdk-cpp
   mkdir sdk_build
   cd sdk_build
   ```

1. 
**catatan**  
Untuk menghemat waktu, langkah ini hanya membangun bagian Amazon S3 dari AWS SDK untuk C\$1\$1. Jika Anda ingin membangun SDK lengkap, hilangkan `-DBUILD_ONLY=s3` dari perintah `cmake`.  
Membangun SDK for C\$1\$1 lengkap dapat memakan waktu lebih dari satu jam untuk diselesaikan, tergantung pada sumber daya komputasi yang tersedia untuk instans Amazon EC2 atau server Anda sendiri.

   Gunakan `cmake` untuk membangun bagian Amazon S3 dari SDK for C\$1\$1 ke dalam direktori `sdk_build` dengan menjalankan perintah berikut:

   ```
   cmake .. -DBUILD_ONLY=s3
   ```

1. Sekarang jalankan perintah `make install` sehingga SDK yang dibangun dapat diakses:

   ```
   sudo make install
   cd ..
   ```

## Langkah 4: Buat file C \$1\$1 dan CMake Daftar
<a name="sample-cplusplus-sdk-code"></a>

Pada langkah ini, Anda membuat file `C++` yang memungkinkan pengguna proyek berinteraksi dengan bucket Amazon S3.

Anda juga membuat file `CMakeLists.txt` yang menyediakan instruksi yang digunakan oleh `cmake` untuk membangun pustaka C\$1\$1 Anda.

1. Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan nama `s3-demo.cpp` di root (`/`) lingkungan Anda.

   ```
   #include <iostream>
   #include <aws/core/Aws.h>
   #include <aws/s3/S3Client.h>
   #include <aws/s3/model/Bucket.h>
   #include <aws/s3/model/CreateBucketConfiguration.h>
   #include <aws/s3/model/CreateBucketRequest.h>
   #include <aws/s3/model/DeleteBucketRequest.h>
   
   // Look for a bucket among all currently available Amazon S3 buckets.
   bool FindTheBucket(const Aws::S3::S3Client &s3Client,
                      const Aws::String &bucketName) {
   
       Aws::S3::Model::ListBucketsOutcome outcome = s3Client.ListBuckets();
   
       if (outcome.IsSuccess()) {
   
           std::cout << "Looking for a bucket named '" << bucketName << "'..."
                     << std::endl << std::endl;
   
           Aws::Vector<Aws::S3::Model::Bucket> bucket_list =
                   outcome.GetResult().GetBuckets();
   
           for (Aws::S3::Model::Bucket const &bucket: bucket_list) {
               if (bucket.GetName() == bucketName) {
                   std::cout << "Found the bucket." << std::endl << std::endl;
   
                   return true;
               }
           }
   
           std::cout << "Could not find the bucket." << std::endl << std::endl;
       } else {
           std::cerr << "listBuckets error: "
                     << outcome.GetError().GetMessage() << std::endl;
       }
   
       return outcome.IsSuccess();
   }
   
   // Create an Amazon S3 bucket.
   bool CreateTheBucket(const Aws::S3::S3Client &s3Client,
                        const Aws::String &bucketName,
                        const Aws::String &region) {
   
       std::cout << "Creating a bucket named '"
                 << bucketName << "'..." << std::endl << std::endl;
   
       Aws::S3::Model::CreateBucketRequest request;
       request.SetBucket(bucketName);
   
       if (region != "us-east-1") {
           Aws::S3::Model::CreateBucketConfiguration createBucketConfig;
           createBucketConfig.SetLocationConstraint(
                   Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName(
                           region));
           request.SetCreateBucketConfiguration(createBucketConfig);
       }
   
       Aws::S3::Model::CreateBucketOutcome outcome =
               s3Client.CreateBucket(request);
   
       if (outcome.IsSuccess()) {
           std::cout << "Bucket created." << std::endl << std::endl;
       } else {
           std::cerr << "createBucket error: "
                     << outcome.GetError().GetMessage() << std::endl;
       }
   
       return outcome.IsSuccess();
   }
   
   // Delete an existing Amazon S3 bucket.
   bool DeleteTheBucket(const Aws::S3::S3Client &s3Client,
                        const Aws::String &bucketName) {
   
       std::cout << "Deleting the bucket named '"
                 << bucketName << "'..." << std::endl << std::endl;
   
       Aws::S3::Model::DeleteBucketRequest request;
       request.SetBucket(bucketName);
   
       Aws::S3::Model::DeleteBucketOutcome outcome =
               s3Client.DeleteBucket(request);
   
       if (outcome.IsSuccess()) {
           std::cout << "Bucket deleted." << std::endl << std::endl;
       } else {
           std::cerr << "deleteBucket error: "
                     << outcome.GetError().GetMessage() << std::endl;
       }
   
       return outcome.IsSuccess();
   }
   
   #ifndef EXCLUDE_MAIN_FUNCTION
   // Create an S3 bucket and then delete it.
   // Before and after creating the bucket, and again after deleting the bucket,
   // try to determine whether that bucket still exists. 
   int main(int argc, char *argv[]) {
   
       if (argc < 3) {
           std::cout << "Usage: s3-demo <bucket name> <AWS Region>" << std::endl
                     << "Example: s3-demo my-bucket us-east-1" << std::endl;
           return 1;
       }
   
       Aws::SDKOptions options;
       Aws::InitAPI(options);
       {
           Aws::String bucketName = argv[1];
           Aws::String region = argv[2];
   
           Aws::Client::ClientConfiguration config;
   
           config.region = region;
   
           Aws::S3::S3Client s3Client(config);
   
           if (!FindTheBucket(s3Client, bucketName)) {
               return 1;
           }
   
           if (!CreateTheBucket(s3Client, bucketName, region)) {
               return 1;
           }
   
           if (!FindTheBucket(s3Client, bucketName)) {
               return 1;
           }
   
           if (!DeleteTheBucket(s3Client, bucketName)) {
               return 1;
           }
   
           if (!FindTheBucket(s3Client, bucketName)) {
               return 1;
           }
       }
       Aws::ShutdownAPI(options);
   
       return 0;
   }
   #endif  // EXCLUDE_MAIN_FUNCTION
   ```

1. Buat file kedua dengan konten ini, dan simpan file dengan nama `CMakeLists.txt` di root (`/`) lingkungan Anda. File ini memungkinkan Anda untuk membangun kode Anda menjadi file yang dapat dieksekusi.

   ```
   # A minimal CMakeLists.txt file for the AWS SDK for C++.
   
   # The minimum version of CMake that will work.
   cmake_minimum_required(VERSION 2.8)
   
   # The project name.
   project(s3-demo)
   
   # Locate the AWS SDK for C++ package.
   set(AWSSDK_ROOT_DIR, "/usr/local/")
   set(BUILD_SHARED_LIBS ON)
   find_package(AWSSDK REQUIRED COMPONENTS s3)
   
   # The executable name and its source files.
   add_executable(s3-demo s3-demo.cpp)
   
   # The libraries used by your executable.
   target_link_libraries(s3-demo ${AWSSDK_LINK_LIBRARIES})
   ```

## Langkah 5: Membangun dan menjalankan kode C\$1\$1
<a name="build-and-run-cpp"></a>

1. Di direktori root lingkungan Anda tempat Anda menyimpan `s3-demo.cpp` dan `CMakeLists.txt`, jalankan `cmake` untuk membangun proyek Anda:

   ```
   cmake . 
   make
   ```

1. Anda sekarang dapat menjalankan program Anda dari baris perintah. Dalam perintah berikut, ganti `my-unique-bucket-name` dengan nama unik untuk bucket Amazon S3 dan, jika perlu, ganti `us-east-1` dengan pengenal Wilayah AWS lain tempat Anda ingin membuat bucket.

   ```
   ./s3-demo my-unique-bucket-name us-east-1
   ```

   Jika program berhasil dijalankan, output yang mirip dengan berikut akan dikembalikan: 

   ```
   Looking for a bucket named 'my-unique-bucket-name'...
   
   Could not find the bucket.
   
   Creating a bucket named 'my-unique-bucket-name'...
   
   Bucket created.
   
   Looking for a bucket named 'my-unique-bucket-name'...
   
   Found the bucket.
   
   Deleting the bucket named 'my-unique-bucket-name'...
   
   Bucket deleted.
   
   Looking for a bucket named 'my-unique-bucket-name'...
   
   Could not find the bucket.
   ```

## Langkah 6: Bersihkan
<a name="sample-cplusplus-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah Anda selesai dengan sampel ini, hapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# Tutorial Python untuk AWS Cloud9
<a name="sample-python"></a>

Tutorial ini menunjukkan cara menjalankan kode Python di lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon Elastic Compute Cloud (Amazon EC2). dan Amazon Simple Storage Service (Amazon S3). Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-python-prereqs)
+ [Langkah 1: Pasang Python](#sample-python-install)
+ [Langkah 2: Menambahkan kode](#sample-python-code)
+ [Langkah 3: Jalankan kode](#sample-python-run)
+ [Langkah 4: Instal dan konfigurasikan AWS SDK untuk Python (Boto3)](#sample-python-sdk)
+ [Langkah 5: Tambahkan kode AWS SDK](#sample-python-sdk-code)
+ [Langkah 6: Jalankan kode AWS SDK](#sample-python-sdk-run)
+ [Langkah 7: Bersihkan](#sample-python-clean-up)

## Prasyarat
<a name="sample-python-prereqs"></a>

Sebelum Anda memulai tutorial ini, pastikan untuk memenuhi persyaratan berikut.
+ **Anda memiliki lingkungan pengembangan AWS Cloud9 EC2**

  tutorial ini mengasumsikan Anda sudah memiliki lingkungan EC2, dan lingkungan tersebut terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server Ubuntu. Lihat [Menciptakan EC2 Lingkungan](create-environment-main.md) untuk detail.

  Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan instruksi tutorial ini.
+ **Anda telah membuka AWS Cloud9 IDE untuk lingkungan itu**

  Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Lihat [Membuka lingkungan di AWS Cloud9](open-environment.md) untuk detail.

## Langkah 1: Pasang Python
<a name="sample-python-install"></a>

1. Dalam sesi terminal di AWS Cloud9 IDE, konfirmasikan apakah Python sudah diinstal dengan menjalankan perintah. **`python --version`** (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika Python sudah terpasang, lewati ke [Langkah 2: Menambahkan kode](#sample-python-code).

1. Jalankan perintah ** `yum update`** untuk (Amazon Linux) atau **`apt update`** untuk (Ubuntu Server) untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug terpasang.

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Pasang Python dengan menjalankan perintah ** `install` **.

   Untuk Amazon Linux:

   ```
   sudo yum -y install python3
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt-get install python3
   ```

## Langkah 2: Menambahkan kode
<a name="sample-python-code"></a>

Di AWS Cloud9 IDE, buat file dengan konten berikut dan simpan file dengan namanya`hello.py`. (Untuk membuat file, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**.)

```
import sys

print('Hello, World!')

print('The sum of 2 and 3 is 5.')

sum = int(sys.argv[1]) + int(sys.argv[2])

print('The sum of {0} and {1} is {2}.'.format(sys.argv[1], sys.argv[2], sum))
```

## Langkah 3: Jalankan kode
<a name="sample-python-run"></a>

1. Di AWS Cloud9 IDE, pada bilah menu pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Pada tab **[Baru] - Berhenti**, masukkan `hello.py 5 9` untuk **Perintah**. Dalam kode, `5` mewakili `sys.argv[1]`, dan `9` mewakili `sys.argv[2]`.

1. Pilih **Jalankan**, dan bandingkan output Anda.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

1. Secara default, AWS Cloud9 secara otomatis memilih runner untuk kode Anda. Untuk mengubah runner, pilih **Runner**, lalu pilih **Python 2** atau **Python 3**.
**catatan**  
Anda dapat membuat runner kustom untuk versi tertentu dari Python. Lihat perinciannya di [Buat Builder atau Runner](build-run-debug.md#build-run-debug-create-builder-runner).

## Langkah 4: Instal dan konfigurasikan AWS SDK untuk Python (Boto3)
<a name="sample-python-sdk"></a>

 AWS SDK untuk Python (Boto3) Ini memungkinkan Anda untuk menggunakan kode Python untuk berinteraksi dengan AWS layanan seperti Amazon S3. Misalnya, Anda dapat menggunakan SDK untuk membuat bucket Amazon S3, membuat daftar bucket Anda yang tersedia, lalu menghapus bucket yang baru saja Anda buat.

### Memasang PIP
<a name="sample-python-sdk-install-pip"></a>

Di AWS Cloud9 IDE, konfirmasikan `pip` apakah sudah diinstal untuk versi aktif Python dengan menjalankan perintah. **`python -m pip --version`** Jika `pip` terpasang, lewati ke bagian berikutnya.

Untuk memasang `pip`, jalankan perintah berikut. Karena sudo berada di lingkungan yang berbeda dari pengguna Anda, Anda harus menentukan versi Python yang akan digunakan jika berbeda dari versi alias saat ini.

```
curl -O https://bootstrap.pypa.io/get-pip.py # Get the install script.
sudo python3 get-pip.py                     # Install pip for Python 3.
python -m pip --version                      # Verify pip is installed.
rm get-pip.py                                # Delete the install script.
```

Untuk informasi selengkapnya, lihat [Pemasangan](https://pip.pypa.io/en/stable/installing/) di situs web `pip`.

### Instal AWS SDK untuk Python (Boto3)
<a name="sample-python-sdk-install-sdk"></a>

Setelah Anda menginstal`pip`, instal AWS SDK untuk Python (Boto3) dengan menjalankan **`pip install`**perintah.

```
sudo python3 -m pip install boto3  # Install boto3 for Python 3.
python -m pip show boto3            # Verify boto3 is installed for the current version of Python.
```

Untuk informasi selengkapnya, lihat bagian “Instalasi” dari [Mulai Cepat](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) di. AWS SDK untuk Python (Boto3)

### Mengatur kredensial di lingkungan Anda
<a name="sample-python-sdk-credentials"></a>

Setiap kali Anda menggunakan AWS SDK untuk Python (Boto3) untuk memanggil AWS layanan, Anda harus memberikan satu set kredensional dengan panggilan tersebut. Kredensial ini menentukan apakah SDK memiliki izin yang diperlukan untuk melakukan panggilan. Jika kredensial tidak mencakup izin yang diperlukan, panggilan gagal.

Untuk menyimpan kredensial Anda di dalam lingkungan, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi selengkapnya, lihat [Kredensial](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html) di AWS SDK untuk Python (Boto3).

## Langkah 5: Tambahkan kode AWS SDK
<a name="sample-python-sdk-code"></a>

Tambahkan kode yang menggunakan Amazon S3 untuk membuat bucket, mencantumkan bucket Anda yang tersedia, dan secara opsional menghapus bucket yang baru saja Anda buat.

Di AWS Cloud9 IDE, buat file dengan konten berikut dan simpan file dengan namanya`s3.py`.

```
import sys
import boto3
from botocore.exceptions import ClientError


def list_my_buckets(s3_resource):
    print("Buckets:\n\t", *[b.name for b in s3_resource.buckets.all()], sep="\n\t")


def create_and_delete_my_bucket(s3_resource, bucket_name, keep_bucket):
    list_my_buckets(s3_resource)

    try:
        print("\nCreating new bucket:", bucket_name)
        bucket = s3_resource.create_bucket(
            Bucket=bucket_name,
            CreateBucketConfiguration={
                "LocationConstraint": s3_resource.meta.client.meta.region_name
            },
        )
    except ClientError as e:
        print(
            f"Couldn't create a bucket for the demo. Here's why: "
            f"{e.response['Error']['Message']}"
        )
        raise

    bucket.wait_until_exists()
    list_my_buckets(s3_resource)

    if not keep_bucket:
        print("\nDeleting bucket:", bucket.name)
        bucket.delete()

        bucket.wait_until_not_exists()
        list_my_buckets(s3_resource)
    else:
        print("\nKeeping bucket:", bucket.name)


def main():
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument("bucket_name", help="The name of the bucket to create.")
    parser.add_argument("region", help="The region in which to create your bucket.")
    parser.add_argument(
        "--keep_bucket",
        help="Keeps the created bucket. When not "
        "specified, the bucket is deleted "
        "at the end of the demo.",
        action="store_true",
    )

    args = parser.parse_args()
    s3_resource = (
        boto3.resource("s3", region_name=args.region)
        if args.region
        else boto3.resource("s3")
    )
    try:
        create_and_delete_my_bucket(s3_resource, args.bucket_name, args.keep_bucket)
    except ClientError:
        print("Exiting the demo.")


if __name__ == "__main__":
    main()
```

## Langkah 6: Jalankan kode AWS SDK
<a name="sample-python-sdk-run"></a>

1. Pada bilah menu, pilih **Jalankan**, **Jalankan Konfigurasi**, **Jalankan Konfigurasi Baru**.

1. Untuk **Command**`s3.py my-test-bucket us-west-2`, enter, di mana `my-test-bucket` nama bucket yang akan dibuat, dan `us-west-2` merupakan ID AWS Wilayah tempat bucket Anda dibuat. Secara default, bucket Anda dihapus sebelum skrip keluar. Untuk menyimpan bucket Anda, tambahkan `--keep_bucket` ke perintah Anda. Untuk daftar AWS Wilayah IDs, lihat [Titik Akhir dan Kuota Layanan Penyimpanan Sederhana Amazon](https://docs.aws.amazon.com/general/latest/gr/s3.html) di. *Referensi Umum AWS*
**catatan**  
Nama bucket Amazon S3 harus unik di seluruh AWS—bukan hanya akun Anda. AWS 

1. Pilih **Jalankan**, dan bandingkan output Anda.

   ```
   Buckets:
   
           a-pre-existing-bucket
   
   Creating new bucket: my-test-bucket
   Buckets:
   
           a-pre-existing-bucket
           my-test-bucket
   
   Deleting bucket: my-test-bucket
   Buckets:
   
           a-pre-existing-bucket
   ```

## Langkah 7: Bersihkan
<a name="sample-python-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah Anda selesai dengan tutorial ini, hapus AWS Cloud9 lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# Tutorial.NET untuk AWS Cloud9
<a name="sample-dotnetcore"></a>

Tutorial ini memungkinkan Anda untuk menjalankan beberapa kode .NET di lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-dotnetcore-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-dotnetcore-setup)
+ [Langkah 2 (Opsional): Pasang ekstensi .NET CLI untuk fungsi Lambda](#sample-dotnetcore-lambda)
+ [Langkah 3: Buat proyek aplikasi konsol.NET](#sample-dotnetcore-app)
+ [Langkah 4: Tambahkan kode](#sample-dotnetcore-code)
+ [Langkah 5: Bangun dan jalankan kode](#sample-dotnetcore-run)
+ [Langkah 6: Buat dan siapkan proyek aplikasi konsol.NET yang menggunakan AWS SDK untuk .NET](#sample-dotnetcore-sdk)
+ [Langkah 7: Tambahkan kode AWS SDK](#sample-dotnetcore-sdk-code)
+ [Langkah 8: Bangun dan jalankan kode AWS SDK](#sample-dotnetcore-sdk-run)
+ [Langkah 9: Membersihkan](#sample-dotnetcore-clean-up)

## Prasyarat
<a name="sample-dotnetcore-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-dotnetcore-setup"></a>

Pada langkah ini, Anda menginstal .NET SDK ke lingkungan Anda, yang diperlukan untuk menjalankan sampel ini.

1. Konfirmasikan apakah versi terbaru dari .NET SDK sudah diinstal di lingkungan Anda. Untuk melakukan ini, dalam sesi terminal di AWS Cloud9 IDE, jalankan antarmuka baris perintah .NET Core (CLI) dengan opsi. **`--version`**

   ```
   dotnet --version
   ```

   Jika versi Alat Baris Perintah .NET ditampilkan, dan versinya 2.0 atau lebih tinggi, langsung lanjutkan ke [Langkah 3: Buat proyek aplikasi konsol.NET](#sample-dotnetcore-app). Jika versi kurang dari 2.0, atau jika kesalahan seperti `bash: dotnet: command not found` ditampilkan, lanjutkan untuk menginstal .NET SDK.

1. Untuk Amazon Linux, dalam sesi terminal di AWS Cloud9 IDE, jalankan perintah berikut untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug diinstal, dan untuk menginstal `libunwind` paket yang dibutuhkan .NET SDK. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela, Terminal Baru**.)

   ```
   sudo yum -y update
   sudo yum -y install libunwind
   ```

   Untuk Ubuntu Server, dalam sesi terminal di AWS Cloud9 IDE, jalankan perintah berikut untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug diinstal. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela, Terminal Baru**.)

   ```
   sudo apt -y update
   ```

1. Unduh skrip installer.NET SDK ke lingkungan Anda dengan menjalankan perintah berikut.

   ```
   wget https://dot.net/v1/dotnet-install.sh
   ```

1. Jadikan skrip pemasangan dapat dieksekusi oleh pengguna saat ini dengan menjalankan perintah berikut.

   ```
   sudo chmod u=rx dotnet-install.sh
   ```

1. Jalankan skrip penginstal, yang mengunduh dan menginstal .NET SDK, dengan menjalankan perintah berikut.

   ```
   ./dotnet-install.sh -c Current
   ```

1. Tambahkan .NET SDK ke file Anda`PATH`. Untuk melakukannya, di profil shell untuk lingkungan (misalnya, file `.bashrc`), tambahkan subdirektori `$HOME/.dotnet` ke variabel `PATH` untuk lingkungan, sebagai berikut.

   1. Buka file `.bashrc` untuk mengedit dengan menggunakan perintah ** `vi` **.

      ```
      vi ~/.bashrc
      ```

   1. Untuk Amazon Linux, menggunakan tombol panah bawah atau `j`, pindah ke baris yang dimulai dengan `export PATH`.

      Untuk Server Ubuntu, pindah ke baris terakhir file dengan mengetik `G`.

   1. Menggunakan tombol panah kanan atau `$`, pindah ke akhir baris itu.

   1. Beralih ke mode penyisipan dengan menekan tombol `i`. (`-- INSERT ---` akan muncul di akhir tampilan.)

   1. Untuk Amazon Linux, tambahkan subdirektori `$HOME/.dotnet` ke variabel ** `PATH` ** dengan mengetik `:$HOME/.dotnet`. Pastikan untuk menyertakan karakter titik dua (`:`). Baris sekarang akan terlihat seperti berikut.

      ```
      export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet
      ```

      Untuk Server Ubuntu, tekan tombol panah kanan lalu tekan `Enter` dua kali, diikuti dengan mengetik baris berikut di akhir file sendiri.

      ```
      export PATH=$HOME/.dotnet:$PATH
      ```

   1. Simpan file tersebut. Untuk melakukannya, tekan tombol `Esc` (`-- INSERT ---` akan menghilang dari akhir tampilan), ketik `:wq` (untuk menulis ke dan kemudian keluar dari file), lalu tekan `Enter`.

1. Muat .NET SDK dengan sumber `.bashrc` file.

   ```
   . ~/.bashrc
   ```

1. Konfirmasikan .NET SDK dimuat dengan menjalankan .NET CLI dengan **`--help`**opsi.

   ```
   dotnet --help
   ```

   Jika berhasil, nomor versi.NET SDK ditampilkan, dengan informasi penggunaan tambahan.

1. Jika Anda tidak lagi ingin menyimpan skrip installer.NET SDK di lingkungan Anda, Anda dapat menghapusnya sebagai berikut.

   ```
   rm dotnet-install.sh
   ```

## Langkah 2 (Opsional): Pasang ekstensi .NET CLI untuk fungsi Lambda
<a name="sample-dotnetcore-lambda"></a>

Meskipun tidak diperlukan untuk tutorial ini, Anda dapat menyebarkan AWS Lambda fungsi dan AWS Serverless Application Model aplikasi menggunakan CLI .NET jika Anda juga menginstal `Amazon.Lambda.Tools` paket. 

1. Untuk memasang paket, jalankan perintah berikut:

   ```
   dotnet tool install -g Amazon.Lambda.Tools
   ```

1. Sekarang atur variabel lingkungan `PATH` dan `DOTNET_ROOT` untuk menunjuk ke alat Lambda yang terpasang. Di file `.bashrc`, temukan bagian `export PATH` dan edit sehingga tampak seperti berikut ini (lihat Langkah 1 untuk detail tentang mengedit file ini):

   ```
   export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.dotnet:$HOME/.dotnet/tools
   export DOTNET_ROOT=$HOME/.dotnet
   ```

## Langkah 3: Buat proyek aplikasi konsol.NET
<a name="sample-dotnetcore-app"></a>

Pada langkah ini, Anda menggunakan .NET untuk membuat proyek bernama`hello`. Proyek ini berisi semua file yang dibutuhkan .NET untuk menjalankan aplikasi sederhana dari terminal di IDE. Kode aplikasi ditulis dalam C\$1.

Buat proyek aplikasi konsol.NET. Untuk melakukan ini, jalankan CLI .NET dengan **`new`**perintah, tentukan jenis template proyek aplikasi konsol dan bahasa pemrograman yang akan digunakan (dalam contoh ini, C \$1).

 Opsi `-n` menunjukkan bahwa proyek dikeluarkan ke direktori baru, `hello`. Kami kemudian menavigasi ke direktori itu. 

```
dotnet new console -lang C# -n hello
cd hello
```

Perintah sebelumnya menambahkan subdirektori dengan nama `obj` dengan beberapa file, dan beberapa file mandiri tambahan, ke direktori `hello`. Anda harus mencatat dua file kunci berikut:
+ File `hello/hello.csproj` berisi informasi tentang proyek aplikasi konsol tersebut.
+ File `hello/Program.cs` berisi kode aplikasi untuk dijalankan.

## Langkah 4: Tambahkan kode
<a name="sample-dotnetcore-code"></a>

Pada langkah ini, Anda menambahkan beberapa kode ke aplikasi.

Dari jendela **Lingkungan** di AWS Cloud9 IDE, buka `hello/Program.cs` file.

Di editor, ganti konten file saat ini dengan kode berikut, lalu simpan file `Program.cs`.

```
using System;

namespace hello
{
  class Program
  {
    static void Main(string[] args)
    {
     if (args.Length < 2) {
       Console.WriteLine("Please provide 2 numbers");
       return;
     }

     Console.WriteLine("Hello, World!");

     Console.WriteLine("The sum of 2 and 3 is 5.");

     int sum = Int32.Parse(args[0]) + Int32.Parse(args[1]);

     Console.WriteLine("The sum of {0} and {1} is {2}.",
     args[0], args[1], sum);

    }
  }
}
```

## Langkah 5: Bangun dan jalankan kode
<a name="sample-dotnetcore-run"></a>

Pada langkah ini, Anda membangun proyek dan dependensinya ke dalam kumpulan file biner, termasuk file aplikasi yang dapat dijalankan. Kemudian anda menjalankan aplikasi tersebut.

1. Dalam IDE, buat pembangun untuk.NET sebagai berikut.

   1. Pada bilah menu, pilih **Jalankan, Bangun Sistem, Sistem Bangun Baru**.

   1. Pada tab **Builder.build Saya**, ganti konten tab dengan kode berikut.

      ```
      {
        "cmd" : ["dotnet", "build"],
        "info" : "Building..."
      }
      ```

   1. Pilih **File, Simpan Sebagai**.

   1. Untuk **Filename**, ketik `.NET.build`.

   1. Untuk **Folder**, ketik `/.c9/builders`.

   1. Pilih **Simpan**.

1. Dengan isi `Program.cs` file yang ditampilkan di editor, pilih **Jalankan, Bangun Sistem, .NET**. Kemudian pilih **Jalankan, Bangun**.

   Pembangun ini menambahkan subdirektori dengan nama `bin` dan menambahkan subdirektori dengan nama `Debug` ke subdirektori `hello/obj`. Perhatikan tiga file kunci berikut.
   + File `hello/bin/Debug/netcoreapp3.1/hello.dll` adalah file aplikasi yang dapat dijalankan.
   + File `hello/bin/Debug/netcoreapp3.1/hello.deps.json` mencantumkan dependensi aplikasi.
   + File `hello/bin/Debug/netcoreapp3.1/hello.runtimeconfig.json` menentukan waktu aktif bersama dan versinya untuk aplikasi.
**catatan**  
Nama folder,`netcoreapp3.1`, mencerminkan versi SDK .NET yang digunakan dalam contoh ini. Anda mungkin melihat nomor yang berbeda dalam nama folder tergantung pada versi yang telah Anda pasang.

1. Buat runner untuk.NET sebagai berikut.

   1. Pada bilah menu, pilih **Jalankan, Jalankan Dengan, Runner Baru**.

   1. Pada tab **My Runner.run**, ganti isi tab dengan kode berikut.

      ```
      {
        "cmd" : ["dotnet", "run", "$args"],
        "working_dir": "$file_path",
        "info" : "Running..."
      }
      ```

   1. Pilih **File, Simpan Sebagai**.

   1. Untuk **Filename**, ketik `.NET.run`.

   1. Untuk **Folder**, ketik `/.c9/runners`.

   1. Pilih **Simpan**.

1. Jalankan aplikasi dengan dua bilangan bulat untuk ditambahkan (misalnya, `5` dan `9`) sebagai berikut.

   1. Dengan isi file `Program.cs` yang ditampilkan di editor, pilih **Jalankan, Jalankan Konfigurasi, Jalankan Konfigurasi Baru**.

   1. **Di tab **[Baru] - Idle**, pilih **Runner: Auto**, lalu pilih .NET.**

   1. Di kotak **Perintah**, ketik `hello 5 9`.

   1. Pilih **Jalankan**.

      Secara default, runner ini menginstruksikan.NET untuk menjalankan `hello.dll` file di direktori. `hello/bin/Debug/netcoreapp3.1`

      Bandingkan output Anda dengan yang berikut ini.

      ```
      Hello, World!
      The sum of 2 and 3 is 5.
      The sum of 5 and 9 is 14.
      ```

## Langkah 6: Buat dan siapkan proyek aplikasi konsol.NET yang menggunakan AWS SDK untuk .NET
<a name="sample-dotnetcore-sdk"></a>

Anda dapat menyempurnakan sampel ini AWS SDK untuk .NET untuk menggunakan bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja Anda buat.

Dalam proyek baru ini, Anda menambahkan referensi ke AWS SDK untuk .NET. AWS SDK untuk .NET Ini menyediakan cara mudah untuk berinteraksi dengan AWS layanan seperti Amazon S3, dari kode .NET Anda. Anda kemudian mengatur manajemen AWS kredensyal di lingkungan Anda. AWS SDK untuk .NET Kebutuhan kredensyal ini untuk berinteraksi dengan AWS layanan.

### Untuk membuat proyek
<a name="sample-dotnetcore-sdk-create"></a>

1. Buat proyek aplikasi konsol.NET. Untuk melakukan ini, jalankan CLI .NET dengan **`new`**perintah, tentukan jenis template proyek aplikasi konsol dan bahasa pemrograman yang akan digunakan. 

   Opsi `-n` menunjukkan bahwa proyek dikeluarkan ke direktori baru, `s3`. Kami kemudian menavigasi ke direktori itu.

   ```
   dotnet new console -lang C# -n s3
   cd s3
   ```

1. Tambahkan referensi proyek ke paket Amazon S3 di AWS SDK untuk .NET. Untuk melakukan ini, jalankan .NET CLI dengan **`add package`**perintah, tentukan nama paket Amazon S3 di. NuGet (NuGetmendefinisikan bagaimana paket untuk .NET dibuat, di-host, dan dikonsumsi, dan menyediakan alat untuk masing-masing peran tersebut.)

   ```
   dotnet add package AWSSDK.S3
   ```

   Saat Anda menambahkan referensi proyek ke paket Amazon S3, tambahkan NuGet juga referensi proyek ke paket lainnya. AWS SDK untuk .NET
**catatan**  
Untuk nama dan versi paket AWS terkait lainnya NuGet, lihat [NuGetpaket yang ditandai dengan aws-sdk](https://www.nuget.org/packages?q=Tags%3A%22aws-sdk%22) di situs web. NuGet 

### Untuk mengatur manajemen AWS kredensyal
<a name="sample-dotnetcore-sdk-creds"></a>

Setiap kali Anda menggunakan AWS SDK untuk .NET untuk memanggil AWS layanan, Anda harus memberikan satu set AWS kredensyal dengan panggilan tersebut. Kredensyal ini menentukan apakah AWS SDK untuk .NET memiliki izin yang sesuai untuk melakukan panggilan itu. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Untuk menyimpan kredensial Anda di dalam lingkungan, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

*Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS Kredensyal di Panduan](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html) Pengembang.AWS SDK untuk .NET *

## Langkah 7: Tambahkan kode AWS SDK
<a name="sample-dotnetcore-sdk-code"></a>

Pada langkah ini, Anda menambahkan kode untuk berinteraksi dengan Amazon S3 untuk membuat bucket, menghapus bucket yang baru saja Anda buat, lalu mencantumkan bucket yang tersedia.

Dari jendela **Lingkungan** di AWS Cloud9 IDE, buka `s3/Program.cs` file. Di editor, ganti konten file saat ini dengan kode berikut, lalu simpan file `Program.cs`.

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using Amazon.S3.Util;
using System;
using System.Threading.Tasks;
     
namespace s3
{
  class Program
  {
   async static Task Main(string[] args)
   {
    if (args.Length < 2) {
      Console.WriteLine("Usage: <the bucket name> <the AWS Region to use>");
      Console.WriteLine("Example: my-test-bucket us-east-2");
      return;
    }
     
    if (args[1] != "us-east-2") {
      Console.WriteLine("Cannot continue. The only supported AWS Region ID is " +
      "'us-east-2'.");
       return;
     }
         
      var bucketRegion = RegionEndpoint.USEast2;
      // Note: You could add more valid AWS Regions above as needed.
     
      using (var s3Client = new AmazonS3Client(bucketRegion)) {
      var bucketName = args[0];
        
      // Create the bucket.
      try
      {
       if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName))
       {
         Console.WriteLine("Cannot continue. Cannot create bucket. \n" +
         "A bucket named '{0}' already exists.", bucketName);
         return;
       } else {
         Console.WriteLine("\nCreating the bucket named '{0}'...", bucketName);
         await s3Client.PutBucketAsync(bucketName);
         }
       }
       catch (AmazonS3Exception e)
       {
        Console.WriteLine("Cannot continue. {0}", e.Message);
       }
       catch (Exception e)
       {
        Console.WriteLine("Cannot continue. {0}", e.Message);
       }
        
       // Confirm that the bucket was created.
       if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName))
       {
          Console.WriteLine("Created the bucket named '{0}'.", bucketName);
       } else {
         Console.WriteLine("Did not create the bucket named '{0}'.", bucketName);
       }
        
       // Delete the bucket.
       Console.WriteLine("\nDeleting the bucket named '{0}'...", bucketName);
       await s3Client.DeleteBucketAsync(bucketName);
        
       // Confirm that the bucket was deleted.
       if (await AmazonS3Util.DoesS3BucketExistV2Async(s3Client, bucketName))
       {
          Console.WriteLine("Did not delete the bucket named '{0}'.", bucketName);
       } else {
         Console.WriteLine("Deleted the bucket named '{0}'.", bucketName);
       };
        
        // List current buckets.
       Console.WriteLine("\nMy buckets now are:");
       var response = await s3Client.ListBucketsAsync();
        
       foreach (var bucket in response.Buckets)
       {
       Console.WriteLine(bucket.BucketName);
       }
      }
    }
  }
}
```

## Langkah 8: Bangun dan jalankan kode AWS SDK
<a name="sample-dotnetcore-sdk-run"></a>

Pada langkah ini, Anda membangun proyek dan dependensinya ke dalam kumpulan file biner, termasuk file aplikasi yang dapat dijalankan. Kemudian anda menjalankan aplikasi tersebut.

1. Bangun proyek. Untuk melakukan ini, dengan konten file `s3/Program.cs` yang ditampilkan di editor, pada bilah menu, pilih **Jalankan, Bangun**.

1. Jalankan aplikasi dengan nama bucket Amazon S3 yang akan dibuat dan ID Wilayah AWS untuk membuat bucket di (misalnya, `my-test-bucket` dan `us-east-2`) sebagai berikut.

   1. Dengan isi file `s3/Program.cs` yang masih ditampilkan di editor, pilih **Jalankan, Jalankan Konfigurasi, Jalankan Konfigurasi Baru**.

   1. **Di tab **[Baru] - Idle**, pilih **Runner: Auto**, lalu pilih .NET.**

   1. Di kotak **Command**, ketikkan nama aplikasi, nama bucket Amazon S3 yang akan dibuat, dan ID AWS Wilayah untuk membuat bucket (misalnya,`s3 my-test-bucket us-east-2`).

   1. Pilih **Jalankan**.

      Secara default, runner ini menginstruksikan.NET untuk menjalankan `s3.dll` file di direktori. `s3/bin/Debug/netcoreapp3.1`

      Bandingkan hasil Anda dengan output berikut.

      ```
      Creating a new bucket named 'my-test-bucket'...
      Created the bucket named 'my-test-bucket'.
      
      Deleting the bucket named 'my-test-bucket'...
      Deleted the bucket named 'my-test-bucket'.
      
      My buckets now are:
      ```

## Langkah 9: Membersihkan
<a name="sample-dotnetcore-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# Tutorial Node.js untuk AWS Cloud9
<a name="sample-nodejs"></a>

Tutorial ini memungkinkan Anda untuk menjalankan beberapa skrip Node.js di lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [ EC2 Harga Amazon dan Harga](https://aws.amazon.com/ec2/pricing/) [Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-nodejs-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-nodejs-install)
+ [Langkah 2: Menambahkan kode](#sample-nodejs-code)
+ [Langkah 3: Jalankan kode](#sample-nodejs-run)
+ [Langkah 4: Instal dan konfigurasikan AWS SDK untuk JavaScript di Node.js](#sample-nodejs-sdk)
+ [Langkah 5: Tambahkan kode AWS SDK](#sample-nodejs-sdk-code)
+ [Langkah 6: Jalankan kode AWS SDK](#sample-nodejs-sdk-run)
+ [Langkah 7: Bersihkan](#sample-nodejs-clean-up)

## Prasyarat
<a name="sample-nodejs-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan AWS Cloud9 EC2 pengembangan yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki EC2 lingkungan yang terhubung ke EC2 instans Amazon yang menjalankan Amazon Linux atau Ubuntu Peladen. Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-nodejs-install"></a>

Pada langkah ini, Anda memasang Node.js, yang diperlukan untuk menjalankan sampel ini.

1. Dalam sesi terminal di AWS Cloud9 IDE, konfirmasikan apakah Node.js sudah diinstal dengan menjalankan **`node --version`**perintah. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika berhasil, output berisi nomor versi Node.js. Jika Node.js sudah terpasang, lewati ke [Langkah 2: Menambahkan kode](#sample-nodejs-code).

1. Jalankan perintah ** `yum update` ** untuk (Amazon Linux) atau ** `apt update` ** untuk (Ubuntu Server) untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug terpasang.

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Untuk menginstal Node.js, mulailah dengan menjalankan perintah ini untuk mengunduh Node Version Manager (nvm). (nvm adalah skrip shell Bash sederhana yang berguna untuk menginstal dan mengelola versi Node.js. Untuk informasi selengkapnya, lihat [Pengelola Versi Node](https://github.com/creationix/nvm/blob/master/README.md) di GitHub situs web.)

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
   ```

1. Untuk mulai menggunakan nvm, tutup sesi terminal dan mulai lagi, atau cari file `~/.bashrc` yang berisi perintah untuk memuat nvm.

   ```
   . ~/.bashrc
   ```

1. Jalankan perintah ini untuk menginstal Node.js 16 di Amazon Linux 2, Amazon Linux 1 dan Ubuntu 18.04. Instans Amazon Linux 1 dan Ubuntu 18.04 hanya mendukung Node.js hingga v16.

   ```
   nvm install 16
   ```

   Jalankan perintah ini untuk menginstal versi terbaru Node.js di Amazon Linux 2023 dan Ubuntu 22.04:

   ```
   nvm install --lts && nvm alias default lts/*
   ```
**catatan**  
 AWS Cloud9 Gambar AL2 023 terbaru telah diinstal Node.js 20, dan AWS Cloud9 gambar Amazon Linux 2 terbaru telah diinstal Node.js 18. Jika Anda ingin menginstal Node.js 18 di Amazon Linux 2 AWS Cloud9 secara manual, jalankan perintah berikut di terminal AWS Cloud9 IDE:  

   ```
   C9_NODE_INSTALL_DIR=~/.nvm/versions/node/v18.17.1
   C9_NODE_URL=https://d3kgj69l4ph6w4.cloudfront.net/static/node-amazon/node-v18.17.1-linux-x64.tar.gz
   mkdir -p $C9_NODE_INSTALL_DIR
   curl -fSsl $C9_NODE_URL  | tar xz --strip-components=1 -C "$C9_NODE_INSTALL_DIR"
   nvm alias default v18.17.1
   nvm use default
   echo -e 'nvm use default' >> ~/.bash_profile
   ```

## Langkah 2: Menambahkan kode
<a name="sample-nodejs-code"></a>

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`hello.js`. (Untuk membuat file, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**.)

```
console.log('Hello, World!');

console.log('The sum of 2 and 3 is 5.');

var sum = parseInt(process.argv[2], 10) + parseInt(process.argv[3], 10);

console.log('The sum of ' + process.argv[2] + ' and ' +
  process.argv[3] + ' is ' + sum + '.');
```

## Langkah 3: Jalankan kode
<a name="sample-nodejs-run"></a>

1. Di AWS Cloud9 IDE, pada bilah menu, pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Node.js**.

1. Untuk **Perintah**, ketik `hello.js 5 9`. Dalam kode, `5` mewakili `process.argv[2]`, dan `9` mewakili `process.argv[3]`. (`process.argv[0]`mewakili nama runtime (`node`), dan `process.argv[1]` mewakili nama file (`hello.js`).)

1. Pilih tombol **Jalankan**, dan bandingkan output Anda.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

![\[Output Node.js setelah menjalankan kode di AWS Cloud9 IDE\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/ide-nodejs-simple.png)


## Langkah 4: Instal dan konfigurasikan AWS SDK untuk JavaScript di Node.js
<a name="sample-nodejs-sdk"></a>

Saat menjalankan skrip Node.js di AWS Cloud9, Anda dapat memilih antara AWS SDK untuk JavaScript versi 3 (V3) dan AWS SDK yang lebih lama untuk JavaScript versi 2 (V2). Seperti halnya V2, V3 memungkinkan Anda untuk dengan mudah bekerja dengan Amazon Web Services, tetapi telah ditulis TypeScript dan menambahkan beberapa fitur yang sering diminta, seperti paket termodulasi.

------
#### [ AWS SDK for JavaScript (V3) ]

Anda dapat menyempurnakan sampel ini untuk menggunakan AWS SDK for JavaScript di Node.js untuk membuat bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja dibuat.

Pada langkah ini, Anda menginstal dan mengonfigurasi modul klien layanan Amazon S3 dari AWS SDK untuk JavaScript di Node.js, yang menyediakan cara mudah untuk berinteraksi dengan AWS layanan Amazon S3, dari kode Anda. JavaScript 

Jika Anda ingin menggunakan AWS layanan lain, Anda perlu menginstalnya secara terpisah. Untuk informasi selengkapnya tentang menginstal AWS modul, lihat [di *Panduan AWS Pengembang (V3)*](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/working-with-services). Untuk informasi tentang cara memulai Node.js dan AWS SDK for JavaScript (V3), lihat [Memulai Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-started-nodejs.html#getting-started-nodejs-setup-structure) di *AWS SDK for JavaScript Developers Guide (*V3).

 Setelah Anda menginstal AWS SDK untuk JavaScript di Node.js, Anda harus menyiapkan manajemen kredensional di lingkungan Anda. AWS SDK untuk JavaScript di Node.js membutuhkan kredensil ini untuk berinteraksi dengan layanan. AWS 

**Untuk menginstal AWS SDK untuk JavaScript di Node.js**

Gunakan NPM untuk menjalankan perintah **`install`**.

```
npm install @aws-sdk/client-s3
```

Untuk informasi selengkapnya, lihat [Menginstal SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-up.html#installing-jssdk) di *Panduan AWS SDK untuk JavaScript Pengembang*.

**Untuk mengatur manajemen kredensil di lingkungan Anda**

Setiap kali Anda menggunakan AWS SDK for JavaScript di Node.js untuk memanggil AWS layanan, Anda harus menyediakan satu set kredensional dengan panggilan tersebut. Kredensi ini menentukan apakah AWS SDK untuk JavaScript di Node.js memiliki izin yang sesuai untuk melakukan panggilan tersebut. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Pada langkah ini, Anda menyimpan kredensial Anda di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi tambahan, lihat [Mengatur Kredensial di Node.js](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html) di *Panduan Developer AWS SDK untuk JavaScript *.

------
#### [ AWS SDK for JavaScript (V2) ]

Anda dapat menyempurnakan sampel ini untuk menggunakan AWS SDK for JavaScript di Node.js untuk membuat bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja dibuat.

Pada langkah ini, Anda menginstal dan mengonfigurasi AWS SDK untuk JavaScript di Node.js, yang menyediakan cara mudah untuk berinteraksi dengan AWS layanan seperti Amazon S3, dari JavaScript kode Anda. Setelah Anda menginstal AWS SDK untuk JavaScript di Node.js, Anda harus menyiapkan manajemen kredensional di lingkungan Anda. AWS SDK untuk JavaScript di Node.js membutuhkan kredensil ini untuk berinteraksi dengan layanan. AWS 

**Untuk menginstal AWS SDK untuk JavaScript di Node.js**

Gunakan NPM untuk menjalankan perintah **`install`**.

```
npm install aws-sdk
```

Untuk informasi selengkapnya, lihat [Menginstal SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/installing-jssdk.html) di *Panduan AWS SDK untuk JavaScript Pengembang*.

**Untuk mengatur manajemen kredensil di lingkungan Anda**

Setiap kali Anda menggunakan AWS SDK for JavaScript di Node.js untuk memanggil AWS layanan, Anda harus menyediakan satu set kredensional dengan panggilan tersebut. Kredensi ini menentukan apakah AWS SDK untuk JavaScript di Node.js memiliki izin yang sesuai untuk melakukan panggilan tersebut. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Pada langkah ini, Anda menyimpan kredensial Anda di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi tambahan, lihat [Mengatur Kredensial di Node.js](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html) di *Panduan Developer AWS SDK untuk JavaScript *.

------

## Langkah 5: Tambahkan kode AWS SDK
<a name="sample-nodejs-sdk-code"></a>

------
#### [ AWS SDK for JavaScript (V3) ]

Pada langkah ini, Anda menambahkan beberapa kode lagi, kali ini untuk berinteraksi dengan Amazon S3 untuk membuat bucket, daftarkan bucket Anda yang tersedia, lalu hapus bucket yang baru saja Anda buat. Anda akan menjalankan kode ini nanti.

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`s3.js`.

```
import {
  CreateBucketCommand,
  DeleteBucketCommand,
  ListBucketsCommand,
  S3Client,
} from "@aws-sdk/client-s3";

const wait = async (milliseconds) => {
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
};

export const main = async () => {
  const client = new S3Client({});
  const now = Date.now();
  const BUCKET_NAME = `easy-bucket-${now.toString()}`;

  const createBucketCommand = new CreateBucketCommand({ Bucket: BUCKET_NAME });
  const listBucketsCommand = new ListBucketsCommand({});
  const deleteBucketCommand = new DeleteBucketCommand({ Bucket: BUCKET_NAME });

  try {
    console.log(`Creating bucket ${BUCKET_NAME}.`);
    await client.send(createBucketCommand);
    console.log(`${BUCKET_NAME} created`);

    await wait(2000);

    console.log(`Here are your buckets:`);
    const { Buckets } = await client.send(listBucketsCommand);
    Buckets.forEach((bucket) => {
      console.log(` • ${bucket.Name}`);
    });

    await wait(2000);

    console.log(`Deleting bucket ${BUCKET_NAME}.`);
    await client.send(deleteBucketCommand);
    console.log(`${BUCKET_NAME} deleted`);
  } catch (err) {
    console.error(err);
  }
};

main();
```

------
#### [ AWS SDK for JavaScript (V2) ]

Pada langkah ini, Anda menambahkan beberapa kode lagi, kali ini untuk berinteraksi dengan Amazon S3 untuk membuat bucket, daftarkan bucket Anda yang tersedia, lalu hapus bucket yang baru saja Anda buat. Anda akan menjalankan kode ini nanti.

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`s3.js`.

```
if (process.argv.length < 4) {
  console.log(
    "Usage: node s3.js <the bucket name> <the AWS Region to use>\n" +
      "Example: node s3.js my-test-bucket us-east-2"
  );
  process.exit(1);
}

var AWS = require("aws-sdk"); // To set the AWS credentials and region.
var async = require("async"); // To call AWS operations asynchronously.

AWS.config.update({
  region: region,
});

var s3 = new AWS.S3({ apiVersion: "2006-03-01" });
var bucket_name = process.argv[2];
var region = process.argv[3];

var create_bucket_params = {
  Bucket: bucket_name,
  CreateBucketConfiguration: {
    LocationConstraint: region,
  },
};

var delete_bucket_params = { Bucket: bucket_name };

// List all of your available buckets in this AWS Region.
function listMyBuckets(callback) {
  s3.listBuckets(function (err, data) {
    if (err) {
    } else {
      console.log("My buckets now are:\n");

      for (var i = 0; i < data.Buckets.length; i++) {
        console.log(data.Buckets[i].Name);
      }
    }

    callback(err);
  });
}

// Create a bucket in this AWS Region.
function createMyBucket(callback) {
  console.log("\nCreating a bucket named " + bucket_name + "...\n");

  s3.createBucket(create_bucket_params, function (err, data) {
    if (err) {
      console.log(err.code + ": " + err.message);
    }

    callback(err);
  });
}

// Delete the bucket you just created.
function deleteMyBucket(callback) {
  console.log("\nDeleting the bucket named " + bucket_name + "...\n");

  s3.deleteBucket(delete_bucket_params, function (err, data) {
    if (err) {
      console.log(err.code + ": " + err.message);
    }

    callback(err);
  });
}

// Call the AWS operations in the following order.
async.series([
  listMyBuckets,
  createMyBucket,
  listMyBuckets,
  deleteMyBucket,
  listMyBuckets,
]);
```

------

## Langkah 6: Jalankan kode AWS SDK
<a name="sample-nodejs-sdk-run"></a>

1. Aktifkan kode untuk memanggil operasi Amazon S3 secara asinkron dengan menggunakan npm untuk menjalankan perintah ** `install` **.

   ```
   npm install async
   ```

1. Di AWS Cloud9 IDE, pada bilah menu, pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Node.js**.

1. Jika Anda menggunakan AWS SDK for JavaScript (V3), untuk tipe **Command**. `s3.js` Jika Anda menggunakan AWS SDK untuk Javascript (v2), untuk tipe **Command**`s3.js my-test-bucket us-east-2`, di mana `my-test-bucket` nama bucket yang ingin Anda buat lalu hapus, dan `us-east-2` merupakan ID AWS Wilayah tempat Anda ingin membuat bucket. Untuk selengkapnya IDs, lihat [Amazon Simple Storage Service (Amazon S3) di](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) halaman. *Referensi Umum Amazon Web Services*
**catatan**  
Nama bucket Amazon S3 harus unik di seluruh AWS—bukan hanya akun Anda. AWS 

1. Pilih tombol **Jalankan**, dan bandingkan output Anda.

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## Langkah 7: Bersihkan
<a name="sample-nodejs-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk instruksi, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# PHP tutorial untuk AWS Cloud9
<a name="sample-php"></a>

Tutorial ini memungkinkan Anda untuk menjalankan beberapa skrip PHP di lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-php-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-php-install)
+ [Langkah 2: Menambahkan kode](#sample-php-code)
+ [Langkah 3: Jalankan kode](#sample-php-run)
+ [Langkah 4: Instal dan konfigurasikan AWS SDK untuk PHP](#sample-php-sdk)
+ [Langkah 5: Tambahkan kode AWS SDK](#sample-php-sdk-code)
+ [Langkah 6: Jalankan kode AWS SDK](#sample-php-sdk-run)
+ [Langkah 7: Bersihkan](#sample-php-clean-up)

## Prasyarat
<a name="sample-php-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-php-install"></a>

Pada langkah ini, Anda memasang PHP, yang diperlukan untuk menjalankan sampel ini.

**catatan**  
Prosedur berikut hanya memasang PHP. Untuk menginstal alat terkait seperti server web Apache dan database MySQL, [lihat Tutorial: Menginstal Server Web LAMP di Amazon Linux di Panduan Pengguna Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html) *EC2*.

1. Dalam sesi terminal di AWS Cloud9 IDE, konfirmasikan apakah PHP sudah diinstal dengan menjalankan **`php --version`**perintah. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika berhasil, output berisi nomor versi PHP. Jika PHP sudah terpasang, lewati ke [Langkah 2: Menambahkan kode](#sample-php-code).

1. Jalankan perintah ** `yum update` ** untuk (Amazon Linux) atau ** `apt update` ** untuk (Ubuntu Server) untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug terpasang.

   Untuk Amazon Linux 2 dan Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Pasang PHP dengan menjalankan perintah ** `install` **.

   Untuk Amazon Linux 2:

   ```
   sudo amazon-linux-extras install -y php7.2
   ```

   Untuk Amazon Linux:

   ```
   sudo yum -y install php72
   ```
**catatan**  
Anda dapat melihat versi Amazon Linux Anda menggunakan perintah berikut:   

   ```
   cat /etc/system-release
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt install -y php php-xml
   ```

   Untuk informasi selengkapnya, lihat [Pemasangan dan Konfigurasi](http://php.net/manual/en/install.php) di situs web PHP.

## Langkah 2: Menambahkan kode
<a name="sample-php-code"></a>

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`hello.php`. (Untuk membuat file, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**, ketik `hello.php` untuk **Filename**, lalu pilih **Simpan**.)

```
<?php
  print('Hello, World!');

  print("\nThe sum of 2 and 3 is 5.");

  $sum = (int)$argv[1] + (int)$argv[2];

  print("\nThe sum of $argv[1] and $argv[2] is $sum.");
?>
```

**catatan**  
Kode sebelumnya tidak bergantung pada file eksternal apa pun. Namun, jika Anda pernah menyertakan atau memerlukan file PHP lain dalam file Anda, dan Anda ingin menggunakan file-file tersebut AWS Cloud9 untuk melakukan penyelesaian kode saat Anda mengetik, **aktifkan Project, PHP Support, Enable PHP code completion** setting di **Preferences**, dan kemudian tambahkan path ke file-file tersebut ke pengaturan **Project, PHP Support, PHP Completion Include Paths**. (Untuk melihat dan mengubah preferensi Anda, pilih **AWS Cloud9, Preferensi** pada bilah menu.)

## Langkah 3: Jalankan kode
<a name="sample-php-run"></a>

1. Di AWS Cloud9 IDE, pada bilah menu, pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **PHP.(cli)**.

1. Untuk **Perintah**, ketik `hello.php 5 9`. Dalam kode, `5` mewakili `$argv[1]`, dan `9` mewakili `$argv[2]`. (`$argv[0]`mewakili nama file (`hello.php`).)

1. Pilih tombol **Jalankan**, dan bandingkan output Anda.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

![\[Output dari menjalankan kode PHP di AWS Cloud9 IDE\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/ide-php-simple.png)


## Langkah 4: Instal dan konfigurasikan AWS SDK untuk PHP
<a name="sample-php-sdk"></a>

Anda dapat menyempurnakan sampel ini AWS SDK untuk PHP untuk menggunakan bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja Anda buat.

Pada langkah ini, Anda menginstal dan mengonfigurasi AWS SDK untuk PHP, yang menyediakan cara mudah untuk berinteraksi dengan AWS layanan seperti Amazon S3, dari kode PHP Anda. Sebelum Anda dapat menginstal AWS SDK untuk PHP, Anda harus menginstal [Composer](https://getcomposer.org/). Setelah Anda menginstal AWS SDK untuk PHP, Anda harus mengatur manajemen kredensional di lingkungan Anda. AWS SDK untuk PHP Kebutuhan kredensil ini untuk berinteraksi dengan AWS layanan.

### Untuk memasang Composer
<a name="sample-php-sdk-install-composer"></a>

Jalankan perintah ** `curl` ** dengan opsi diam (`-s`) dan tunjukkan error (`-S`), merampingkan pemasangan Composer ke dalam file arsip PHP (PHAR), dengan nama `composer.phar` menurut konvensi.

```
curl -sS https://getcomposer.org/installer | php
```

### Untuk menginstal AWS SDK untuk PHP
<a name="sample-php-sdk-install-sdk"></a>

Untuk Ubuntu Server, pasang paket tambahan yang dibutuhkan Composer untuk memasang AWS SDK untuk PHP.

```
sudo apt install -y php-xml php-curl
```

Untuk Amazon Linux atau Ubuntu Server, gunakan perintah **php** untuk menjalankan pemasang Composer untuk memasang AWS SDK untuk PHP.

```
php composer.phar require aws/aws-sdk-php
```

Perintah ini membuat beberapa folder dan file di lingkungan Anda. File utama yang akan Anda gunakan adalah `autoload.php`, yang ada di folder `vendor` di lingkungan Anda.

**catatan**  
Setelah pemasangan, Composer mungkin menyarankan Anda memasang dependensi tambahan. Anda dapat melakukan ini dengan perintah seperti berikut, menentukan daftar dependensi yang akan dipasang. Misalnya, perintah berikut menginstruksikan Composer untuk memasang daftar dependensi berikut.  

```
php composer.phar require psr/log ext-curl doctrine/cache aws/aws-php-sns-message-validator
```

Untuk informasi selengkapnya, lihat [Pemasangan](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/installation.html) di dalam *Panduan Developer AWS SDK untuk PHP *.

### Untuk mengatur pengelolaan kredensial di lingkungan Anda
<a name="sample-php-sdk-creds"></a>

Setiap kali Anda menggunakan AWS SDK untuk PHP untuk memanggil AWS layanan, Anda harus memberikan satu set kredensil dengan panggilan tersebut. Kredensil ini menentukan apakah AWS SDK untuk PHP memiliki izin yang sesuai untuk melakukan panggilan itu. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Pada langkah ini, Anda menyimpan kredensial Anda di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi tambahan, lihat bagian "Membuat klien" dari [Penggunaan Basic](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/basic-usage.html) di *Panduan Developer AWS SDK untuk PHP *.

## Langkah 5: Tambahkan kode AWS SDK
<a name="sample-php-sdk-code"></a>

Pada langkah ini, Anda menambahkan beberapa kode lagi, kali ini untuk berinteraksi dengan Amazon S3 untuk membuat bucket, daftarkan bucket Anda yang tersedia, lalu hapus bucket yang baru saja Anda buat. Anda akan menjalankan kode ini nanti.

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`s3.php`.

```
<?php
require './vendor/autoload.php';

if ($argc < 4) {
    exit("Usage: php s3.php <the time zone> <the bucket name> <the AWS Region to use>\n" .
        "Example: php s3.php America/Los_Angeles my-test-bucket us-east-2");
}

$timeZone = $argv[1];
$bucketName = $argv[2];
$region = $argv[3];

date_default_timezone_set($timeZone);

$s3 = new Aws\S3\S3Client([
    'region' => $region,
    'version' => '2006-03-01'
]);

# Lists all of your available buckets in this AWS Region.
function listMyBuckets($s3)
{
    print("\nMy buckets now are:\n");

    $promise = $s3->listBucketsAsync();

    $result = $promise->wait();

    foreach ($result['Buckets'] as $bucket) {
        print("\n");
        print($bucket['Name']);
    }
}

listMyBuckets($s3);

# Create a new bucket.
print("\n\nCreating a new bucket named '$bucketName'...\n");

try {
    $promise = $s3->createBucketAsync([
        'Bucket' => $bucketName,
        'CreateBucketConfiguration' => [
            'LocationConstraint' => $region
        ]
    ]);

    $promise->wait();
} catch (Exception $e) {
    if ($e->getCode() == 'BucketAlreadyExists') {
        exit("\nCannot create the bucket. " .
            "A bucket with the name '$bucketName' already exists. Exiting.");
    }
}

listMyBuckets($s3);

# Delete the bucket you just created.
print("\n\nDeleting the bucket named '$bucketName'...\n");

$promise = $s3->deleteBucketAsync([
    'Bucket' => $bucketName
]);

$promise->wait();

listMyBuckets($s3);

?>
```

## Langkah 6: Jalankan kode AWS SDK
<a name="sample-php-sdk-run"></a>

1. Di AWS Cloud9 IDE, pada bilah menu, pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **PHP.(cli)**.

1. Untuk **Perintah**, ketik `s3.php America/Los_Angeles my-test-bucket us-east-2`, di mana:
   +  `America/Los_Angeles` adalah ID zona waktu default Anda. Untuk selengkapnya IDs, lihat [Daftar Zona Waktu yang Didukung](http://php.net/manual/en/timezones.php) di situs web PHP.
   +  `my-test-bucket` adalah nama bucket yang ingin Anda buat dan kemudian hapus.
**catatan**  
Nama bucket Amazon S3 harus unik di seluruh AWS—bukan hanya akun Anda. AWS 
   +  `us-east-2`adalah ID AWS Wilayah tempat Anda ingin membuat bucket. Untuk selengkapnya IDs, lihat [Amazon Simple Storage Service (Amazon S3) di](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) halaman. *Referensi Umum Amazon Web Services*

1. Pilih tombol **Jalankan**, dan bandingkan output Anda.

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## Langkah 7: Bersihkan
<a name="sample-php-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

### Memecahkan masalah dengan PHP runner untuk AWS Cloud9
<a name="sample-php-troubleshooting"></a>

Jika Anda mengalami masalah dengan runner PHP CLI, Anda harus memastikan bahwa runner telah diatur ke PHP dan mode debugger diaktifkan.

# AWS SDK for Ruby di AWS Cloud9
<a name="tutorial-ruby"></a>

Untuk informasi tentang penggunaan AWS Cloud9 dengan AWS SDK for Ruby[, AWS Cloud9 lihat Menggunakan AWS dengan SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/cloud9-ruby.html) di Panduan *AWS Pengembang* SDK for Ruby.

**catatan**  
Mengikuti tutorial ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [ EC2 Harga Amazon dan Harga](https://aws.amazon.com/ec2/pricing/) [Amazon S3](https://aws.amazon.com/s3/pricing/).

# Pergi tutorial untuk AWS Cloud9
<a name="sample-go"></a>

Tutorial ini memungkinkan Anda untuk menjalankan beberapa kode Go di lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-go-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-go-install)
+ [Langkah 2: Menambahkan kode](#sample-go-code)
+ [Langkah 3: Jalankan kode](#sample-go-run)
+ [Langkah 4: Instal dan konfigurasikan AWS SDK untuk Go](#sample-go-sdk)
+ [Langkah 5: Tambahkan kode AWS SDK](#sample-go-sdk-code)
+ [Langkah 6: Jalankan kode AWS SDK](#sample-go-sdk-run)
+ [Langkah 7: Bersihkan](#sample-go-clean-up)

## Prasyarat
<a name="sample-go-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-go-install"></a>

Pada langkah ini, Anda memasang dan mengonfigurasi Go, yang diperlukan untuk menjalankan sampel ini.

1. Dalam sesi terminal di AWS Cloud9 IDE, konfirmasikan apakah Go sudah diinstal dengan menjalankan **`go version`**perintah. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika berhasil, output harus berisi nomor versi Go. Jika tidak, pesan kesalahan harus menjadi output. Jika Go sudah terpasang, lewati ke [Langkah 2: Menambahkan kode](#sample-go-code).

1. Jalankan perintah ** `yum update` ** for (Amazon Linux) atau ** `apt update` ** for (Ubuntu Server) untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug terpasang.

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Untuk memasang Go, jalankan perintah ini, satu per satu.

   ```
   wget https://storage.googleapis.com/golang/go1.9.3.linux-amd64.tar.gz # Download the Go installer.
   sudo tar -C /usr/local -xzf ./go1.9.3.linux-amd64.tar.gz              # Install Go.
   rm ./go1.9.3.linux-amd64.tar.gz                                       # Delete the installer.
   ```

   Perintah sebelumnya mengasumsikan versi stabil terbaru dari Go pada saat topik ini ditulis. Untuk informasi lebih lanjut, lihat [Unduhan](https://golang.org/dl/) di situs web Bahasa Pemrograman Go.

1. Tambahkan path ke biner Go ke variabel lingkungan `PATH` Anda, seperti ini.

   1. Buka file profil shell Anda (misalnya, `~/.bashrc`) untuk diedit.

   1. Di akhir baris kode ini, ketikkan yang berikut ini, sehingga kodenya sekarang terlihat seperti ini.

      ```
      PATH=$PATH:/usr/local/go/bin
      ```

   1. Simpan file tersebut.

1. Cari file `~/.bashrc` sehingga terminal sekarang dapat menemukan biner Go yang baru saja Anda referensikan.

   ```
   . ~/.bashrc
   ```

1. Konfirmasikan bahwa Go sekarang berhasil dipasang dan dikonfigurasi dengan menjalankan perintah ** `go version` **. Jika berhasil, output berisi nomor versi Go.

## Langkah 2: Menambahkan kode
<a name="sample-go-code"></a>

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`hello.go`. (Untuk membuat file, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**.)

```
package main

import (
  "fmt"
  "os"
  "strconv"
)

func main() {
  fmt.Printf("Hello, World!\n")

  fmt.Printf("The sum of 2 and 3 is 5.\n")

  first, _ := strconv.Atoi(os.Args[1])
  second, _ := strconv.Atoi(os.Args[2])
  sum := first + second

  fmt.Printf("The sum of %s and %s is %s.",
    os.Args[1], os.Args[2], strconv.Itoa(sum))
}
```

## Langkah 3: Jalankan kode
<a name="sample-go-run"></a>

1. Di AWS Cloud9 IDE, pada bilah menu, pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Go**.
**catatan**  
Jika **Go** tidak tersedia, Anda dapat membuat runner khusus untuk Go.  
Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Runner Baru**.
Pada tab **Runner.run Saya**, ganti konten tab dengan kode ini.  

      ```
      {
        "cmd" : ["go", "run", "$file", "$args"],
        "info" : "Running $project_path$file_name...",
        "selector" : "source.go"
      }
      ```
Pilih **File**, **Simpan Sebagai** pada menu bar, dan simpan file sebagai `Go.run` di folder `/.c9/runners`.
Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Go**.
Pilih tab **hello.go** untuk mengaktifkannya.

1. Untuk **Perintah**, ketik `hello.go 5 9`. Dalam kode, `5` mewakili `os.Args[1]`, dan `9` mewakili `os.Args[2]`.  
![\[Output dari menjalankan kode Go di AWS Cloud9 IDE\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/ide-go-simple.png)

1. Pilih tombol **Jalankan**, dan bandingkan output Anda.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

## Langkah 4: Instal dan konfigurasikan AWS SDK untuk Go
<a name="sample-go-sdk"></a>

Anda dapat menyempurnakan sampel ini AWS SDK untuk Go untuk menggunakan bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja Anda buat.

Pada langkah ini, Anda menginstal dan mengonfigurasi AWS SDK untuk Go, yang menyediakan cara mudah untuk berinteraksi dengan AWS layanan seperti Amazon S3, dari kode Go Anda. Sebelum Anda memasang AWS SDK untuk Go, Anda harus mengatur variabel lingkungan `GOPATH` Anda. Setelah Anda memasang AWS SDK untuk Go dan mengatur variabel lingkungan `GOPATH`, Anda harus menyiapkan pengelolaan kredensial di lingkungan Anda. AWS SDK untuk Go Kebutuhan kredensil ini untuk berinteraksi dengan AWS layanan.

### Untuk mengatur variabel lingkungan GOPATH Anda
<a name="sample-go-sdk-set-gopath"></a>

1. Buka file `~/.bashrc` Anda untuk mengedit.

1. Setelah baris terakhir dalam file, ketik kode ini.

   ```
   GOPATH=~/environment/go
      
   export GOPATH
   ```

1. Simpan file tersebut.

1. Cari file `~/.bashrc` sehingga terminal sekarang dapat menemukan variabel lingkungan `GOPATH` yang baru saja Anda referensikan.

   ```
   . ~/.bashrc
   ```

1. Konfirmasikan bahwa variabel lingkungan `GOPATH` berhasil diatur dengan menjalankan perintah ** `echo $GOPATH` **. Jika berhasil, `/home/ec2-user/environment/go` atau `/home/ubuntu/environment/go` harus menjadi output.

### Untuk menginstal AWS SDK untuk Go
<a name="sample-go-sdk-install-sdk"></a>

Jalankan **`go get`**perintah, tentukan lokasi AWS SDK untuk Go sumber.

```
go get -u github.com/aws/aws-sdk-go/...
```

Go menginstal AWS SDK untuk Go sumber ke lokasi yang ditentukan oleh variabel `GOPATH` lingkungan Anda, yang merupakan `go` folder di lingkungan Anda.

### Untuk mengatur pengelolaan kredensial di lingkungan Anda
<a name="sample-go-sdk-creds"></a>

Setiap kali Anda menggunakan AWS SDK untuk Go untuk memanggil AWS layanan, Anda harus memberikan satu set kredensil dengan panggilan tersebut. Kredensil ini menentukan apakah AWS SDK untuk Go memiliki izin yang sesuai untuk melakukan panggilan itu. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Pada langkah ini, Anda menyimpan kredensial Anda di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi tambahan, lihat [Menentukan Kredensial](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/configuring-sdk.html#specifying-credentials) di *Panduan Developer AWS SDK untuk Go *.

## Langkah 5: Tambahkan kode AWS SDK
<a name="sample-go-sdk-code"></a>

Pada langkah ini, Anda menambahkan beberapa kode lagi, kali ini untuk berinteraksi dengan Amazon S3 untuk membuat bucket, daftarkan bucket Anda yang tersedia, lalu hapus bucket yang baru saja Anda buat. Anda akan menjalankan kode ini nanti.

Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan namanya`s3.go`.

```
package main

import (
	"fmt"
	"os"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/s3"
)

func main() {

	if len(os.Args) < 3 {
		fmt.Printf("Usage: go run s3.go <the bucket name> <the AWS Region to use>\n" +
			"Example: go run s3.go my-test-bucket us-east-2\n")
		os.Exit(1)
	}

	sess := session.Must(session.NewSessionWithOptions(session.Options{
		SharedConfigState: session.SharedConfigEnable,
	}))
	svc := s3.New(sess, &aws.Config{
		Region: aws.String(os.Args[2]),
	})

	listMyBuckets(svc)
	createMyBucket(svc, os.Args[1], os.Args[2])
	listMyBuckets(svc)
	deleteMyBucket(svc, os.Args[1])
	listMyBuckets(svc)
}

// List all of your available buckets in this AWS Region.
func listMyBuckets(svc *s3.S3) {
	result, err := svc.ListBuckets(nil)

	if err != nil {
		exitErrorf("Unable to list buckets, %v", err)
	}

	fmt.Println("My buckets now are:\n")

	for _, b := range result.Buckets {
		fmt.Printf(aws.StringValue(b.Name) + "\n")
	}

	fmt.Printf("\n")
}

// Create a bucket in this AWS Region.
func createMyBucket(svc *s3.S3, bucketName string, region string) {
	fmt.Printf("\nCreating a new bucket named '" + bucketName + "'...\n\n")

	_, err := svc.CreateBucket(&s3.CreateBucketInput{
		Bucket: aws.String(bucketName),
		CreateBucketConfiguration: &s3.CreateBucketConfiguration{
			LocationConstraint: aws.String(region),
		},
	})

	if err != nil {
		exitErrorf("Unable to create bucket, %v", err)
	}

	// Wait until bucket is created before finishing
	fmt.Printf("Waiting for bucket %q to be created...\n", bucketName)

	err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{
		Bucket: aws.String(bucketName),
	})
}

// Delete the bucket you just created.
func deleteMyBucket(svc *s3.S3, bucketName string) {
	fmt.Printf("\nDeleting the bucket named '" + bucketName + "'...\n\n")

	_, err := svc.DeleteBucket(&s3.DeleteBucketInput{
		Bucket: aws.String(bucketName),
	})

	if err != nil {
		exitErrorf("Unable to delete bucket, %v", err)
	}

	// Wait until bucket is deleted before finishing
	fmt.Printf("Waiting for bucket %q to be deleted...\n", bucketName)

	err = svc.WaitUntilBucketNotExists(&s3.HeadBucketInput{
		Bucket: aws.String(bucketName),
	})
}

// If there's an error, display it.
func exitErrorf(msg string, args ...interface{}) {
	fmt.Fprintf(os.Stderr, msg+"\n", args...)
	os.Exit(1)
}
```

## Langkah 6: Jalankan kode AWS SDK
<a name="sample-go-sdk-run"></a>

1. Di AWS Cloud9 IDE, pada bilah menu, pilih **Jalankan, Jalankan** **Konfigurasi**, **Konfigurasi Jalankan Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Go**.

1. Untuk **Command**`s3.go YOUR_BUCKET_NAME THE_AWS_REGION `, ketik, di mana ` YOUR_BUCKET_NAME ` nama bucket yang ingin Anda buat lalu hapus, dan ` THE_AWS_REGION ` merupakan ID AWS Wilayah tempat Anda ingin membuat bucket. Sebagai contoh, untuk Wilayah US East (Ohio)., gunakan `us-east-2`. Untuk selengkapnya IDs, lihat [Amazon Simple Storage Service (Amazon S3) di](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) halaman. *Referensi Umum Amazon Web Services*
**catatan**  
Nama bucket Amazon S3 harus unik di seluruh AWS—bukan hanya akun Anda. AWS 

1. Pilih tombol **Jalankan**, dan bandingkan output Anda.

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## Langkah 7: Bersihkan
<a name="sample-go-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# TypeScript tutorial untuk AWS Cloud9
<a name="sample-typescript"></a>

Tutorial ini menunjukkan cara bekerja dengan TypeScript dalam lingkungan AWS Cloud9 pengembangan.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/) dan [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prasyarat](#sample-typescript-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-typescript-install)
+ [Langkah 2: Menambahkan kode](#sample-typescript-code)
+ [Langkah 3: Jalankan kode](#sample-typescript-run)
+ [Langkah 4: Instal dan konfigurasikan AWS SDK untuk JavaScript di Node.js](#sample-typescript-sdk)
+ [Langkah 5: Tambahkan kode AWS SDK](#sample-typescript-sdk-code)
+ [Langkah 6: Jalankan kode AWS SDK](#sample-typescript-sdk-run)
+ [Langkah 7: Bersihkan](#sample-typescript-clean-up)

## Prasyarat
<a name="sample-typescript-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-typescript-install"></a>

Pada langkah ini, Anda menginstal TypeScript dengan menggunakan Node Package Manager (**`npm`**). Untuk memasang ** `npm` **, Anda menggunakan Node Version Manager (** `nvm` **). Jika Anda tidak memiliki ** `nvm` **, Anda memasangnya pada langkah ini terlebih dulu.

1. Dalam sesi terminal di AWS Cloud9 IDE, konfirmasikan TypeScript apakah sudah diinstal dengan menjalankan TypeScript compiler baris perintah dengan **`--version`**opsi. (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.) Jika berhasil, output berisi nomor TypeScript versi. Jika TypeScript diinstal, lewati ke depan[Langkah 2: Menambahkan kode](#sample-typescript-code).

   ```
   tsc --version
   ```

1. Konfirmasi apakah ** `npm` ** sudah terpasang dengan menjalankan ** `npm` ** dengan opsi ** `--version` **. Jika berhasil, output berisi nomor versi ** `npm` **. Jika **`npm`**diinstal, lewati ke langkah 10 dalam prosedur ini untuk digunakan **`npm`**untuk menginstal TypeScript.

   ```
   npm --version
   ```

1. Jalankan perintah ** `yum update` ** untuk (Amazon Linux) atau ** `apt update` ** untuk (Ubuntu Server) untuk membantu memastikan pembaruan keamanan terbaru dan perbaikan bug terpasang.

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Untuk menginstal **`npm`**, mulailah dengan menjalankan perintah berikut untuk men-download Node Version Manager (**`nvm`**). (**`nvm`**adalah skrip shell Bash sederhana yang berguna untuk menginstal dan mengelola versi Node.js. Untuk informasi selengkapnya, lihat [Pengelola Versi Node](https://github.com/creationix/nvm/blob/master/README.md) di GitHub situs web.)

   ```
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
   ```

1. Untuk mulai menggunakan ** `nvm` ** , tutup sesi terminal dan mulai lagi, atau cari file `~/.bashrc` yang berisi perintah untuk memuat ** `nvm` **.

   ```
   . ~/.bashrc
   ```

1. Konfirmasi apakah ** `nvm` ** sudah terpasang dengan menjalankan ** `nvm` ** dengan opsi ** `--version` **.

   ```
   nvm --version
   ```

1. Instal versi terbaru 16 dari Node.js dengan menjalankan **`nvm`**. (**`npm`**termasuk dalam Node.js.)

   ```
   nvm install v16
   ```

1. Konfirmasi bahwa Node.js terpasang dengan menjalankan versi baris perintah dari Node.js dengan opsi ** `--version` **.

   ```
   node --version
   ```

1. Konfirmasi apakah ** `npm` ** sudah terpasang dengan menjalankan ** `npm` ** dengan opsi ** `--version` **.

   ```
   npm --version
   ```

1. Instal TypeScript **`npm`**dengan menjalankan dengan **`-g`**opsi. Ini diinstal TypeScript sebagai paket global di lingkungan.

   ```
   npm install -g typescript
   ```

1. Konfirmasikan yang TypeScript diinstal dengan menjalankan TypeScript kompiler baris perintah dengan **`--version`**opsi.

   ```
   tsc --version
   ```

## Langkah 2: Menambahkan kode
<a name="sample-typescript-code"></a>

1. Di AWS Cloud9 IDE, buat file bernama`hello.ts`. (Untuk membuat file, pada bilah menu, pilih **File**, **File Baru**. Untuk menyimpan file, pilih **File**, **Simpan**.)

1. Di sebuah terminal di IDE, dari direktori yang sama seperti file `hello.ts`, jalankan ** `npm` ** untuk memasang pustaka `@types/node`.

   ```
   npm install @types/node
   ```

   Hal ini menambahkan folder `node_modules/@types/node` dalam direktori yang sama dengan file `hello.ts`. Folder baru ini berisi definisi tipe Node.js yang TypeScript perlu nanti dalam prosedur ini untuk `console.log` dan `process.argv` properti yang akan Anda tambahkan ke `hello.ts` file.

1. Tambahkan kode berikut ke file `hello.ts`:

   ```
   console.log('Hello, World!');
   
   console.log('The sum of 2 and 3 is 5.');
   
   const sum: number = parseInt(process.argv[2], 10) + parseInt(process.argv[3], 10);
   
   console.log('The sum of ' + process.argv[2] + ' and ' +
     process.argv[3] + ' is ' + sum + '.');
   ```

## Langkah 3: Jalankan kode
<a name="sample-typescript-run"></a>

1. Di terminal, dari direktori yang sama dengan `hello.ts` file, jalankan TypeScript kompiler. Menentukan file `hello.ts` dan pustaka tambahan untuk disertakan.

   ```
   tsc hello.ts --lib es6
   ```

   TypeScript menggunakan `hello.ts` file dan satu set file pustaka ECMAScript 6 (ES6) untuk mentranspile TypeScript kode dalam `hello.ts` file menjadi JavaScript kode yang setara dalam file bernama`hello.js`.

1. Di jendela **Lingkungan**, buka file `hello.js`.

1. Pada bilah menu, pilih **Jalankan**, **Jalankan Konfigurasi**, **Jalankan Konfigurasi Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Node.js**.

1. Untuk **Perintah**, ketik `hello.js 5 9`. Dalam kode, `5` mewakili `process.argv[2]`, dan `9` mewakili `process.argv[3]`. (`process.argv[0]`mewakili nama runtime (`node`), dan `process.argv[1]` mewakili nama file (`hello.js`).)

1. Pilih **Jalankan**, dan bandingkan output Anda. Setelah Anda selesai, pilih **Berhenti**.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

![\[Output Node.js setelah menjalankan kode di AWS Cloud9 IDE\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/ide-nodejs-simple.png)


**catatan**  
Alih-alih membuat konfigurasi run baru di IDE, Anda juga dapat menjalankan kode ini dengan menjalankan perintah ** `node hello.js 5 9` ** dari terminal.

## Langkah 4: Instal dan konfigurasikan AWS SDK untuk JavaScript di Node.js
<a name="sample-typescript-sdk"></a>

Anda dapat menyempurnakan sampel ini untuk menggunakan AWS SDK for JavaScript di Node.js untuk membuat bucket Amazon S3, mencantumkan bucket yang tersedia, lalu menghapus bucket yang baru saja dibuat.

Pada langkah ini, Anda menginstal dan mengkonfigurasi AWS SDK untuk JavaScript di Node.js. SDK menyediakan cara mudah untuk berinteraksi dengan AWS layanan seperti Amazon S3, dari JavaScript kode Anda. Setelah Anda menginstal AWS SDK untuk JavaScript di Node.js, Anda harus menyiapkan manajemen kredensional di lingkungan Anda. SDK membutuhkan kredensil ini untuk berinteraksi dengan layanan. AWS 

### Untuk menginstal AWS SDK untuk JavaScript di Node.js
<a name="sample-typescript-sdk-install-sdk"></a>

Dalam sesi terminal di AWS Cloud9 IDE, dari direktori yang sama dengan `hello.js` file dari[Langkah 3: Jalankan kode](#sample-typescript-run), jalankan **`npm`**untuk menginstal AWS SDK untuk JavaScript di Node.js.

```
npm install aws-sdk
```

Perintah ini menambahkan beberapa folder ke folder `node_modules` dari [Langkah 3: Jalankan kode](#sample-typescript-run). Folder ini berisi kode sumber dan dependensi untuk AWS SDK untuk JavaScript di Node.js. Untuk informasi selengkapnya, lihat [Menginstal SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/installing-jssdk.html) di *Panduan AWS SDK untuk JavaScript Pengembang*.

### Untuk mengatur pengelolaan kredensial di lingkungan Anda
<a name="sample-typescript-sdk-creds"></a>

Setiap kali Anda menggunakan AWS SDK for JavaScript di Node.js untuk memanggil AWS layanan, Anda harus menyediakan satu set kredensional dengan panggilan tersebut. Kredensi ini menentukan apakah AWS SDK untuk JavaScript di Node.js memiliki izin yang sesuai untuk melakukan panggilan tersebut. Jika kredensial tidak mencakup izin yang sesuai, panggilan akan gagal.

Pada langkah ini, Anda menyimpan kredensial Anda di dalam lingkungan. Untuk melakukannya, ikuti petunjuk di [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md), lalu kembali ke topik ini.

Untuk informasi tambahan, lihat [Mengatur Kredensial di Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html) di *Panduan Developer AWS SDK untuk JavaScript *.

## Langkah 5: Tambahkan kode AWS SDK
<a name="sample-typescript-sdk-code"></a>

Pada langkah ini, Anda menambahkan beberapa kode lagi, kali ini untuk berinteraksi dengan Amazon S3 untuk membuat bucket, daftarkan bucket Anda yang tersedia, lalu hapus bucket yang baru saja Anda buat. Anda akan menjalankan kode ini nanti.

1. Di AWS Cloud9 IDE, di direktori yang sama dengan `hello.js` file di langkah sebelumnya, buat file bernama`s3.ts`.

1. Dari terminal di AWS Cloud9 IDE, di direktori yang sama dengan `s3.ts` file, aktifkan kode untuk memanggil operasi Amazon S3 secara asinkron dengan menjalankan **`npm`**dua kali untuk menginstal pustaka asinkron untuk dan lagi untuk. TypeScript JavaScript

   ```
   npm install @types/async # For TypeScript.
   npm install async        # For JavaScript.
   ```

1. Tambahkan kode berikut ke file `s3.ts`:

   ```
   import * as async from 'async';
   import * as AWS from 'aws-sdk';
   
   if (process.argv.length < 4) {
     console.log('Usage: node s3.js <the bucket name> <the AWS Region to use>\n' +
       'Example: node s3.js my-test-bucket us-east-2');
     process.exit(1);
   }
   
   const AWS = require('aws-sdk'); // To set the AWS credentials and AWS Region.
   const async = require('async'); // To call AWS operations asynchronously.
   
   const s3: AWS.S3 = new AWS.S3({apiVersion: '2006-03-01'});
   const bucket_name: string = process.argv[2];
   const region: string = process.argv[3];
   
   AWS.config.update({
     region: region
   });
   
   const create_bucket_params: any = {
     Bucket: bucket_name,
     CreateBucketConfiguration: {
       LocationConstraint: region
     }
   };
   
   const delete_bucket_params: any = {
     Bucket: bucket_name
   };
   
   // List all of your available buckets in this AWS Region.
   function listMyBuckets(callback): void {
     s3.listBuckets(function(err, data) {
       if (err) {
   
       } else {
         console.log("My buckets now are:\n");
   
         for (let i: number = 0; i < data.Buckets.length; i++) {
           console.log(data.Buckets[i].Name);
         }
       }
   
       callback(err);
     });
   }
   
   // Create a bucket in this AWS Region.
   function createMyBucket(callback): void {
     console.log("\nCreating a bucket named '" + bucket_name + "'...\n");
   
     s3.createBucket(create_bucket_params, function(err, data) {
       if (err) {
         console.log(err.code + ": " + err.message);
       }
   
       callback(err);
     });
   }
   
   // Delete the bucket you just created.
   function deleteMyBucket(callback): void {
     console.log("\nDeleting the bucket named '" + bucket_name + "'...\n");
   
     s3.deleteBucket(delete_bucket_params, function(err, data) {
       if (err) {
         console.log(err.code + ": " + err.message);
       }
   
       callback(err);
     });
   }
   
   // Call the AWS operations in the following order.
   async.series([
     listMyBuckets,
     createMyBucket,
     listMyBuckets,
     deleteMyBucket,
     listMyBuckets
   ]);
   ```

## Langkah 6: Jalankan kode AWS SDK
<a name="sample-typescript-sdk-run"></a>

1. Di terminal, dari direktori yang sama dengan `s3.ts` file, jalankan TypeScript kompiler. Menentukan file `s3.ts` dan pustaka tambahan untuk disertakan.

   ```
   tsc s3.ts --lib es6
   ```

   TypeScript menggunakan `s3.ts` file, AWS SDK untuk JavaScript di Node.js, pustaka async, dan satu set file pustaka ECMAScript 6 (ES6) untuk mengubah kode dalam `s3.ts` file menjadi TypeScript kode yang setara dalam file JavaScript bernama. `s3.js`

1. Di jendela **Lingkungan**, buka file `s3.js`.

1. Pada bilah menu, pilih **Jalankan**, **Jalankan Konfigurasi**, **Jalankan Konfigurasi Baru**.

1. Di tab **[Baru] - Diam**, pilih **Runner: Otomatis**, lalu pilih **Node.js**.

1. Untuk **Command**`s3.js YOUR_BUCKET_NAME THE_AWS_REGION `, ketik, di mana ` YOUR_BUCKET_NAME ` nama bucket yang ingin Anda buat lalu hapus, dan ` THE_AWS_REGION ` merupakan ID AWS Region untuk membuat bucket. Sebagai contoh, untuk Wilayah US East (Ohio)., gunakan `us-east-2`. Untuk selengkapnya IDs, lihat [Amazon Simple Storage Service (Amazon S3) di](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) halaman. *Referensi Umum Amazon Web Services*
**catatan**  
Nama bucket Amazon S3 harus unik di seluruh AWS—bukan hanya akun Anda. AWS 

1. Pilih **Jalankan**, dan bandingkan output Anda. Setelah Anda selesai, pilih **Berhenti**.

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## Langkah 7: Bersihkan
<a name="sample-typescript-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus lingkungan. Untuk petunjuk, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

# Tutorial Docker untuk AWS Cloud9
<a name="sample-docker"></a>

Tutorial ini menunjukkan cara menghubungkan lingkungan pengembangan AWS Cloud9 SSH ke container Docker yang sedang berjalan di dalam instance Amazon Linux di Amazon EC2. Ini memungkinkan Anda untuk menggunakan AWS Cloud9 IDE untuk bekerja dengan kode dan file di dalam wadah Docker dan untuk menjalankan perintah pada wadah itu. Untuk informasi tentang Docker, lihat [Apa itu Docker](https://www.docker.com/what-docker) di situs web Docker.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2. Untuk informasi selengkapnya, lihat [Penetapan Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/).

**Topics**
+ [Prasyarat](#sample-docker-prereqs)
+ [Langkah 1: Pasang dan jalankan Docker](#sample-docker-install)
+ [Langkah 2: Bangun citra](#sample-docker-build)
+ [Langkah 3: Jalankan kontainer](#sample-docker-run)
+ [Langkah 4: Buat lingkungan](#sample-docker-env)
+ [Langkah 5: Jalankan kode](#sample-docker-code)
+ [Langkah 6: Membersihkan](#sample-docker-clean-up)

## Prasyarat
<a name="sample-docker-prereqs"></a>
+  **Anda harus memiliki instans Amazon EC2 yang menjalankan Amazon Linux atau Ubuntu Server.** Contoh ini mengasumsikan Anda sudah memiliki instans Amazon EC2 yang menjalankan Amazon Linux atau Ubuntu Server di AWS akun Anda. Untuk meluncurkan instans Amazon EC2, lihat [Luncurkan Mesin Virtual Linux](https://aws.amazon.com/getting-started/tutorials/launch-a-virtual-machine/). Di halaman **Pilih Amazon Machine Image (AMI)** dari wizard, pilih AMI yang nama tampilannya dimulai dengan **Amazon Linux AMI** atau **Ubuntu Server**.
+  **Jika instans Amazon EC2 berjalan dalam VPC Amazon, ada persyaratan tambahan.** Lihat [Pengaturan VPC untuk Lingkungan Pengembangan AWS Cloud9](vpc-settings.md).
+  **Instans Amazon EC2 harus memiliki setidaknya 8 hingga 16 GB ruang disk kosong yang tersedia.** Sampel ini menggunakan citra Docker yang berukuran lebih dari 3 GB dan dapat menggunakan penambahan ruang disk sebesar 3 GB atau lebih untuk membangun citra. Jika Anda mencoba menjalankan sampel ini pada disk yang memiliki ruang kosong 8 GB atau kurang, kami menemukan bahwa citra Docker mungkin tidak dibangun atau kontainer Docker mungkin tidak berjalan. Untuk memeriksa ruang disk kosong instans, Anda dapat menjalankan perintah seperti ** `df -h` ** (untuk "informasi sistem file disk dalam format yang dapat dibaca manusia") pada instans. Untuk meningkatkan ukuran disk instans yang ada, lihat [Memodifikasi Volume](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html) di Panduan *Pengguna Amazon EC2*.

## Langkah 1: Pasang dan jalankan Docker
<a name="sample-docker-install"></a>

Pada langkah ini, Anda memeriksa apakah Docker terpasang pada instans Amazon EC2, dan memasang Docker jika belum terpasang. Setelah Anda memasang Docker, Anda menjalankannya pada instans.

1. Hubungkan ke instans Amazon EC2 yang sedang berjalan dengan menggunakan klien SSH seperti utilitas ** `ssh` ** atau PuTTY. Untuk melakukannya, lihat "Langkah 3: Hubungkan ke Instans Anda" di [Meluncurkan Mesin Virtual Linux](https://aws.amazon.com/getting-started/tutorials/launch-a-virtual-machine/).

1. Periksa apakah Docker terpasang pada instans. Untuk melakukan ini, jalankan perintah ** `docker` ** pada instans dengan opsi ** `--version` **.

   ```
   docker --version
   ```

   Jika Docker terpasang, versi dan nomor build Docker akan ditampilkan. Dalam hal ini, lewati ke langkah 5 nanti dalam prosedur ini.

1. Pasang Docker. Untuk melakukannya, jalankan perintah ** `yum` ** atau ** `apt` ** dengan tindakan ** `install` **, menentukan paket ** `docker` ** atau ** `docker.io` ** yang akan dipasang.

   Untuk Amazon Linux:

   ```
   sudo yum install -y docker
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt install -y docker.io
   ```

1. Konfirmasikan bahwa Docker terpasang. Untuk melakukan ini, jalankan perintah ** `docker --version` ** lagi. Versi dan nomor build Docker ditampilkan.

1. Jalankan Docker. Untuk melakukan ini, jalankan perintah ** `service` ** dengan layanan ** `docker` ** dan tindakan ** `start` **.

   ```
   sudo service docker start
   ```

1. Konfirmasi Docker sedang berjalan. Untuk melakukan ini, jalankan perintah ** `docker` ** dengan tindakan ** `info` **.

   ```
   sudo docker info
   ```

   Jika Docker sedang berjalan, informasi tentang Docker akan ditampilkan.

## Langkah 2: Bangun citra
<a name="sample-docker-build"></a>

Pada langkah ini, Anda menggunakan Dockerfile untuk membangun citra Docker ke dalam instans. Sampel ini menggunakan citra yang menyertakan Node.js dan sampel aplikasi server obrolan.

1. Pada instans, buat Dockerfile. Untuk melakukan ini, dengan klien SSH masih terhubung ke instans, di direktori `/tmp` pada instans, buat file dengan nama `Dockerfile`. Sebagai contoh, jalankan perintah ** `touch` ** seperti berikut.

   ```
   sudo touch /tmp/Dockerfile
   ```

1. Tambahkan konten berikut ini ke file `Dockerfile`.

   ```
   # Build a Docker image based on the Amazon Linux 2 Docker image.
   FROM amazonlinux:2
   
   # install common tools
   RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
   RUN yum update -y
   RUN yum install -y sudo bash curl wget git man-db nano vim bash-completion tmux  gcc gcc-c++ make tar
   
   # Enable the Docker container to communicate with AWS Cloud9 by
   # installing SSH.
   RUN yum install -y openssh-server
   
   # Ensure that Node.js is installed.
   RUN yum install -y nodejs
   
   # Create user and enable root access
   RUN useradd --uid 1000 --shell /bin/bash -m --home-dir /home/ubuntu ubuntu && \
       sed -i 's/%wheel\s.*/%wheel ALL=NOPASSWD:ALL/' /etc/sudoers && \
       usermod -a -G wheel ubuntu
   
   # Add the AWS Cloud9 SSH public key to the Docker container.
   # This assumes a file named authorized_keys containing the
   # AWS Cloud9 SSH public key already exists in the same
   # directory as the Dockerfile.
   RUN mkdir -p /home/ubuntu/.ssh
   ADD ./authorized_keys /home/ubuntu/.ssh/authorized_keys
   RUN chown -R ubuntu /home/ubuntu/.ssh /home/ubuntu/.ssh/authorized_keys && \
   chmod 700 /home/ubuntu/.ssh && \
   chmod 600 /home/ubuntu/.ssh/authorized_keys
   
   # Update the password to a random one for the user ubuntu.
   RUN echo "ubuntu:$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" | chpasswd
   
   # pre-install Cloud9 dependencies
   USER ubuntu
   RUN curl https://d2j6vhu5uywtq3.cloudfront.net/static/c9-install.sh | bash
   
   USER root
   # Start SSH in the Docker container.
   CMD ssh-keygen -A && /usr/sbin/sshd -D
   ```

   Untuk menambahkan konten sebelumnya ke file `Dockerfile`, Anda dapat menggunakan utilitas ** `vi` ** pada instans sebagai berikut.

   1. Gunakan AWS Cloud9 untuk membuka dan mengedit `/tmp/Dockerfile` file.

      ```
      sudo vi /tmp/Dockerfile
      ```

   1. Tempel konten sebelumnya ke dalam file `Dockerfile`. Jika Anda tidak yakin bagaimana melakukannya, lihat dokumentasi klien SSH Anda.

   1. Beralih ke mode perintah. Untuk melakukan ini, tekan tombol `Esc`. (`-- INSERT --` menghilang dari bagian bawah jendela.)

   1. Ketik `:wq` (untuk menulis ke file `/tmp/Dockerfile`, simpan file, lalu keluar dari ** `vi` **), lalu tekan `Enter`.
**catatan**  
Anda dapat mengakses daftar gambar Docker yang sering diperbarui dari AWS CodeBuild. Untuk informasi selengkapnya, lihat [gambar Docker yang disediakan oleh CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) di *Panduan AWS CodeBuild Pengguna*.

1. Pada contoh, buat file yang berisi kunci publik AWS Cloud9 SSH untuk wadah Docker untuk digunakan. Untuk melakukan ini, di direktori yang sama dengan file `Dockerfile`, buat file dengan nama `authorized_keys`, misalnya, dengan menjalankan perintah ** `touch` **.

   ```
   sudo touch /tmp/authorized_keys
   ```

1. Tambahkan kunci publik AWS Cloud9 SSH ke `authorized_keys` file. Untuk mendapatkan kunci publik AWS Cloud9 SSH, lakukan hal berikut:

   1. Buka AWS Cloud9 konsol di [https://console.aws.amazon.com/cloud9/](https://console.aws.amazon.com/cloud9/).

   1. Di bilah AWS navigasi, di pemilih AWS Wilayah, pilih AWS Wilayah tempat Anda ingin membuat lingkungan AWS Cloud9 pengembangan nanti dalam topik ini.

   1. Jika halaman selamat datang ditampilkan, untuk ** AWS Cloud9 Lingkungan baru**, pilih **Buat lingkungan**. Jika tidak, pilih **Buat lingkungan**.

   1. Pada halaman **Nama lingkungan**, untuk **Nama**, ketikkan nama untuk lingkungan. (Nama tidak penting di sini. Anda akan memilih nama lain nanti.)

   1. Pilih **Langkah selanjutnya**.

   1. Untuk **Tipe Lingkungan**, pilih **Hubungkan dan jalankan di server jarak jauh (SSH)**.

   1. Luaskan **Lihat kunci SSH publik**.

   1. Pilih **Tempel kunci ke clipboard**. (Ini antara **Lihat kunci SSH publik** dan **Pengaturan lanjutan**.)

   1. Pilih **Batalkan**.

   1. Tempelkan konten clipboard ke dalam file `authorized_keys`, lalu simpan file tersebut. Misalnya, Anda dapat menggunakan utilitas ** `vi` **, seperti yang dijelaskan sebelumnya dalam langkah ini.

1. Bangun citra dengan menjalankan perintah ** `docker` ** dengan tindakan ** `build` **, tambahkan tanda `cloud9-image:latest` ke citra dan tentukan jalur ke file `Dockerfile` yang akan digunakan.

   ```
   sudo docker build -t cloud9-image:latest /tmp
   ```

   Jika berhasil, dua baris terakhir dari output bangunan menampilkan `Successfully built` dan `Successfully tagged`.

   Untuk mengonfirmasi bahwa Docker berhasil membuat citra, jalankan perintah ** `docker` ** dengan tindakan `image ls`.

   ```
   sudo docker image ls
   ```

   Jika berhasil, output menampilkan entri di mana bidang `REPOSITORY` diatur ke `cloud9-image` dan bidang `TAG` diatur ke `latest`.

1. Membuat catatan alamat IP publik instans Amazon EC2. Anda akan membutuhkannya untuk [Langkah 4: Buat lingkungan](#sample-docker-env). Jika Anda tidak yakin apa alamat IP publik dari instans, Anda dapat menjalankan perintah berikut pada instans untuk mendapatkannya.

   ```
   curl http://169.254.169.254/latest/meta-data/public-ipv4
   ```

## Langkah 3: Jalankan kontainer
<a name="sample-docker-run"></a>

Pada langkah ini, Anda menjalankan kontainer Docker pada instans. Kontainer ini didasarkan pada citra yang Anda bangun pada langkah sebelumnya.

1. Untuk menjalankan kontainer Docker, jalankan perintah ** `docker` ** pada instans dengan tindakan ** `run` ** dan opsi berikut.

   ```
   sudo docker run -d -it --expose 9090 -p 0.0.0.0:9090:22 --name cloud9 cloud9-image:latest
   ```
   +  `-d` menjalankan kontainer dalam mode terlepas, keluar setiap kali proses root yang digunakan untuk menjalankan kontainer (dalam sampel ini, klien SSH) keluar.
   +  `-it` menjalankan kontainer dengan pseudo-TTY yang dialokasikan dan membuat STDIN tetap terbuka, meskipun kontainer tidak terlampir.
   +  `--expose` membuat port yang ditentukan (dalam sampel ini, port `9090`) tersedia dari kontainer.
   +  `-p` membuat port yang ditentukan tersedia secara internal untuk instans Amazon EC2 melalui alamat IP dan port yang ditentukan. Dalam sampel ini, port `9090` pada kontainer dapat diakses secara internal melalui port `22` pada instans Amazon EC2.
   +  `--name` adalah nama kontainer yang dapat dibaca manusia (dalam sampel ini, `cloud9`).
   +  `cloud9-image:latest` adalah nama yang dapat dibaca manusia dari citra yang dibuat untuk digunakan untuk menjalankan kontainer.

   Untuk mengonfirmasi bahwa Docker berhasil menjalankan kontainer jalankan perintah ** `docker` ** dengan tindakan `container ls`.

   ```
   sudo docker container ls
   ```

   Jika berhasil, output menampilkan entri di mana bidang `IMAGE` diatur ke `cloud9-image:latest` dan bidang `NAMES` diatur ke `cloud9`.

1. Masuk ke kontainer yang sedang berjalan. Untuk melakukannya, jalankan perintah ** `docker` ** dengan tindakan ** `exec` ** dan opsi berikut.

   ```
   sudo docker exec -it cloud9 bash
   ```
   +  `-it` menjalankan kontainer dengan pseudo-TTY yang dialokasikan dan membuat STDIN tetap terbuka, meskipun kontainer tidak terlampir.
   +  `cloud9` adalah nama kontainer yang sedang berjalan yang dapat dibaca manusia.
   +  `bash` memulai shell standar di kontainer yang sedang berjalan.

   Jika berhasil, permintaan terminal berubah untuk menampilkan nama pengguna yang masuk untuk kontainer dan ID kontainer.
**catatan**  
Jika Anda ingin keluar dari kontainer yang sedang berjalan, jalankan perintah ** `exit` **. Prompt terminal berubah kembali untuk menampilkan nama pengguna yang masuk untuk instans dan DNS privat instans. Kontainer tetap harus berjalan.

1. Untuk direktori pada wadah yang sedang berjalan yang AWS Cloud9 ingin Anda mulai setelah masuk, atur izin aksesnya ke **`rwxr-xr-x`**. Ini berarti read-write-execute izin untuk pemilik, izin baca-eksekusi untuk grup, dan izin baca-eksekusi untuk orang lain. Misalnya, jika jalur direktori adalah `~`, Anda dapat mengatur izin ini pada direktori dengan menjalankan perintah ** `chmod` ** di kontainer yang sedang berjalan sebagai berikut.

   ```
   sudo chmod u=rwx,g=rx,o=rx ~
   ```

1. Catat jalur ke direktori pada kontainer berjalan yang berisi biner Node.js, karena Anda akan membutuhkannya untuk [Langkah 4: Buat lingkungan](#sample-docker-env). Jika Anda tidak yakin jalur apa ini, jalankan perintah berikut pada kontainer yang sedang berjalan untuk mendapatkannya.

   ```
   which node
   ```

## Langkah 4: Buat lingkungan
<a name="sample-docker-env"></a>

Pada langkah ini, Anda gunakan AWS Cloud9 untuk membuat lingkungan pengembangan AWS Cloud9 SSH dan menghubungkannya ke wadah Docker yang sedang berjalan. Setelah AWS Cloud9 menciptakan lingkungan, ini menampilkan AWS Cloud9 IDE sehingga Anda dapat mulai bekerja dengan file dan kode dalam wadah.

Anda membuat lingkungan pengembangan AWS Cloud9 SSH dengan AWS Cloud9 konsol. Anda tidak dapat membuat lingkungan SSH menggunakan CLI.

### Prasyarat
<a name="prerequisites"></a>
+ Pastikan Anda menyelesaikan langkah-langkahnya terlebih [Menyiapkan AWS Cloud9](setting-up.md) dahulu. Dengan begitu, Anda dapat masuk ke AWS Cloud9 konsol dan membuat lingkungan.
+ Identifikasi instans komputasi cloud yang ada (misalnya, instans Amazon EC2 di server Akun AWS Anda) atau server Anda sendiri yang AWS Cloud9 ingin Anda sambungkan ke lingkungan.
+ Pastikan instans yang ada atau server Anda sendiri memenuhi semua [Persyaratan hosting SSH](ssh-settings.md#ssh-settings-requirements). Ini termasuk memiliki versi tertentu dari Python, Node.js dan komponen lain yang sudah diinstal, mengatur izin khusus pada direktori yang Anda inginkan untuk memulai AWS Cloud9 setelah login, dan menyiapkan Amazon Virtual Private Cloud terkait.

### Membuat Lingkungan SSH
<a name="create-the-envsshtitle"></a>

1. Pastikan Anda menyelesaikan prasyarat sebelumnya.

1. Hubungkan ke instans yang ada atau server Anda sendiri dengan menggunakan klien SSH, jika Anda belum terhubung dengannya. Ini memastikan bahwa Anda dapat menambahkan nilai kunci SSH publik yang diperlukan ke instance atau server. Ini dijelaskan kemudian dalam prosedur ini.
**catatan**  
Untuk menyambung ke instans AWS Cloud komputasi yang ada, lihat satu atau beberapa sumber daya berikut:  
Untuk Amazon EC2, lihat [Menyambung ke Instans Linux Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) di Panduan Pengguna *Amazon EC2*.
Untuk Amazon Lightsail, lihat [Menghubungkan ke instans Lightsail berbasis Linux/Unix Anda](https://lightsail.aws.amazon.com/ls/docs/how-to/article/lightsail-how-to-connect-to-your-instance-virtual-private-server) di *Dokumentasi Amazon Lightsail*.
Untuk AWS Elastic Beanstalk, lihat [Daftar dan Menghubungkan ke Instans Server](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.ec2connect.html) di *Panduan AWS Elastic Beanstalk Pengembang*.
Untuk AWS OpsWorks, lihat [Menggunakan SSH untuk Masuk ke Instance Linux](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html) di *Panduan AWS OpsWorks Pengguna*.
Untuk yang lain Layanan AWS, lihat dokumentasi untuk layanan khusus itu.
Untuk terhubung ke server Anda sendiri, gunakan SSH. SSH sudah diinstal pada sistem operasi macOS dan Linux. Untuk terhubung ke server Anda dengan menggunakan SSH pada Windows, Anda harus menginstal [PuTTY](https://www.putty.org/).

1. Masuk ke AWS Cloud9 konsol, di [https://console.aws.amazon.com/cloud9/](https://console.aws.amazon.com/cloud9/).

1. Setelah Anda masuk ke AWS Cloud9 konsol, di bilah navigasi atas pilih Wilayah AWS untuk membuat lingkungan. Untuk daftar yang tersedia Wilayah AWS, lihat [AWS Cloud9](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloud9_region)di *Referensi Umum AWS*.  
![\[Pemilih wilayah di konsol AWS Cloud9\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/consolas_region_new_UX.png)

1. Jika ini adalah pertama kalinya Anda membuat lingkungan pengembangan, halaman selamat datang akan ditampilkan. Di panel ** AWS Cloud9 lingkungan baru**, pilih **Buat lingkungan**.

   Jika sebelumnya Anda telah membuat lingkungan pengembangan, Anda juga dapat memperluas panel di sebelah kiri layar. Pilih **lingkungan Anda**, lalu pilih **Buat lingkungan**.

   Di halaman **selamat datang**:  
![\[Pilih tombol Buat lingkungan jika halaman selamat datang ditampilkan\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/create_welcome_env_new_UX.png)

   Atau di halaman **Lingkungan Anda**:  
![\[Pilih tombol Buat lingkungan jika halaman selamat datang tidak ditampilkan\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/console_create_env_new_UX.png)

1. Pada halaman **Buat lingkungan**, masukkan nama untuk lingkungan Anda.

1. Untuk **Deskripsi**, memasukkan sesuatu tentang lingkungan Anda. Untuk tutorial ini, gunakan `This environment is for the AWS Cloud9 tutorial.`

1. Untuk **jenis Lingkungan**, pilih **Komputasi yang Ada** dari opsi berikut:
   + Instans **EC2 baru — Meluncurkan instans** Amazon EC2 AWS Cloud9 yang dapat terhubung langsung melalui SSH.
   + **Komputasi yang ada** — Meluncurkan instans Amazon EC2 yang tidak memerlukan port masuk terbuka. AWS Cloud9 terhubung ke instance melalui [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html).
     + Jika Anda memilih opsi **Komputasi yang ada**, peran layanan dan profil instans IAM akan dibuat untuk memungkinkan Systems Manager berinteraksi dengan instans EC2 atas nama Anda. Anda dapat melihat nama-nama keduanya di bagian **Peran layanan dan profil instans untuk akses Systems Manager** lebih jauh ke bawah antarmuka. Untuk informasi selengkapnya, lihat [Mengakses instans EC2 no-ingress dengan AWS Systems Manager](ec2-ssm.md). 
**Awas**  
Membuat instans EC2 untuk lingkungan Anda dapat mengakibatkan kemungkinan biaya Akun AWS untuk Amazon EC2 Anda. Tidak ada biaya tambahan untuk menggunakan Systems Manager untuk mengelola koneksi ke instans EC2 Anda.
**Awas**  
AWS Cloud9 menggunakan kunci publik SSH untuk terhubung dengan aman ke server Anda. Untuk membuat koneksi aman, tambahkan kunci publik kami ke `~/.ssh/authorized_keys` file Anda dan berikan kredensi login Anda dalam langkah-langkah berikut. Pilih **Salin kunci ke clipboard** untuk menyalin kunci SSH, atau **Lihat kunci SSH publik untuk menampilkannya**.

1. Pada panel **komputasi yang ada**, untuk **Pengguna**, masukkan nama login yang Anda gunakan untuk terhubung ke instance atau server sebelumnya dalam prosedur ini. Misalnya, untuk contoh AWS Cloud komputasi, mungkin`ec2-user`,`ubuntu`, atau`root`. 
**catatan**  
Kami menyarankan agar nama login dikaitkan dengan izin administratif atau pengguna administrator pada instance atau server. Lebih khusus lagi, kami menyarankan agar nama login ini memiliki instalasi Node.js pada instance atau server. Untuk memeriksa ini, dari terminal instance atau server Anda, jalankan perintah **`ls -l $(which node)`**(atau **`ls -l $(nvm which node)`**jika Anda menggunakan`nvm`). Perintah ini menampilkan nama pemilik instalasi Node.js. Ini juga menampilkan izin instalasi, nama grup, dan lokasi.

1. Untuk **Host**, masukkan alamat IP publik (lebih disukai) atau nama host dari instance atau server.

1. Untuk **Port**, masukkan port yang AWS Cloud9 ingin Anda gunakan untuk mencoba terhubung ke instance atau server. Atau, pertahankan port default.

1. Pilih **Detail tambahan - opsional** untuk menampilkan jalur lingkungan, jalur ke biner node.js dan informasi host lompat SSH.

1. Untuk **jalur Lingkungan**, masukkan jalur ke direktori pada instance atau server yang AWS Cloud9 ingin Anda mulai. Anda mengidentifikasi ini sebelumnya di prasyarat untuk prosedur ini. Jika Anda membiarkannya kosong, AWS Cloud9 menggunakan direktori tempat instans atau server Anda biasanya memulai setelah login. Ini biasanya merupakan direktori beranda atau default.

1. **Untuk jalur biner Path to Node.js**, masukkan informasi jalur untuk menentukan jalur ke biner Node.js pada instance atau server. Untuk mendapatkan jalur, Anda dapat menjalankan perintah **`which node`**(atau **`nvm which node`**jika Anda menggunakan`nvm`) pada instance atau server Anda. Misalnya, jalurnya mungkin `/usr/bin/node`. Jika Anda membiarkannya kosong, AWS Cloud9 mencoba menebak di mana biner Node.js saat mencoba terhubung.

1. Untuk **host lompat SSH**, masukkan informasi tentang host lompat yang digunakan instance atau server. Gunakan format `USER_NAME@HOSTNAME:PORT_NUMBER` (misalnya,`ec2-user@:ip-192-0-2-0:22`).

   Host lompat harus memenuhi persyaratan berikut:
   + Jump host harus dapat dijangkau melalui internet publik menggunakan SSH.
   + Jump host harus memungkinkan akses masuk oleh alamat IP apa pun melalui port tertentu.
   + Nilai kunci SSH publik yang disalin ke file `~/.ssh/authorized_keys` pada instans atau server yang ada juga harus disalin ke file `~/.ssh/authorized_keys` pada jump host.
   + Netcat harus diinstal.

1. Menambahkan hingga 50 tanda dengan menyediakan **Kunci** dan sebuah **Nilai** untuk setiap tanda. Lakukan dengan memilih **Tambahkan tag baru**. Tag dilampirkan ke AWS Cloud9 lingkungan sebagai tag sumber daya, dan disebarkan ke sumber daya dasar berikut: CloudFormation tumpukan, instans Amazon EC2, dan grup keamanan Amazon EC2. Untuk mempelajari lebih lanjut tentang tag, lihat [Mengontrol Akses Menggunakan Tag AWS Sumber Daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) di *[Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/)* dan [informasi lanjutan](tags.md) tentang tag dalam panduan ini.
**Awas**  
Jika Anda memperbarui tag ini setelah Anda membuatnya, perubahan tidak disebarkan ke sumber daya yang mendasarinya. Untuk informasi selengkapnya, lihat [Menyebarkan pembaruan tanda ke sumber daya yang mendasari](tags.md#tags-propagate) dalam informasi lanjutan tentang [tanda](tags.md).

1. Pilih **Buat** untuk membuat lingkungan Anda, dan Anda kemudian diarahkan ke halaman beranda. Ketika akun berhasil dibuat, bilah flash hijau muncul di bagian atas AWS Cloud9 konsol. Anda dapat memilih lingkungan baru dan memilih **Buka di Cloud9** untuk meluncurkan IDE.   
![\[AWS Cloud9 Pemilih IDE di konsol AWS Cloud9\]](http://docs.aws.amazon.com/id_id/cloud9/latest/user-guide/images/cloud9-ide-open.png)

   Jika akun gagal dibuat, bilah flash merah muncul di bagian atas AWS Cloud9 konsol. Akun Anda mungkin gagal dibuat karena masalah dengan browser web Anda, izin AWS akses Anda, instans, atau jaringan terkait. Anda dapat menemukan informasi tentang kemungkinan perbaikan pada masalah yang mungkin menyebabkan akun gagal di bagian [AWS Cloud9 Pemecahan Masalah](troubleshooting.md#troubleshooting-env-loading).

**catatan**  
Jika lingkungan Anda menggunakan proxy untuk mengakses internet, Anda harus memberikan detail proxy AWS Cloud9 agar dapat menginstal dependensi. Untuk informasi selengkapnya, lihat [Gagal menginstal dependensi](troubleshooting.md#proxy-failed-dependencies).

## Langkah 5: Jalankan kode
<a name="sample-docker-code"></a>

Pada langkah ini, Anda menggunakan AWS Cloud9 IDE untuk menjalankan aplikasi sampel di dalam wadah Docker yang sedang berjalan.

1. Dengan AWS Cloud9 IDE ditampilkan untuk wadah yang sedang berjalan, mulai server obrolan sampel. Untuk melakukannya, di jendela **Lingkungan**, klik kanan file sampel `workspace/server.js`, lalu pilih **Jalankan**.

1. Pratinjau aplikasi sampel. Untuk melakukan ini, di jendela **Lingkungan**, buka file `workspace/client/index.html`. Kemudian, pada bilah menu, pilih **Alat, Pratinjau, Pratinjau Aplikasi yang Berjalan**.

1. Pada tab pratinjau aplikasi, untuk **Nama Anda**, ketikkan nama Anda. Untuk **Pesan**, ketik pesan. Lalu, pilih **Kirim**. Server obrolan menambahkan nama dan pesan Anda ke daftar.

## Langkah 6: Membersihkan
<a name="sample-docker-clean-up"></a>

Pada langkah ini, Anda menghapus lingkungan AWS Cloud9 dan menghapus serta file dukungan Docker dari instans Amazon EC2. Selain itu, untuk mencegah tagihan berkelanjutan ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghentikan instans Amazon EC2 yang menjalankan Docker.

### Langkah 6.1: Hapus lingkungan
<a name="step-6-1-delete-the-envtitle"></a>

Untuk menghapus lingkungan, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).

### Langkah 6.2: Hapus file AWS Cloud9 dukungan dari wadah
<a name="step-6-2-remove-ac9-support-files-from-the-container"></a>

Setelah Anda menghapus lingkungan, beberapa file AWS Cloud9 dukungan masih tetap berada di wadah. Jika Anda ingin tetap menggunakan wadah tetapi tidak lagi membutuhkan file dukungan ini, hapus `.c9` folder dari direktori pada wadah yang Anda tentukan AWS Cloud9 untuk memulai setelah masuk. Misalnya, jika direktorinya adalah `~`, jalankan perintah ** `rm` ** dengan opsi ** `-r` ** sebagai berikut.

```
sudo rm -r ~/.c9
```

### Langkah 6.3: Hapus file dukungan Docker dari instans
<a name="step-6-3-remove-docker-support-files-from-the-instance"></a>

Jika Anda tidak ingin lagi menyimpan kontainer Docker, citra Docker, dan Docker pada instans Amazon EC2, tetapi Anda ingin menyimpan instans, Anda dapat menghapus file dukungan Docker ini sebagai berikut.

1. Hapus kontainer Docker dari instans. Untuk melakukannya, jalankan perintah ** `docker` ** pada instans dengan tindakan penghentian ** `stop` ** dan ** `rm` ** dan nama kontainer yang dapat dibaca manusia.

   ```
   sudo docker stop cloud9
   sudo docker rm cloud9
   ```

1. Hapus citra Docker dari instans. Untuk melakukannya, jalankan perintah ** `docker` ** pada instans dengan tindakan ** `image rm` ** dan tanda citra.

   ```
   sudo docker image rm cloud9-image:latest
   ```

1. Hapus file dukungan Docker tambahan yang mungkin masih keluar. Untuk melakukan ini, jalankan perintah ** `docker` ** pada instans dengan tindakan ** `system prune` **.

   ```
   sudo docker system prune -a
   ```

1. Copot pemasangan Docker. Untuk melakukannya, jalankan perintah ** `yum` ** pada instans dengan tindakan ** `remove` **, menentukan paket ** `docker` ** yang akan dihapus pemasangannya.

   Untuk Amazon Linux:

   ```
   sudo yum -y remove docker
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt -y remove docker
   ```

   Anda juga dapat menghapus file `Dockerfile` dan `authorized_keys` yang Anda buat sebelumnya. Sebagai contoh, jalankan perintah ** `rm` ** pada instans.

   ```
   sudo rm /tmp/Dockerfile
   sudo rm /tmp/authorized_keys
   ```

### Langkah 6.4: Akhiri instans
<a name="step-6-4-terminate-the-instance"></a>

Untuk menghentikan instans Amazon EC2, [lihat Menghentikan Instans Anda di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) Pengguna Amazon *EC2*.

## Tutorial Terkait
<a name="samples-additonal"></a>
+  [Memulai dengan AWS RoboMaker](https://docs.aws.amazon.com/robomaker/latest/dg/getting-started.html) di *Panduan AWS RoboMaker Pengembang*. Tutorial ini digunakan AWS Cloud9 untuk memodifikasi, membangun, dan bundel contoh aplikasi robot.