如何使用平台挂钩自定义我的 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 年前