我想使用平台勾點來建立自訂指令碼或其他可執行檔案,以自訂 AWS Elastic Beanstalk 環境。我想在環境中執行的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上部署這些。
解決方法
**注意:**早於 Amazon Linux 2 的 Amazon Linux Amazon Machine Image (AMI) 平台版本不支援平台勾點。Elastic Beanstalk 會自動授予 Amazon AL2023 和 Amazon Linux 2 的所有平台勾點指令碼執行權限。
設定您的 .platform 目錄
完成下列步驟:
- 在應用程式套件的根目錄中,建立一個名為 .platform/hook 的隱藏目錄,用於應用程式部署平台勾點,或建立一個名為 .platform/confighook 的隱藏目錄,用於組態部署平台勾點。
- 根據平台勾點檔案執行時的執行個體佈建階段,您必須將勾點檔案放入預先建置、預先部署或部署後的子目錄中。
如需有關每個子目錄的詳細資訊,請參閱應用程式部署平台勾點。
- 您的應用程式來源套件必須與下列套件類似:
~/workspace/my-application/|-- .platform
|--hooks
|--prebuild
|-- custom-prebuild-script.sh
|--predeploy
|-- custom-predeploy-script.sh
|--postdeploy
|-- custom-postdeploy-script.sh
|-- .ebextensions
|-- index.php
`-- styles.css
指定勾點檔案
勾點檔案可以是以 #! 列開頭的二進制檔案或指令碼檔案,並包含其解譯器路徑,例如 #!/bin/bash。
custom-postdeploy-script.sh 指令碼檔案中的內容範例:
#!/bin/bash
sudo su
cd /var/app/current
echo "Hello from AWS hook" >> 'test.txt'
如需詳細資訊,請參閱如何使用 .ebextensions 自訂 Elastic Beanstalk 環境?
將平台勾點套用至您的應用程式
完成下列步驟:
- 建立應用程式來源套件,其中包含先前的平台勾點和組態檔案。
**注意:**檔案瀏覽器可以隱藏以句點開頭的資料夾,例如 .platform 和 .ebextensions。若要保持資料夾顯示,請在建立應用程式來源套件時,將資料夾包括在應用程式套件的根目錄中。
- 部署更新後的 Elastic Beanstalk 應用程式。