Wie passe ich meine Elastic-Beanstalk-Umgebung mithilfe von Plattform-Hooks an?

Lesedauer: 3 Minute
0

Ich möchte meine Umgebung in AWS Elastic Beanstalk mithilfe von Plattform-Hooks anpassen, um benutzerdefinierte Skripte oder andere ausführbare Dateien zu erstellen. Ich möchte diese auf meinen Amazon Elastic Compute Cloud (Amazon EC2) -Instances bereitstellen, die in der Umgebung ausgeführt werden.

Kurzbeschreibung

Sie können Plattform-Hooks verwenden, um die Funktionalität der Elastic-Beanstalk-Umgebung zu erweitern und benutzerdefinierte Skripte und ausführbare Dateien auszuführen. Elastic Beanstalk kann diese Hooks auch während verschiedener Phasen der Instance-Bereitstellung ausführen.

Hinweis: Plattform-Hooks werden auf Plattformversionen (vor Amazon Linux 2) von Amazon Linux AMI nicht unterstützt.

Es gibt zwei Arten von Plattform-Hooks:

  • Plattform-Hooks für die Anwendungsbereitstellung werden während einer Anwendungsbereitstellung ausgeführt, wenn Sie ein neues Quellpaket für die Bereitstellung zur Verfügung stellen. Sie werden auch ausgeführt, wenn Sie eine Konfigurationsänderung vornehmen, die das Beenden und Neustarten aller Umgebungs-Instances erfordert.
  • Plattform-Hooks für die Konfigurationsbereitstellung werden während einer Konfigurationsbereitstellung ausgeführt, wenn Sie Konfigurationsänderungen vornehmen, die nur Umgebungs-Instances aktualisieren, ohne sie neu zu erstellen.

Lösungen

Einrichten Ihres .platform-Verzeichnisse

1.    Erstellen Sie im Stammverzeichnis Ihres Anwendungspakets ein verstecktes Verzeichnis mit dem Namen '.platform/hooks' oder '.platform/confighooks' für die Plattform-Hooks der Anwendungsbereitstellung bzw. der Konfigurationsbereitstellung.

2.    Je nachdem, in welcher Phase der Instance-Bereitstellung sie ausgeführt werden, müssen Sie Hook-Dateien in einem der folgenden Unterverzeichnisse ablegen:

  • prebuild
  • predeploy
  • postdeploy

Informationen zu den Unterverzeichnissen, die für Ihren Anwendungsfall erforderlich sind, finden Sie unter Elastic-Beanstalk-Linux-Plattformen erweitern.

3.    Ihr Anwendungsquellpaket muss dem folgenden Paket ähneln:

~/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

Geben Sie die Hook-Dateien an

Bedenken Sie beim Erstellen der Hook-Dateien die folgenden Informationen:

  • Hook-Dateien können Binärdateien oder Skriptdateien sein, die mit einer '#!'-Zeile beginnen und die ihren Interpreterpfad, z. B. '#!/bin/bash ' enthalten. Ein Beispiel für den Inhalt einer Skriptdatei wie 'custom-postdeploy-script.sh' finden Sie in der folgenden Datei:
#!/bin/bash
sudo su
cd /var/app/current
echo "Hello from AWS hook" >> 'test.txt'
  • Verwenden Sie „chmod +x“ auf Ihrem lokalen Computer, um Ausführungsberechtigungen für Ihre Hook-Dateien festzulegen. Oder Sie können '.ebextensions' verwenden, um diese Berechtigungen bereitzustellen. Eine Beispieldatei finden Sie im Folgenden:
container_commands:
  01_chmod1:
    command: "chmod +x .platform/hooks/postdeploy/custom-postdeploy-script.sh"

Weitere Informationen finden Sie unter Wie passe ich meine Elastic-Beanstalk-Umgebung mithilfe von .ebextensions an?

Wenden Sie die Plattform-Hooks auf Ihre Anwendung an

1.    Erstellen Sie ein Anwendungsquellpaket, das die vorherigen Plattform-Hooks und Konfigurationsdateien enthält.

Hinweis: Dateibrowser können Ordner ausblenden, die mit einem Punkt beginnen, z. B. .platform und .ebextensions. Um diese Ordner sichtbar zu halten, fügen Sie diese Ordner in das Stammverzeichnis Ihres Anwendungspakets ein, wenn Sie Ihr Anwendungsquellpaket erstellen.

2.    Bereitstellen Ihrer aktualisierten Elastic-Beanstalk-Anwendung.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr