自定义 AWS OpsWorks 堆栈 - AWS OpsWorks

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

自定义 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 内置层提供了足以满足很多用途的标准功能。但是,您可能会遇到以下一种或多种情况:

  • 某个内置层的标准配置只是够用,但不够理想;您想要针对特定要求优化它。

    例如,您可能希望为工作进程的最大数量或 keepalivetimeout 值等设置指定您自己的值,从而调整 Static Web Server 层的 Nginx 服务器配置。

  • 某个内置层的功能很好,但您希望通过安装更多程序包或运行一些自定义安装脚本来扩展它。

    例如,您可能希望通过还安装 Redis 服务器来扩展 PHP App Server 层。

  • 您有一些不由任何内置层处理的要求。

    例如,AWS OpsWorks Stacks 不包含针对某些常用数据库服务器的内置层。您可以创建一个自定义层来将这些服务器安装在该层的实例上。

  • 您正在运行一个 Windows 堆栈,该堆栈仅支持自定义层。

AWS OpsWorks Stacks 提供了各种自定义层的方法来满足您的特定要求。以下按照提高复杂性和增强功能的顺序列出了一些示例:

注意

其中一些方法仅适用于 Linux 堆栈。有关详细信息,请参阅以下主题。

  • 使用自定义 JSON 覆盖默认 AWS OpsWorks Stacks 设置。

  • 使用覆盖默认 AWS OpsWorks Stacks 设置的属性文件实施自定义 Chef 说明书。

  • 使用覆盖或扩展默认 AWS OpsWorks Stacks 模板的模板实施自定义 Chef 说明书。

  • 使用运行 shell 脚本的简单配方实施自定义 Chef 说明书。

  • 使用执行创建和配置目录、安装程序包、创建配置文件、部署应用程序等任务的配方实施自定义 Chef 说明书。

您还可以覆盖配方,具体取决于堆栈的 Chef 版本和操作系统。

  • 对于 Chef 0.9 和 11.4 堆栈,您无法通过实施具有与内置配方相同的说明书和配方名称的自定义配方来覆盖内置配方。

    对于每个生命周期事件,AWS OpsWorks Stacks 始终先运行内置配方,然后再运行任何自定义配方。由于这些 Chef 版本不会运行一个具有相同说明书和配方名称的配方两次,因此内置配方优先运行,而自定义配方不会执行。

  • 您可以在 Chef 11.10 堆栈上覆盖内置配方。

    有关更多信息,请参阅 说明书安装和优先顺序

  • 您无法在 Windows 堆栈上覆盖内置配方。

    AWS OpsWorks Stacks 处理 Windows 堆栈的 Chef 运行的方法不允许覆盖内置配方。

注意

由于很多技术使用了自定义说明书,因此您应该先阅读说明书和诀窍(如果您尚不熟悉说明书实施)。说明书基础知识 提供了实施自定义说明书的详细教程说明,而为 AWS OpsWorks Stacks 实施说明书提供了一些有关如何为 AWS OpsWorks Stacks 实例实施说明书的详细信息。