

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

# Alat skrip platform untuk lingkungan Elastic Beanstalk Anda
<a name="custom-platforms-scripts"></a>

Topik ini menjelaskan alat yang AWS Elastic Beanstalk menyediakan lingkungan yang menggunakan platform Amazon Linux. Alat-alat tersebut terletak di EC2 contoh Amazon dari lingkungan Elastic Beanstalk.

## get-config
<a name="custom-platforms-scripts.get-config"></a>

Gunakan `get-config` alat ini untuk mengambil nilai variabel lingkungan teks biasa dan informasi platform dan instance lainnya. Alat ini tersedia di `/opt/elasticbeanstalk/bin/get-config`.

### Perintah get-config
<a name="custom-platforms-scripts.get-config.commands"></a>

Setiap `get-config` perintah alat mengembalikan jenis informasi tertentu. Gunakan sintaks berikut untuk menjalankan perintah dari salah satu alat.

```
$ /opt/elasticbeanstalk/bin/get-config {{command}} [ {{options}} ]
```

Contoh berikut menjalankan perintah `environment`.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k PORT
```

Bergantung pada perintah dan opsi yang Anda pilih, alat mengembalikan objek (JSON atau YAMAL) dengan pasangan kunci-nilai atau nilai tunggal.

Anda dapat menguji `get-config` dengan menggunakan SSH untuk terhubung ke EC2 instans di lingkungan Elastic Beanstalk Anda.

**catatan**  
Ketika Anda menjalankan `get-config` untuk pengujian, beberapa perintah mungkin memerlukan hak pengguna root untuk mengakses informasi dasar. Jika Anda mendapatkan kesalahan izin akses, jalankan perintah lagi di bawah `sudo`.  
Anda tidak perlu menambahkan `sudo` saat menggunakan alat dalam skrip yang Anda deploy ke lingkungan Anda. Elastic Beanstalk menjalankan semua skrip Anda sebagai pengguna root.

Bagian berikut menjelaskan perintah untuk alat.

#### optionsettings – pilihan konfigurasi
<a name="custom-platforms-scripts.get-config.commands.optionsettings"></a>

`get-config optionsettings`Perintah mengembalikan objek yang mencantumkan opsi konfigurasi yang disetel di lingkungan dan digunakan oleh platform pada instance lingkungan. Mereka diatur oleh namespace.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings
{"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}
```

Untuk mengembalikan nilai opsi konfigurasi tertentu, gunakan pilihan `--namespace` (`-n`) untuk menentukan namespace, dan pilihan `--option-name` (`-o`) untuk menentukan nama pilihan.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings -n {{aws:elasticbeanstalk:container:php:phpini}} -o {{memory_limit}}
256M
```

#### lingkungan – Sifat lingkungan
<a name="custom-platforms-scripts.get-config.commands.environment"></a>

`get-config environment`Perintah mengembalikan objek yang berisi daftar properti lingkungan, termasuk baik yang dikonfigurasi pengguna dan disediakan oleh Elastic Beanstalk. Properti yang dikonfigurasi pengguna didefinisikan di [konsol](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console) sebagai *Teks biasa* atau dengan namespace opsi konfigurasi. [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)

```
$ /opt/elasticbeanstalk/bin/get-config environment
{"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}
```

Misalnya, Elastic Beanstalk menyediakan properti lingkungan untuk menghubungkan ke instans Amazon RDS DB terintegrasi (misalnya,). `RDS_HOSTNAME` Properti koneksi RDS ini muncul dalam output dari. `get-config environment` Namun, mereka tidak muncul di output`get-config optionsettings`. Ini karena mereka tidak diatur dalam opsi konfigurasi.

Untuk mengembalikan properti lingkungan tertentu, gunakan `--key` (`-k`) pilihan untuk menentukan kunci properti.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k {{TESTPROPERTY}}
testvalue
```

**catatan**  
`get-config`Alat ini tidak dapat mengambil [variabel lingkungan yang menyimpan rahasia](AWSHowTo.secrets.env-vars.md). Untuk informasi selengkapnya tentang cara mengambil nilai secara terprogram dari penyimpanan rahasia atau parameter, lihat atau. [Menggunakan Secrets Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager) [Menggunakan Systems Manager Parameter Store](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store)

#### kontainer – Nilai-nilai konfigurasi pada instans
<a name="custom-platforms-scripts.get-config.commands.container"></a>

`get-config container`Perintah mengembalikan objek yang mencantumkan nilai konfigurasi platform dan lingkungan untuk instance lingkungan. 

Contoh berikut menunjukkan output untuk perintah pada lingkungan Amazon Linux 2 Tomcat.

```
$ /opt/elasticbeanstalk/bin/get-config container
{"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}
```

Untuk mengembalikan nilai kunci tertentu, gunakan pilihan `--key` (`-k`) untuk menentukan kunci.

```
$ /opt/elasticbeanstalk/bin/get-config container -k {{environment_name}}
myenv-1da84946
```

#### addons – Menambahkan nilai konfigurasi
<a name="custom-platforms-scripts.get-config.commands.addons"></a>

`get-config addons`Perintah mengembalikan objek yang berisi informasi konfigurasi add-on lingkungan. Gunakan untuk mengambil konfigurasi database Amazon RDS yang terkait dengan lingkungan.

```
$ /opt/elasticbeanstalk/bin/get-config addons
{"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}
```

Anda bisa membatasi hasilnya dengan dua cara. Untuk mengambil nilai untuk add-on tertentu, gunakan pilihan `--add-on` (`-a`) untuk menentukan nama add-on.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a {{rds}}
{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}
```

Untuk mengembalikan nilai kunci tertentu dalam add-on, tambahkan pilihan `--key` (`-k`) untuk menentukan kunci.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a {{rds}} -k {{RDS_DB_NAME}}
ebdb
```

#### platformconfig – nilai konfigurasi konstan
<a name="custom-platforms-scripts.get-config.commands.platformconfig"></a>

`get-config platformconfig`Perintah mengembalikan objek yang berisi informasi konfigurasi platform yang konstan ke versi platform. Outputnya sama di semua lingkungan yang menjalankan versi platform yang sama. Objek output untuk perintah memiliki dua objek tertanam:
+ `GeneralConfig`— Berisi informasi yang konstan di seluruh versi terbaru dari semua cabang platform Amazon Linux 2 dan Amazon Linux 2023.
+ `PlatformSpecificConfig`— Berisi informasi yang konstan untuk versi platform dan khusus untuk itu.

Contoh berikut menunjukkan output untuk perintah pada lingkungan yang menggunakan *Tomcat 8.5 menjalankan cabang platform Corretto 11*.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig
{"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}
```

Untuk mengembalikan nilai kunci tertentu, gunakan pilihan `--key` (`-k`) untuk menentukan kunci. Kunci ini unik di dua benda tertanam. Anda tidak perlu menentukan objek yang berisi kunci.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k {{AppStagingDir}}
/var/app/staging/
```

### pilihan output get-config
<a name="custom-platforms-scripts.get-config.global"></a>

Gunakan pilihan `--output` untuk menentukan format objek output. Nilai yang valid adalah `JSON` (default) dan `YAML`. Ini adalah opsi global. Anda harus menentukannya sebelum nama perintah.

Contoh berikut mengembalikan nilai opsi konfigurasi dalam format YAMM.

```
$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings
aws:elasticbeanstalk:application:environment:
  JDBC_CONNECTION_STRING: ""
aws:elasticbeanstalk:container:tomcat:jvmoptions:
  JVM Options: ""
  Xms: 256m
  Xmx: 256m
aws:elasticbeanstalk:environment:proxy:
  ProxyServer: nginx
  StaticFiles:
        - ""
aws:elasticbeanstalk:healthreporting:system:
  SystemType: enhanced
aws:elasticbeanstalk:hostmanager:
  LogPublicationControl: "false"
```

## pkg-repo
<a name="custom-platforms-scripts.pkg-repo"></a>

**catatan**  
`pkg-repo`Alat ini tidak tersedia untuk lingkungan berdasarkan platform Amazon Linux 2023. Namun, Anda dapat secara manual menerapkan paket dan pembaruan sistem operasi ke instans AL2 023. Untuk informasi selengkapnya, lihat [Mengelola paket dan pembaruan sistem operasi](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) di *Panduan Pengguna Amazon Linux 2023*

Dalam beberapa keadaan mendesak, Anda mungkin perlu memperbarui EC2 instans Amazon Anda dengan patch keamanan Amazon Linux 2 yang belum dirilis dengan versi platform Elastic Beanstalk yang diperlukan. Anda tidak dapat melakukan pembaruan manual pada lingkungan Elastic Beanstalk Anda secara default. Ini karena versi platform dikunci ke versi tertentu dari repositori Amazon Linux 2. Kunci ini memastikan bahwa instance menjalankan versi perangkat lunak yang didukung dan konsisten. Untuk kasus yang mendesak, `pkg-repo` alat ini memungkinkan solusi untuk memperbarui paket yum secara manual di Amazon Linux 2 jika Anda perlu menginstalnya di lingkungan sebelum dirilis dalam versi platform Elastic Beanstalk yang baru.

`pkg-repo`Alat pada platform Amazon Linux 2 menyediakan kemampuan untuk membuka kunci repositori `yum` paket. Anda kemudian dapat melakukan patch keamanan **yum update** secara manual. Sebaliknya, Anda dapat mengikuti pembaruan dengan menggunakan alat untuk mengunci repositori paket yum untuk mencegah pembaruan lebih lanjut. `pkg-repo`Alat ini tersedia di `/opt/elasticbeanstalk/bin/pkg-repo` direktori semua EC2 instance di lingkungan Elastic Beanstalk Anda.

Perubahan menggunakan `pkg-repo` alat dibuat hanya pada EC2 contoh di mana alat digunakan. Mereka tidak memengaruhi instance lain atau mencegah pembaruan lingkungan di masa mendatang. Contoh yang diberikan nanti dalam topik ini menjelaskan cara menerapkan perubahan di semua instance dengan memanggil `pkg-repo` perintah dari skrip dan file konfigurasi.

**Awas**  
Kami tidak merekomendasikan alat ini untuk sebagian besar pengguna. Setiap perubahan manual yang diterapkan pada versi platform yang tidak terkunci dianggap tidak sesuai. Opsi ini hanya layak bagi pengguna dalam keadaan mendesak yang dapat menerima risiko berikut:  
Versi Package tidak dapat dijamin konsisten di semua instance di lingkungan Anda.
Lingkungan yang dimodifikasi menggunakan `pkg-repo` alat tidak dijamin berfungsi dengan baik. Mereka belum diuji dan diverifikasi pada platform yang didukung Elastic Beanstalk.
Kami sangat menyarankan untuk menerapkan praktik terbaik yang mencakup rencana pengujian dan backout. Untuk membantu memfasilitasi praktik terbaik, Anda dapat menggunakan konsol Elastic Beanstalk dan EB CLI untuk mengkloning lingkungan dan menukar lingkungan. URLs Untuk informasi selengkapnya tentang penggunaan operasi ini, lihat [penerapan Biru/Hijau](using-features.CNAMESwap.md) di bagian *Mengelola lingkungan* dari panduan ini.

Jika Anda berencana untuk mengedit file konfigurasi repositori yum secara manual, jalankan alat terlebih dahulu. `pkg-repo` `pkg-repo`Alat ini mungkin tidak berfungsi sebagaimana dimaksud di lingkungan Amazon Linux 2 dengan file konfigurasi repositori yum yang diedit secara manual. Ini karena alat mungkin tidak mengenali perubahan konfigurasi.

*Untuk informasi selengkapnya tentang repositori paket Amazon Linux, lihat topik [repositori Package](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#package-repository) di Panduan Pengguna Amazon. EC2 *

### perintah pkg-repo
<a name="custom-platforms-scripts.pkg-repo.commands"></a>

Gunakan sintaks berikut untuk menjalankan perintah `pkg-repo` alat.

```
$ /opt/elasticbeanstalk/bin/pkg-repo {{command}} [{{options}}]
```

`pkg-repo`Perintahnya adalah sebagai berikut:
+ **lock**— mengunci repositori `yum` paket ke versi tertentu
+ **unlock**— membuka repositori `yum` paket dari versi tertentu
+ **status**— daftar semua repositori `yum` paket dan status kunci mereka saat ini
+ **help**— menunjukkan bantuan umum atau bantuan untuk satu perintah

Opsi berlaku untuk perintah sebagai berikut:
+ `lock`, `unlock` dan `status ` — opsi:`-h`,`--help`, atau tidak ada (default).
+ `help`— opsi:`lock`,`unlock`,`status`, atau tidak ada (default).



Contoh berikut menjalankan perintah **unlock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
```

Contoh berikut menjalankan perintah **lock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
```

Contoh berikut menjalankan perintah **status**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
```

Contoh berikut menjalankan **help** perintah untuk **lock** perintah.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
```

Contoh berikut menjalankan **help** perintah untuk `pkg-repo` alat ini.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
```

Anda dapat menguji `pkg-repo` dengan menggunakan SSH untuk terhubung ke sebuah instans di lingkungan Elastic Beanstalk Anda. Salah satu opsi SSH adalah perintah EB CLI. [**eb ssh**](eb3-ssh.md)

**catatan**  
`pkg-repo`Alat ini membutuhkan hak akses pengguna root untuk dijalankan. Jika Anda mendapatkan kesalahan izin akses, jalankan perintah lagi di bawah `sudo`.  
Anda tidak perlu menambahkan `sudo` saat menggunakan alat dalam skrip atau file konfigurasi yang Anda gunakan ke lingkungan Anda. Elastic Beanstalk menjalankan semua skrip Anda sebagai pengguna root.

### contoh pkg-repo
<a name="custom-platforms-scripts.pkg-repo.examples"></a>

Bagian sebelumnya memberikan contoh baris perintah untuk pengujian pada EC2 instance individual dari lingkungan Elastic Beanstalk. Pendekatan ini dapat membantu untuk pengujian. Namun, ini hanya memperbarui satu instance pada satu waktu, jadi tidak praktis untuk menerapkan perubahan ke semua instance di lingkungan.

Pendekatan yang lebih pragmatis adalah dengan menggunakan skrip [hook platform](platforms-linux-extend.hooks.md) atau file [`.ebextensions`](ebextensions.md)konfigurasi untuk menerapkan perubahan di semua instance secara konsisten.

Contoh panggilan berikut `pkg-repo` dari file konfigurasi dalam [`.ebextensions`](ebextensions.md)folder. Elastic Beanstalk menjalankan perintah `update_package.config` dalam file saat Anda menerapkan bundel sumber aplikasi Anda.

```
.ebextensions
└── update_package.config
```

Untuk menerima versi terbaru dari paket *docker*, konfigurasi ini menentukan paket *docker* dalam perintah. **yum update**

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update docker -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Konfigurasi ini tidak menentukan paket apa pun dalam **yum update** perintah. Semua pembaruan yang tersedia diterapkan sebagai hasilnya.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Contoh panggilan berikut `pkg-repo` dari skrip bash sebagai [hook platform](platforms-linux-extend.hooks.md). Elastic Beanstalk `update_package.sh` menjalankan file skrip yang terletak di subdirektori. `prebuild`

```
.platform
└── hooks
    └── prebuild
        └── update_package.sh
```

Untuk menerima versi terbaru dari paket *docker*, skrip ini menentukan paket *docker* dalam perintah. **yum update** Jika nama paket dihilangkan, semua pembaruan yang tersedia diterapkan. Contoh file konfigurasi sebelumnya menunjukkan ini.

```
### update_package.sh ###

#!/bin/bash

/opt/elasticbeanstalk/bin/pkg-repo unlock
yum update docker -y
/opt/elasticbeanstalk/bin/pkg-repo lock
yum clean all -y
rm -rf /var/cache/yum
```

## download-source-bundle (Hanya AMI Amazon Linux)
<a name="custom-platforms-scripts.download"></a>

Di cabang platform Amazon Linux AMI (sebelumnya Amazon Linux 2), Elastic Beanstalk menyediakan alat tambahan, yaitu. `download-source-bundle` Gunakan alat ini untuk mengunduh kode sumber aplikasi Anda saat menerapkan platform Anda. Alat ini tersedia di `/opt/elasticbeanstalk/bin/download-source-bundle`.

Contoh skrip `00-unzip.sh` terletak di folder `appdeploy/pre` pada instans lingkungan. Ini menunjukkan bagaimana menggunakan `download-source-bundle` untuk men-download kode sumber aplikasi ke `/opt/elasticbeanstalk/deploy/appsource` folder selama penyebaran.