

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

# Hook platform
<a name="platforms-linux-extend.hooks"></a>

Hook platform dirancang khusus untuk memperluas platform lingkungan Anda. Ini adalah skrip kustom dan file eksekusi lainnya yang Anda men-deploy sebagai bagian dari kode sumber aplikasi Anda, dan Elastic Beanstalk berjalan selama berbagai tahap penyediaan instans.

**catatan**  
Hook platform tidak didukung pada versi platform Amazon Linux AMI (sebelumnya Amazon Linux 2).

## Hook platform deployment aplikasi
<a name="platforms-linux-extend.hooks.appdeploy"></a>

*Deployment aplikasi* terjadi ketika Anda menyediakan paket sumber baru untuk deployment, atau ketika Anda membuat perubahan konfigurasi yang memerlukan penghentian dan rekreasi semua instans lingkungan.

Untuk menyediakan platform hook yang berjalan selama deployment aplikasi, menempatkan file di bawah direktori `.platform/hooks` di paket sumber Anda, di salah satu subdirektori berikut.
+ `prebuild` – File di sini berjalan setelah platform mesin Elastic Beanstalk mengunggah dan mengekstrak paket sumber aplikasi, dan sebelum menyiapkan dan mengonfigurasi aplikasi dan server web.

  File `prebuild` berjalan setelah menjalankan perintah yang ditemukan di bagian [perintah](customize-containers-ec2.md#linux-commands) dari setiap file konfigurasi dan sebelum menjalankan perintah `Buildfile`.
+ `predeploy` – File di sini berjalan setelah mesin platform Elastic Beanstalk mengatur dan mengonfigurasi aplikasi dan server web, dan sebelum men-deploy mereka ke lokasi waktu aktif akhir mereka.

  File `predeploy` berjalan setelah menjalankan perintah yang ditemukan di bagian [container\$1commands](customize-containers-ec2.md#linux-container-commands) dari setiap file konfigurasi dan sebelum menjalankan perintah `Procfile`.
+ `postdeploy` – File di sini berjalan setelah mesin platform Elastic Beanstalk men-deploy aplikasi dan server proksi.

  Ini adalah langkah alur kerja deployment terakhir.

## Hook platform deployment konfigurasi
<a name="platforms-linux-extend.hooks.configdeploy"></a>

*Deployment konfigurasi* terjadi ketika Anda membuat perubahan konfigurasi yang hanya memperbarui instans lingkungan tanpa menciptakan mereka. Pembaharuan pilihan berikut ini menyebabkan pembaruan konfigurasi.
+ [Properti lingkungan dan pengaturan khusus platform](environments-cfg-softwaresettings.md)
+ [File statis](environment-cfg-staticfiles.md)
+ [AWS X-Ray daemon](environment-configuration-debugging.md)
+ [Penyimpanan log dan streaming](environments-cfg-logging.md)
+ Port aplikasi (untuk detailnya lihat[Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md))

Untuk menyediakan hook yang berjalan selama deployment konfigurasi, menempatkan mereka di bawah direktori `.platform/confighooks` dalam paket sumber Anda. Tiga subdirektori yang sama seperti untuk aplikasi deployment hook berlaku.

## Selengkapnya tentang hook platform
<a name="platforms-linux-extend.hooks.more"></a>

File hook dapat berupa file biner, atau berkas skrip yang dimulai dengan baris `#!` yang berisi jalur penerjemah mereka, seperti `#!/bin/bash`. Semua file harus memiliki izin eksekusi. Gunakan `chmod +x` untuk mengatur izin eksekusi pada file hook Anda. Untuk semua versi platform berbasis Amazon Linux 2023 dan Amazon Linux 2 yang dirilis pada atau setelah 29 April 2022, Elastic Beanstalk secara otomatis memberikan izin eksekusi ke semua skrip kait platform. Dalam hal ini Anda tidak perlu memberikan izin eksekusi secara manual. Untuk daftar versi platform ini, lihat catatan rilis Linux [29 April 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-04-29-linux.html#release-2022-04-29-linux.platforms) di *Panduan Catatan AWS Elastic Beanstalk Rilis*.

Elastic Beanstalk menjalankan file di masing-masing direktori ini dalam urutan leksikografis nama file. Semua file berjalan sebagai pengguna `root`. Direktori kerja saat ini (cwd) untuk hook platform adalah direktori root aplikasi. Untuk file `prebuild` dan `predeploy` itu adalah direktori pementasan aplikasi, dan untuk file `postdeploy` itu adalah direktori aplikasi saat ini. Jika salah satu file gagal (keluar dengan kode keluar non-nol), deployment dibatalkan dan gagal.

Skrip teks kait platform mungkin gagal jika berisi karakter pemisah baris Windows *Carriage Return /Line Feed* (CRLF). Jika file disimpan di host Windows, kemudian ditransfer ke server Linux, itu mungkin berisi jeda baris Windows CRLF. Untuk platform yang dirilis pada atau setelah [29 Desember 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-12-29-linux.html) Elastic Beanstalk secara otomatis mengonversi karakter Windows CRLF menjadi karakter pemutus baris *Linux* Line Feed (LF) di file teks kait platform. Jika aplikasi Anda berjalan pada platform Amazon Linux 2 yang dirilis sebelum tanggal ini, Anda harus mengonversi karakter Windows CRLF ke karakter LF Linux. Salah satu cara untuk mencapai ini adalah dengan membuat dan menyimpan file skrip pada host Linux. Alat yang mengonversi karakter ini juga tersedia di internet.

File hook memiliki akses ke semua properti lingkungan yang telah Anda tetapkan dalam opsi aplikasi, dan variabel lingkungan sistem `HOME`, `PATH`, dan `PORT`. 

Untuk mendapatkan nilai variabel lingkungan dan opsi konfigurasi lainnya ke skrip kait platform Anda, Anda dapat menggunakan utilitas `get-config` yang Elastic Beanstalk sediakan dalam instans lingkungan. Untuk rincian selengkapnya, lihat [Alat skrip platform untuk lingkungan Elastic Beanstalk Anda](custom-platforms-scripts.md).