

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

# Membuat dan memperbarui grup lingkungan Elastic Beanstalk
<a name="environment-mgmt-compose"></a>

Dengan AWS Elastic Beanstalk [ComposeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ComposeEnvironments.html)API, Anda dapat membuat dan memperbarui grup lingkungan Elastic Beanstalk dalam satu aplikasi. Setiap lingkungan dalam grup dapat menjalankan komponen terpisah dari aplikasi arsitektur berorientasi layanan. API `Compose Environments` mengambil daftar versi aplikasi dan nama grup pilihan. Elastic Beanstalk membuat lingkungan untuk setiap versi aplikasi, atau, jika lingkungan sudah ada, men-deploy versi aplikasi kepada mereka.

Buat tautan antara lingkungan Elastic Beanstalk untuk menunjuk satu lingkungan sebagai ketergantungan dari yang lain. Ketika Anda membuat grup lingkungan dengan API `Compose Environments`, Elastic Beanstalk membuat lingkungan dependen hanya setelah dependensi mereka berfungsi. Untuk informasi lebih lanjut terkait tautan lingkungan, lihat [Membuat tautan antara lingkungan Elastic Beanstalk](environment-cfg-links.md).

API `Compose Environments` menggunakan [manifes lingkungan](environment-cfg-manifest.md) untuk menyimpan detail konfigurasi yang dibagi oleh grup lingkungan. Setiap aplikasi komponen harus memiliki file konfigurasi `env.yaml` dalam paket sumber aplikasi yang menentukan parameter yang digunakan untuk membuat lingkungannya.

`Compose Environments` membutuhkan `EnvironmentName` dan `SolutionStack` yang akan ditentukan dalam manifes lingkungan untuk setiap aplikasi komponen.

Anda dapat menggunakan `Compose Environments` API dengan antarmuka baris perintah Elastic Beanstalk (EB CLI), the, atau SDK. AWS CLI Lihat [Mengelola beberapa lingkungan Elastic Beanstalk sebagai grup dengan EB CLI](ebcli-compose.md) untuk instruksi EB CLI.

## Menggunakan API `Compose Environments`
<a name="environment-mgmt-compose-example"></a>

Misalnya, Anda dapat membuat aplikasi bernama `Media Library` yang memungkinkan pengguna mengunggah dan mengelola citra dan video yang tersimpan di Amazon Simple Storage Service (Amazon S3). Aplikasi ini memiliki lingkungan front-end, `front`, yang menjalankan aplikasi web yang memungkinkan pengguna mengunggah dan mengunduh masing-masing file, melihat pustaka mereka, dan memulai tugas pemrosesan batch.

Alih-alih memproses tugas secara langsung, aplikasi front-end menambahkan pekerjaan untuk antrean Amazon SQS. Lingkungan kedua, `worker`, menarik tugas dari antrean dan memprosesnya. `worker` menggunakan tipe instans G2 yang memiliki GPU berperfoma tinggi, sementara `front` dapat berjalan pada jenis instans generik yang lebih hemat biaya.

Anda akan mengatur folder proyek, `Media Library`, ke dalam direktori terpisah untuk setiap komponen, dengan setiap direktori yang berisi file definisi lingkungan (`env.yaml`) dengan kode sumber untuk masing-masing:

```
~/workspace/media-library
|-- front
|   `-- env.yaml
`-- worker
    `-- env.yaml
```

Daftar berikut menunjukkan file `env.yaml` untuk setiap aplikasi komponen.

**`~/workspace/media-library/front/env.yaml`**

```
EnvironmentName: front+
EnvironmentLinks:
  "WORKERQUEUE" : "worker+"
AWSConfigurationTemplateVersion: 1.1.0.0
EnvironmentTier: 
  Name: WebServer
  Type: Standard
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8
OptionSettings:
  aws:autoscaling:launchconfiguration:
    InstanceType: m4.large
```

**`~/workspace/media-library/worker/env.yaml`**

```
EnvironmentName: worker+
AWSConfigurationTemplateVersion: 1.1.0.0
EnvironmentTier:
  Name: Worker
  Type: SQS/HTTP
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8
OptionSettings:
  aws:autoscaling:launchconfiguration:
    InstanceType: g2.2xlarge
```

Setelah [membuat versi aplikasi](applications-versions.md) untuk komponen aplikasi front-end (`front-v1`) dan pekerja (`worker-v1`), Anda memanggil API `Compose Environments` dengan nama versi. Dalam contoh ini, kami menggunakan AWS CLI untuk memanggil API.

```
# Create application versions for each component: 
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label front-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="front-v1.zip"
  {
    "ApplicationVersion": {
        "ApplicationName": "media-library",
        "VersionLabel": "front-v1",
        "Description": "",
        "DateCreated": "2015-11-03T23:01:25.412Z",
        "DateUpdated": "2015-11-03T23:01:25.412Z",
        "SourceBundle": {
            "S3Bucket": "amzn-s3-demo-bucket",
            "S3Key": "front-v1.zip"
        }
    }
  }
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label worker-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="worker-v1.zip"
  {
    "ApplicationVersion": {
        "ApplicationName": "media-library",
        "VersionLabel": "worker-v1",
        "Description": "",
        "DateCreated": "2015-11-03T23:01:48.151Z",
        "DateUpdated": "2015-11-03T23:01:48.151Z",
        "SourceBundle": {
            "S3Bucket": "amzn-s3-demo-bucket",
            "S3Key": "worker-v1.zip"
        }
    }
  }
# Create environments:
~$ aws elasticbeanstalk compose-environments --application-name media-library --group-name dev --version-labels front-v1 worker-v1
```

Panggilan ketiga membuat dua lingkungan, `front-dev` dan `worker-dev`. API membuat nama-nama lingkungan dengan menggabungkan `EnvironmentName` yang ditentukan dalam file `env.yaml` dengan pilihan `group name` yang ditentukan dalam panggilan `Compose Environments`, dipisahkan oleh tanda hubung. Panjang total dua pilihan ini dan tanda hubung tidak boleh melebihi maksimum yang diizinkan panjang nama lingkungan 23 karakter.

Aplikasi yang berjalan di lingkungan `front-dev` dapat mengakses nama antrean Amazon SQS yang terlampir pada lingkungan `worker-dev` dengan membaca variabel `WORKERQUEUE`. Untuk informasi lebih lanjut terkait tautan lingkungan, lihat [Membuat tautan antara lingkungan Elastic Beanstalk](environment-cfg-links.md).