

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

# Menyesuaikan perangkat lunak pada server Windows
<a name="customize-containers-windows-ec2"></a>

Anda mungkin ingin menyesuaikan dan mengonfigurasi perangkat lunak yang diandalkan oleh aplikasi Anda. File ini dapat berupa dependensi yang dibutuhkan oleh aplikasi—misalnya, paket tambahan atau layanan yang perlu dijalankan. Untuk informasi umum tentang menyesuaikan dan mengonfigurasi lingkungan Elastic Beanstalk Anda, lihat [Mengonfigurasi lingkungan Elastic Beanstalk](customize-containers.md).

**catatan**  
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.

File konfigurasi mendukung kunci berikut yang mempengaruhi server Windows tempat aplikasi Anda berjalan.

**Topics**
+ [Paket](#windows-packages)
+ [Sumber](#windows-sources)
+ [Berkas](#windows-files)
+ [Commands](#windows-commands)
+ [Layanan](#windows-services)
+ [Perintah kontainer](#windows-container-commands)

Kunci diproses dalam urutan yang tercantum di sini.

**catatan**  
Versi platform .NET yang lebih lama (tidak-berversi) tidak memproses file konfigurasi dalam urutan yang benar. Pelajari lebih lanjut di [Migrasi di versi utama dari platform server Elastic Beanstalk Windows](dotnet-v2migration.md).

Perhatikan [peristiwa](using-features.events.md) lingkungan Anda saat mengembangkan dan menguji file konfigurasi. Elastic Beanstalk mengabaikan file konfigurasi yang berisi kesalahan validasi, seperti kunci yang tidak valid, dan tidak memproses kunci lain dalam file yang sama. Ketika ini terjadi, Elastic Beanstalk menambahkan peristiwa peringatan log peristiwa.

## Paket
<a name="windows-packages"></a>

Gunakan kunci `packages` tersebut untuk mengunduh dan menginstal aplikasi dan komponen yang telah dikemas sebelumnya.

Di lingkungan Windows, Elastic Beanstalk mendukung pengunduhan dan penginstalan paket MSI. (Lingkungan Linux mendukung manajer paket tambahan. Untuk detailnya, lihat [Paket](customize-containers-ec2.md#linux-packages) pada halaman *Menyesuaikan Perangkat Lunak pada Server Linux*.)

Anda dapat mereferensikan lokasi eksternal, seperti objek Amazon Simple Storage Service (Amazon S3), selama URL dapat diakses publik.

Jika Anda menentukan beberapa paket `msi:`, instalasinya tidak dijamin.

### Sintaksis
<a name="windows-packages-syntax"></a>

Tentukan nama pilihan Anda sebagai nama paket, dan URL ke lokasi file MSI sebagai nilai. Anda dapat menentukan beberapa paket di bawah kunci `msi:`.

```
packages: 
  msi:
    package name: package url
    ...
```

### Contoh
<a name="windows-packages-snippet"></a>

Contoh berikut menentukan URL untuk mengunduh **mysql** dari `https://dev.mysql.com/`.

```
packages:
  msi:
    mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi
```

Contoh berikut menentukan objek Amazon S3 sebagai lokasi file MSI.

```
packages:
  msi:
    mymsi: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.msi
```

## Sumber
<a name="windows-sources"></a>

Gunakan kunci `sources` tersebut untuk mengunduh file arsip dari URL publik dan membongkarnya di direktori target pada instans EC2.

### Sintaksis
<a name="windows-sources-syntax"></a>

```
sources:  
  target directory: location of archive file
```

### Format yang didukung
<a name="windows-sources-support"></a>

Di lingkungan Windows, Elastic Beanstalk mendukung format .zip. (Lingkungan Linux mendukung format tambahan. Untuk detailnya, lihat [Sumber](customize-containers-ec2.md#linux-sources) pada halaman *Menyesuaikan Perangkat Lunak di Server Linux*.)

Anda dapat mereferensikan lokasi eksternal, seperti objek Amazon Simple Storage Service (Amazon S3), selama URL dapat diakses publik.

### Contoh
<a name="windows-sources-example"></a>

Contoh berikut mengunduh file.zip publik dari Amazon S3 dan membongkarnya. `c:/myproject/myapp`

```
sources:  
  "c:/myproject/myapp": https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.zip
```

## Berkas
<a name="windows-files"></a>

Gunakan kunci `files` tersebut untuk membuat file di instans EC2. Konten dapat berupa inline dalam file konfigurasi, atau dari URL. File ditulis ke disk dalam urutan leksikografis. Untuk mengunduh file pribadi dari Amazon S3, berikan profil instans untuk autorisasi.

### Sintaksis
<a name="windows-files-syntax"></a>

```
files:  
  "target file location on disk":
    source: URL
    authentication: authentication name:

  "target file location on disk":
    content: |
      this is my content
    encoding: encoding format
```

### Opsi
<a name="windows-files-options"></a>

`content`  
(Opsional) String. 

`source`  
(Opsional) URL tempat file dimuat. Opsi ini tidak dapat ditentukan dengan kunci konten.

`encoding`  
(Opsional) Format pengodean. Opsi ini hanya digunakan untuk nilai kunci konten yang disediakan. Nilai default-nya adalah `plain`.  
Nilai yang valid: `plain` \$1 `base64`

`authentication`  
(Opsional) Nama [metode autentikasi CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html) yang akan digunakan. Anda dapat menambahkan metode autentikasi ke metadata grup Auto Scaling dengan kunci Sumber Daya.

### Contoh
<a name="windows-files-snippet"></a>

Contoh berikut menunjukkan dua cara untuk menyediakan konten file: dari URL, atau inline dalam file konfigurasi.

```
files:
  "c:\\targetdirectory\\targetfile.txt":
    source: http://foo.bar/myfile
 
  "c:/targetdirectory/targetfile.txt":
    content: |
      # this is my file
      # with content
```

**catatan**  
Jika Anda menggunakan backslash (\$1) di jalur file Anda, Anda harus mendahuluinya dengan backslash lain (karakter escape) seperti yang ditunjukkan pada contoh sebelumnya.

Contoh berikut menggunakan kunci Resources untuk menambahkan metode otentikasi bernama S3Auth dan menggunakannya untuk mengunduh file pribadi dari Amazon S3:

```
files:
  "c:\\targetdirectory\\targetfile.zip":
    source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip
    authentication: S3Auth

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          s: ["amzn-s3-demo-bucket"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
```

## Commands
<a name="windows-commands"></a>

Gunakan kunci `commands` untuk menjalankan perintah pada instans EC2. Perintah diproses dalam urutan abjad berdasarkan nama, dan mereka berjalan sebelum aplikasi dan server web diatur dan file versi aplikasi diekstrak.

Perintah yang ditentukan dijalankan sebagai pengguna Administrator.

Untuk memecahkan masalah dengan perintah Anda, Anda dapat menemukan outputnya di [log instans](using-features.logging.md).

### Sintaksis
<a name="windows-commands-syntax"></a>

```
commands:
  command name: 
    command: command to run
```

### Opsi
<a name="windows-commands-options"></a>

`command`  
Baik array atau string yang menentukan perintah yang akan dijalankan. Jika Anda menggunakan array, Anda tidak perlu menghindari karakter spasi atau melampirkan parameter perintah dalam tanda kutip.

`cwd`  
(Opsional) Direktori kerja. Secara default, Elastic Beanstalk mencoba untuk menemukan lokasi direktori proyek Anda. Jika tidak ditemukan, Elastic Beanstalk menggunakan `c:\Windows\System32` sebagai default.

`env`  
(Opsional) Atur variabel lingkungan untuk perintah. Properti ini menimpa, bukan menambahkan, lingkungan yang ada.

`ignoreErrors`  
(Opsional) Nilai Boolean yang menentukan apakah perintah lain harus dijalankan jika perintah yang terdapat dalam kunci `command` gagal (mengembalikan nilai bukan nol). Tetapkan nilai ini ke `true` jika Anda ingin terus menjalankan perintah meskipun perintah gagal. Atur nilai ke `false` jika Anda ingin berhenti menjalankan perintah jika perintah gagal. Nilai default-nya adalah `false`.

`test`  
(Opsional) Perintah yang harus mengembalikan nilai `true` (kode keluar 0) agar Elastic Beanstalk memproses perintah yang terdapat dalam kunci `command`.

`waitAfterCompletion`  
(Opsional) Menunggu beberapa detik setelah perintah selesai sebelum menjalankan perintah berikutnya. Nilai default adalah **60** detik. Anda juga dapat menentukan**forever**.  
Reboot sistem selama penerapan tidak didukung. Jika sistem reboot sebagai akibat dari perintah, inisialisasi instance akan gagal, menyebabkan penerapan gagal.  
Sebagai solusinya, Anda dapat menggunakan ini [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config)untuk menjadwalkan reboot setelah penerapan selesai.

### Contoh
<a name="windows-commands-snippet"></a>

Contoh berikut menyimpan output dari perintah `set` ke file yang ditentukan. Jika ada perintah berikutnya, Elastic Beanstalk menjalankan perintah itu segera setelah perintah ini selesai. Jika perintah ini membutuhkan reboot, Elastic Beanstalk melakukan reboot instans segera setelah perintah selesai.

```
commands:
  test: 
    command: set > c:\\myapp\\set.txt
    waitAfterCompletion: 0
```

## Layanan
<a name="windows-services"></a>

Gunakan kunci `services` untuk menentukan layanan yang harus dimulai atau dihentikan ketika instans diluncurkan. Kunci `services` tersebut juga memungkinkan Anda untuk menentukan dependensi pada sumber, paket, dan file sehingga jika restart diperlukan akibat dari file yang diinstal, Elastic Beanstalk mengurus restart layanan.

### Sintaksis
<a name="windows-services-syntax"></a>

```
services: 
  windows:
    name of service:
      files:
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
            "package name[: version]"
      commands: 
        - "name of command"
```

### Opsi
<a name="windows-services-options"></a>

`ensureRunning`  
(Opsional) Atur ke `true` untuk memastikan layanan berjalan setelah Elastic Beanstalk selesai.  
Atur ke `false` untuk memastikan layanan tidak berjalan setelah Elastic Beanstalk selesai.  
Abaikan kunci ini untuk tidak membuat perubahan pada status layanan.

`enabled`  
(Opsional) Atur ke `true` untuk memastikan layanan dimulai secara otomatis setelah boot.  
Atur ke `false` untuk memastikan layanan tidak dimulai secara otomatis setelah boot.  
Abaikan kunci ini untuk tidak membuat perubahan pada properti ini.

`files`  
Daftar file. Jika Elastic Beanstalk mengubah file secara langsung melalui blok file, layanan dimulai ulang.

`sources`  
Daftar direktori. Jika Elastic Beanstalk memperluas arsip ke salah satu direktori ini, layanan akan dimulai ulang.

`packages`  
Peta manajer paket ke daftar nama paket. Jika Elastic Beanstalk menginstal atau memperbarui salah satu paket ini, layanan akan dimulai ulang.

`commands`  
Daftar nama perintah. Jika Elastic Beanstalk menjalankan perintah yang ditentukan, layanan akan dimulai ulang.

### Contoh
<a name="windows-services-snippet"></a>

```
services: 
  windows:
    myservice:
      enabled: true
      ensureRunning: true
```

## Perintah kontainer
<a name="windows-container-commands"></a>

Gunakan kunci `container_commands` untuk menjalankan perintah yang mempengaruhi kode sumber aplikasi Anda. Perintah kontainer berjalan setelah aplikasi dan server web diatur dan arsip versi aplikasi telah diekstraksi, tetapi sebelum versi aplikasi di-deploy. Perintah non-kontainer dan operasi penyesuaian lainnya dilakukan sebelum kode sumber aplikasi diekstraksi.

Perintah kontainer dijalankan dari direktori pementasan, di mana kode sumber Anda diekstrak sebelum di-deploy ke server aplikasi. Setiap perubahan yang Anda buat untuk kode sumber Anda di direktori pementasan dengan perintah kontainer akan disertakan ketika sumber di-deploy ke lokasi akhir.

Untuk memecahkan masalah dengan perintah kontainer, Anda dapat menemukan output-nya di [log instans](using-features.logging.md).

Gunakan opsi `leader_only` hanya untuk menjalankan perintah pada satu instans, atau mengonfigurasi `test` hanya untuk menjalankan perintah ketika perintah pengujian dievaluasi `true`. Perintah kontainer khusus pemimpin hanya dijalankan selama pembuatan dan penerapan lingkungan, sedangkan perintah dan operasi penyesuaian server lain dilakukan setiap kali sebuah instans ditetapkan atau diperbarui. Perintah kontainer khusus pemimpin tidak dijalankan untuk memulai perubahan konfigurasi, seperti perubahan pada Id AMI atau jenis instans.

### Sintaksis
<a name="windows-container-commands-syntax"></a>

```
container_commands:
  name of container_command:
    command: command to run
```

### Opsi
<a name="windows-container-commands-options"></a>

`command`  
Sebuah string atau array string yang akan dijalankan.

`env`  
(Opsional) Atur variabel lingkungan sebelum menjalankan perintah, menimpa nilai yang ada.

`cwd`  
(Opsional) Direktori kerja. Secara default, ini adalah direktori persiapan aplikasi unzip.

`leader_only`  
(Opsional) Hanya jalankan perintah pada satu instans yang dipilih oleh Elastic Beanstalk. Perintah kontainer khusus pemimpin dijalankan sebelum perintah kontainer lainnya. Sebuah perintah bisa ditujukan khusus untuk pemimpin atau memiliki `test`, tetapi tidak keduanya (`leader_only` diutamakan).

`test`  
(Opsional) Jalankan perintah pengujian yang harus mengembalikan `true` untuk menjalankan perintah kontainer. Sebuah perintah bisa ditujukan khusus untuk pemimpin atau memiliki `test`, tetapi tidak keduanya (`leader_only` diutamakan).

`ignoreErrors`  
(Opsional) Jangan gagalkan penerapan jika perintah kontainer mengembalikan nilai selain 0 (sukses). Atur ke `true` untuk mengaktifkan.

`waitAfterCompletion`  
(Opsional) Menunggu beberapa detik setelah perintah selesai sebelum menjalankan perintah berikutnya. Nilai default adalah **60** detik. Anda juga dapat menentukan**forever**.  
Reboot sistem selama penerapan tidak didukung. Jika sistem reboot sebagai akibat dari perintah, inisialisasi instance akan gagal, menyebabkan penerapan gagal.  
Sebagai solusinya, Anda dapat menggunakan ini [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/windows-configuration/scheduled-restart.config)untuk menjadwalkan reboot setelah penerapan selesai.

### Contoh
<a name="windows-container-commands-snippet"></a>

Contoh berikut menyimpan output dari perintah `set` ke file yang ditentukan. Elastic Beanstalk menjalankan perintah pada satu instans, dan melakukan reboot pada instans segera setelah perintah selesai.

```
container_commands:
  foo:
    command: set > c:\\myapp\\set.txt
    leader_only: true
    waitAfterCompletion: 0
```