

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

# 步骤 5：将访问信息添加到堆栈配置和部署属性
<a name="using-s3-json"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

`appsetup.rb`配方取决于[堆栈 OpsWorks 堆栈配置和部署属性的](workingcookbook-json.md)数据，这些数据安装在每个实例上，包含有关堆栈和任何已部署应用程序的详细信息。对象的 `deploy` 属性具有以下结构，为便利起见显示为 JSON：

```
{
   ...
  "deploy": {
    "app1": {
      "application" : "short_name",
      ...
    }
    "app2": {
      ...
    }
    ...
  }
}
```

部署节点包含各个已部署应用程序的属性，使用应用程序的短名称命名。每个应用程序属性包含一组定义应用程序配置的属性，例如文档根和应用程序类型。对于 `deploy` 属性的列表，请参阅 [deploy 属性](attributes-json-deploy.md)。您可以使用 Chef 属性语法显示配方中的堆栈配置和部署属性值。例如，`[:deploy][:app1][:application]` 表示 app1 应用程序的短名称。

自定义配方依赖于代表数据库和 Amazon S3 访问信息的多个堆栈配置和部署属性：
+ 数据库连接属性（例如`[:deploy][:database][:host]`）由 OpsWorks Stacks 在创建 MySQL 层时定义。
+ 表名称属性 `[:photoapp][:dbtable]` 在自定义说明书的属性文件中定义，并设置为 `foto`。
+ 您必须使用自定义 JSON 将属性添加到堆栈配置和部署属性，以此来定义存储桶名称属性 `[:photobucket]`。

**定义 Amazon S3 存储桶名称属性**

1. 在**堆栈 OpsWorks 堆栈**页面上，选择**堆栈设置**，然后选择**编辑**。

1. 在 **Configuration Management** 部分中，将访问信息添加到 **Custom Chef JSON** 框中。它应与以下内容类似：

   ```
   {
     "photobucket" : "yourbucketname"
   }
   ```

   *yourbucketname*替换为您在中记录的存储桶名称[步骤 1：创建 Amazon S3 存储桶](using-s3-bucket.md)。  
![\[Custom Chef cookbook configuration with Git repository and JSON settings.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/photoapp_walkthrough_json.png)

OpsWorks 堆栈将自定义 JSON 合并到堆栈配置和部署属性中，然后再将其安装到堆栈的实例上；然后`appsetup.rb`可以从该`[:photobucket]`属性中获取存储桶名称。如果要更改存储桶，您并不需要接触配方；只需[覆盖属性](workingcookbook-attributes.md)来提供新存储桶名称。