

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

# 第 8 步：更新说明书以创建并复制文件
<a name="gettingstarted-cookbooks-create-file"></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 支持 团队联系。

通过添加可向实例添加两个文件的配方，更新您的说明书。配方中的第一个资源创建一个全部内容都是配方代码的文件。这与运行 Linux **cat**、**echo** 或 **touch** 命令或者 Windows **echo** 或 **fsutil** 命令相似。此方法适用于文件数量少、文件小或简单的情况。配方中第二个资源将说明书中的一个文件复制到实例上的另一个目录中。这与运行 Linux **cp** 命令或 Windows **copy** 命令相似。此方法适用于文件数量多、文件大或复杂的情况。

在开始执行此步骤之前，请完成[第 7 步：更新说明书以创建目录](gettingstarted-cookbooks-create-directory.md)，以确保文件的父目录已经存在。

**更新实例上的说明书并运行新的配方**

1. 在您的本地工作站上的 `opsworks_cookbook_demo` 目录中，创建名为 `files` 的目录。

1. 在 `files` 子目录中，创建一个名为 `hello.txt` 的文件，该文件包含以下文本：**Hello, World\$1**

1. 在 `opsworks_cookbook_demo` 目录的 `recipes` 子目录中，创建名为 `create_files.rb` 的包含以下代码的文件。有关更多信息，请转至 [file](https://docs.chef.io/resource_file.html) 和 [cookbook\$1file](https://docs.chef.io/resource_cookbook_file.html)。

   ```
   file "Create a file" do
     content "<html>This is a placeholder for the home page.</html>"
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo/index.html"
   end
   
   cookbook_file "Copy a file" do  
     group "root"
     mode "0755"
     owner "ec2-user"
     path "/tmp/create-directory-demo/hello.txt"
     source "hello.txt"  
   end
   ```

   `file` 资源可在指定路径中创建文件。`cookbook_file` 资源将您刚刚在说明书中创建的 `files` 目录中的文件 (Chef 预计会找到一个可以复制其中文件的、名为 `files` 的标准命名的子目录) 复制到实例的另一个目录中。

1. 在终端处或在命令提示符下，使用 **tar** 命令创建 `opsworks_cookbook_demo.tar.gz` 文件的新版本，该文件包含 `opsworks_cookbook_demo` 目录及其更新的内容。

1. 将更新后的 `opsworks_cookbook_demo.tar.gz` 文件上传到 S3 存储桶。

1. 按照[第 5 步：更新实例上的说明书并运行配方](gettingstarted-cookbooks-copy-cookbook.md)中的步骤，更新实例上的说明书并运行配方。在“运行配方”步骤中，对于 **Recipes to execute (要执行的配方)**，键入 **opsworks\$1cookbook\$1demo::create\$1files**。

**测试配方**

1. 如果您尚未登录实例，请登录。

1. 在命令提示符下，运行以下命令 (一次运行一个命令)，以确认已添加新文件：

   ```
   sudo cat /tmp/create-directory-demo/index.html
   
   sudo cat /tmp/create-directory-demo/hello.txt
   ```

   随即将显示该文件的内容：

   ```
   <html>This is a placeholder for the home page.</html>
   
   Hello, World!
   ```

在[下一步](gettingstarted-cookbooks-run-command.md)中，您将更新说明书以在实例上运行一个命令。