如果在应用启动前有资源部署等运行前任务,那么您可以为应用配置PostStart。如果您希望在应用停止前先处理完请求,那么您可以设置PreStop。本文介绍如何在SAE控制台上配置PostStart和PreStop,适用于精通Kubernetes的用户。

为什么配置PostStart和PreStop

通常应用运行前和停止前都会有一些动作,例如运行前部署资源、停止前优雅下线应用或通知其他服务或应用。SAE依托于K8s完美集成了该功能,支持配置PostStart和PreStop。

在创建应用过程中配置PostStart和PreStop

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,并在应用列表页面右上角单击创建应用
  3. 应用基本信息页签设置应用相关信息,并单击下一步:应用部署配置
  4. 应用部署配置页面,展开应用生命周期管理设置,依据界面提示信息配置PostStart和PreStop,配置完成后单击确认规格
    • 配置PostStart

      命令行脚本区域输入自定义的PostStart命令。

    • 配置PreStop

      命令行脚本区域输入自定义的PreStop命令。

    说明
    • Poststart脚本:一种容器钩子。该钩子在容器被创建后立刻触发,通知容器它已经被创建。该钩子不需要向其所对应的hook handler传入任何参数。如果该钩子对应的hook handler执行失败,则该容器会被杀死,并根据该容器的重启策略决定是否重启该容器。详情请参见Container Lifecycle Hooks
    • PreStop脚本:一种容器钩子。该钩子在容器被删除前触发,其所对应的hook handler必须在删除该容器的请求发送给Docker daemon之前完成。在该钩子对应的hook handler完成后不论执行的结果如何,Docker daemon会发送SGTERN信号量给Docker daemon删除该容器。详情请参见Container Lifecycle Hooks
  5. 确认规格页签,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建
  6. 结果验证。

    例如应用启动前,需要内容Hello from the postStart handler写入文件。

    PostStart配置如下图所示。PostStart配置示例图

    应用部署后,使用Webshell查看文件中是否存在Hello from the postStart handler,如果存在,那么表示配置成功。

    结果验证成功示例图

应用部署后配置PostStart和PreStop

PostStart和PreStop配置可以在创建应用过程中设置,也可以在应用部署完成后进行配置。

  1. 在应用列表中,单击具体应用名称。
  2. 应用详情页面的右上角,单击部署应用
  3. 部署应用页面最下方,根据您的需求进行配置,并在配置完成后单击确认
    注意 单击确认后,该应用将会被重启,请在业务较少的时间段进行。

更多信息

问题反馈

如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。SAE钉钉群2