自定义堆栈以连接到 RDS 数据库 - AWS OpsWorks

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

自定义堆栈以连接到 RDS 数据库

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

一旦创建了用作 PHP 应用程序服务器后端数据库的 RDS 实例,就可以 MyStack从中Chef 11 Linux 堆栈入门进行自定义。

将 PHP 应用程序服务器连接到 RDS 数据库
  1. 打开 AWS OpsWorks Stacks 控制台,创建一个包含一个实例的 PHP App Server 层的堆栈,然后部署 SimplephPapp,如中所述。Chef 11 Linux 堆栈入门该堆栈采用版本 1 的 SimplePHPApp,不使用数据库连接。

  2. 更新堆栈配置以使用包括 appsetup.rb 配方、相关模板和属性文件的自定义说明书。

    1. Use custom Chef cookbooks 设置为 Yes

    2. Repository type 设置为 Git,并将 Repository URL 设置为 git://github.com/amazonwebservices/opsworks-example-cookbooks.git

  3. 将以下代码添加到堆栈的 Custom Chef JSON 框中,以将 RDS 连接数据分配给 appsetup.rb 用来创建配置文件的 [:database] 属性。

    { "deploy": { "simplephpapp": { "database": { "username": "opsworksuser", "password": "your_password", "database": "rdsexampledb", "host": "rds_endpoint", "adapter": "mysql" } } } }

    使用以下属性值:

    • username:在创建 RDS 实例时指定的主用户名。

      此示例使用 opsworksuser

    • password:创建 RDS 实例时指定的主密码。

      填写您指定的密码。

    • database:在创建 RDS 实例时创建的数据库。

      此示例使用 rdsexampledb

    • host:您在上一部分中创建实例时从 RDS 控制台获得的 RDS 实例终端节点。不要包括端口号。

    • adapter:适配器。

      本示例的 RDS 实例使用 MySQL,所以 adapter 设置为 mysql。与其他属性不同,adapter 不由 appsetup.rb 使用,而是被 PHP 应用程序服务器层的内置配置配方用来创建不同的配置文件。

  4. 编辑 SimplePHPApp 配置来指定使用后端数据库的 SimplePHPApp 版本,如下所示:

    • Document root:将此选项设置为 web

    • Branch/Revision:将此选项设置为 version2

    其余选项保持不变。

  5. 编辑 PHP 应用程序服务器层来设置数据库连接,方法是将 添加到层的 Deploy 配方中。

  6. 部署新的 SimplePHPApp 版本

  7. 部署 SimplePHPApp 后,通过转至 Instances 页面并单击 php-app1 实例的公有 IP 地址来运行该应用程序。您应在浏览器中看到以下页面,您可以在其中输入文本,然后将其存储在数据库中。

注意

如果您的堆栈有 MySQL 层,则 AWS OpsWorks Stacks 会自动将相应的连接数据分配给属性。[:database]但是,如果您将自定义 JSON 分配给定义不同 [:database] 值的堆栈,则它们会覆盖默认值。因为 [:deploy] 属性安装在每个实例上,所以任何依赖 [:database] 属性的配方都将使用自定义连接数据而非 MySQL 层数据。如果您想让一个特定应用程序服务器层使用自定义连接数据,则将自定义 JSON 分配给该层的 Deploy 事件,并限制部署只到该层。有关如何使用部署属性的更多信息,请参阅部署应用程序。有关重写 AWS OpsWorks Stacks 内置属性的更多信息,请参阅覆盖属性