AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

平台挂钩

Elastic Beanstalk 为挂钩使用了标准化的目录结构。挂钩是在生命周期事件期间运行以响应管理操作的脚本,如启动环境中的实例时、当用户启动部署或使用重新启动应用程序服务器功能时。

将您希望挂钩触发的脚本置于 /opt/elasticbeanstalk/hooks/ 文件夹的一个子文件夹中。

挂钩组织到以下文件夹中:

  • appdeploy - 在应用程序部署期间运行的脚本。Elastic Beanstalk 在启动新实例时以及在客户端启动新版本部署时执行应用程序部署。

  • configdeploy - 当客户端执行影响实例上的软件配置的配置更新 (如通过设置环境属性或启用到 Amazon S3 的日志轮换) 时运行的脚本。

  • restartappserver - 当客户端执行重新启动应用程序服务器操作时运行的脚本。

  • preinit - 在实例引导启动期间运行的脚本。

  • postinit - 在实例引导启动后运行的脚本。

appdeployconfigdeployrestartappserver 文件夹包含 preenactpost 子文件夹。在操作的每个阶段,pre 文件夹、enact 文件夹和 post 文件夹中的所有脚本依次按字母顺序运行。

在启动实例时,Elastic Beanstalk 会按顺序运行 preinitappdeploypostinit。在到运行实例的后续部署中,Elastic Beanstalk 会运行 appdeploy 挂钩。configdeploy 挂钩在用户更新实例软件配置设置时运行。restartappserver 挂钩只在用户执行应用程序服务器重新启动时运行。

当脚本遇到错误时,它们能以非零状态退出并写入 stderr,以使操作失败。写入 stderr 的消息将显示在操作失败时输出的事件中。Elastic Beanstalk 还会将此信息捕获到日志文件 /var/log/eb-activity.log 中。如果您不想使操作失败,请返回 0。写入 stderr 或 stdout 的消息会显示在部署日志中,但除非操作失败,否则不会显示在事件流中。