如何使用平台勾點自訂 Elastic Beanstalk 環境?

1 分的閱讀內容
0

我想要使用平台勾點來自訂 AWS Elastic Beanstalk 環境,以建立自訂指令碼或其他可執行檔。我想要在環境中執行的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上進行部署。

簡短描述

您可以使用平台勾點來擴充 Elastic Beanstalk 環境的功能,以執行自訂指令碼和可執行檔。Elastic Beanstalk 還可以在各種執行個體佈建階段執行這些勾點。

**注意:**Amazon Linux AMI 平台版本 (之前的 Amazon Linux 2) 不支援平台勾點。

平台勾點有兩種類型:

  • 當您為部署提供新的來源套件組合時,應用程式部署平台勾點會在應用程式部署期間執行。當您進行組態變更,需要終止和重新建立所有環境執行個體時,其也會執行。
  • 當您進行僅更新環境執行個體,而不重新建立其組態變更時,組態部署平台勾點會在組態部署期間執行。

解決方案

設定您的 .platform 目錄

1.    在應用程式套件組合的根目錄中,針對應用程式部署和組態部署平台勾點,建立名稱為 ‘.platform/hooks’或 ‘.platform/confighooks’的隱藏目錄。

2.    視乎執行個體佈建階段,必須將勾點檔案放置在下列其中一個子目錄:

  • prebuild
  • predeploy
  • postdeploy

若要識別使用案例所需的子目錄,請參閱擴充 Elastic Beanstalk Linux 平台

3.    您的應用程式來源套件組合看起來必須類似下列套件組合:

~/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'
  • 在本機電腦上使用 “chmod +x” 來設定勾點檔案的執行許可。或者,您可以使用 ‘.ebextensions’ 來提供許可。請參閱下列範例檔案:
container_commands:
  01_chmod1:
    command: "chmod +x .platform/hooks/postdeploy/custom-postdeploy-script.sh"

如需詳細資訊,請參閱如何使用 .ebextensions 來自訂 Elastic Beanstalk 環境?

將平台勾點套用至您的應用程式

1.    建立包含先前平台勾點和組態檔案的應用程式來源套件組合

**注意:**檔案瀏覽器可以隱藏以句點開頭的資料夾,例如 .platform.ebextensions。若要保持這些資料夾可見,請在建立應用程式來源套件組合時,將這些資料夾包含在應用程式套件組合的根目錄中。

2.    部署更新的 Elastic Beanstalk 應用程式


AWS 官方
AWS 官方已更新 1 年前