部署应用程序 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

部署应用程序

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

部署的主要目的是将应用程序代码和相关文件部署到应用程序服务器实例。部署操作由每个实例的“部署”配方处理,而该配方由相应实例的层确定。

当您启动某个实例时,在“设置”配方完成后,AWS OpsWorks Stacks 将自动运行该实例的“部署”配方。但是,当您添加或修改应用程序时,您必须将其手动部署到任何联机实例。您必须拥有管理或部署权限才能部署应用程序。有关更多信息,请参阅管理用户权限

部署应用程序
  1. Apps 页面上,单击应用程序的 deploy 操作。

    注意

    您也可单击导航窗格中的 Deployments 来部署应用程序。在 Deployments & Commands 页面上单击 Deploy an app,执行此操作时,您还可选择要部署的应用程序。

  2. 指定以下内容:

    • (必需) 将 Command: 设置为 deploy (如果尚未选择此项)。

    • (可选) 包含注释。

  3. 单击高级 >> 指定自定义 JSON。AWS OpsWorksStacks 会将一组堆栈配置和部署属性添加到节点对象。deploy 属性包含部署详细信息,可供“部署”配方用来处理安装和配置。在 Linux 堆栈上,您可使用自定义 JSON 字段覆盖默认 AWS OpsWorks Stacks 设置或将自定义设置传递到自定义配方。有关如何使用自定义 JSON 的更多信息,请参阅使用自定义 JSON

    注意

    如果您在此处指定了自定义 JSON,则它只会添加到此部署的堆栈配置和部署属性。如果您要永久添加自定义 JSON,则必须将它添加到堆栈。自定义 JSON 限制为 120 KB。如果您需要更多容量,则建议您将部分数据存储在 Amazon S3 上。您的自定义配方随后可使用 AWS CLI 或适用于 Ruby 的 AWS SDK将数据从存储桶下载到您的实例。有关示例,请参阅 使用适用于 Ruby 的 SDK

  4. Instances 下,单击 Advanced >> 并指定要运行部署命令的实例。

    部署命令将触发一个部署事件,该事件将在选定实例上运行部署配方。关联应用程序服务器的部署配方会将代码和相关文件从存储库下载并安装到实例上,因此您通常会选择所有关联应用程序服务器实例。但是,其他实例类型可能需要进行一些配置更改才能适应新应用程序,因此在此类实例上运行部署配方通常很有用。此类配方会按需更新配置,但不会安装应用程序的文件。有关配方的更多信息,请参阅说明书和诀窍

  5. 单击 Deploy 在指定实例上运行部署配方,这将显示“Deployment”页面。此过程完成后,AWS OpsWorks Stacks 将使用绿色的勾号标记应用程序以指示部署成功。如果部署失败,AWS OpsWorks Stacks 将使用红色的 X 标记应用程序。在这种情况下,您可以转到 Deployments (部署) 页并查看部署日志以了解更多信息。

注意

当您为 JSP 应用程序部署更新时,Tomcat 可能无法识别该更新,而是继续运行现有的应用程序版本。在某些情况下,比如当您将您的应用程序作为仅包含一个 JSP 页面的 .zip 文件时,可能会发生这种情况。要确保 Tomcat 将运行最近部署的版本,项目的根目录应包含放置了 web.xml 文件的 WEB-INF 目录。web.xml 文件可包含各种内容,但以下内容足以确保 Tomcat 识别更新并运行当前部署的应用程序版本。您无需为每个更新更改版本。Tomcat 将识别更新,即使版本未发生更改。

<context-param> <param-name>appVersion</param-name> <param-value>0.1</param-value> </context-param>

其他部署命令

Deploy app 页包含用于管理您的应用程序和关联服务器的另外几个命令。在以下命令中,只有 Undeploy 适用于 Chef 12 堆栈上的应用程序。

Undeploy

触发取消部署生命周期事件,这将运行“取消部署”配方以从指定实例中删除应用程序的所有版本。

回滚

恢复以前部署的应用程序版本。例如,如果您部署了应用程序三次,然后运行 Rollback,则服务器将从第二次部署为应用程序提供服务。如果您再次运行 Rollback,服务器将从第一次部署为应用程序提供服务。默认情况下,AWS OpsWorks Stacks 将存储 5 个最新部署,这使您能够回滚多达四个版本。如果您超出了已存储版本的数量,此命令将失败并保持最旧的版本不变。此命令在 Chef 12 堆栈中不可用。

启动 Web 服务器

运行在指定实例上启动应用程序服务器的配方。此命令在 Chef 12 堆栈中不可用。

停止 Web 服务器

运行在指定实例上停止应用程序服务器的配方。此命令在 Chef 12 堆栈中不可用。

重新启动 Web 服务器

运行在指定实例上重新启动应用程序服务器的配方。此命令在 Chef 12 堆栈中不可用。

重要

Start Web ServerStop Web ServerRestart Web ServerRollback 本质上是 Execute Recipes 堆栈命令的自定义版本。它们运行一组在指定实例上执行任务的配方。

  • 这些命令不会触发生命周期事件,因此您无法挂钩它们以运行自定义代码。

  • 这些命令仅适用于内置 应用程序服务器层

    具体而言,这些命令对自定义层无效,即使它们支持应用程序服务器也是如此。要在自定义层上启动、停止或重新启动服务器,您必须实施自定义配方来执行这些任务并使用“执行配方”堆栈命令来运行这些配方。有关如何实施和安装自定义配方的更多信息,请参阅说明书和诀窍