

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

# 步骤 2.4：添加 IIS 层
<a name="gettingstarted-windows-iis-layer"></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 支持 团队联系。

您的说明书具有一个安装和启动 IIS 的配方。这足够用来创建层和确认您具有正在运行的 IIS 实例。之后，您将向层添加应用程序部署功能。

## 创建层
<a name="w2ab1c14c47c17c23c23b7"></a>

首先，将层添加到堆栈。然后，通过向相应的生命周期事件分配自定义配方来将此功能添加到层。

**将 IIS 层添加到堆栈**

1. 在导航窗格中选择 **Layers**，然后选择 **Add a layer**。

1. 按如下所示配置层：
   + **名称**：**IISExample**
   + **短名称**：**iisexample**

     OpsWorks Stacks 使用短名称在内部标识图层。您还可在配方中使用短名称来标识层，但此示例未这样做。您可指定任何短名称，但它只能包含小写字母数字字符和少量标点符号。有关更多信息，请参阅 [自定义层](workinglayers-custom.md)。

1. 选择 **Add Layer**。

如果你此 IISWalkthrough 时要向其中添加一个实例并启动它， OpsWorks Stacks 会自动安装食谱，但它不会运行。`install.rb`在实例处于联机状态后，您可使用[“Execute Recipes”堆栈命令](workingstacks-commands.md)来手动运行配方。但是，更好的方法是将配方分配给该层的[生命周期事件](workingcookbook-events.md)之一。 OpsWorks 然后，Stacks 会在实例生命周期的适当时刻自动运行配方。

实例完成引导后立即安装并启动 IIS。要执行此操作，请将 `install.rb` 分配到层的 `Setup` 事件。

**将配方分配给生命周期事件**

1. 在导航窗格中选择 **Layers**

1. 在该**IISExample**图层的框中，选择**食谱**。

1. 在右上角，选择 **Edit**。

1. 在 **Custom Chef Recipes (自定义 Chef 配方)** 下方的 **Setup (设置)** 配方框中，键入 **iis-cookbook::install**。
**注意**  
使用 `cookbook-name::recipe-name` 标识配方，其中您可省略配方名称的 `.rb` 后缀。

1. 选择 **\$1** 以将配方添加到层。红色 x 将出现在配方旁边以便随后轻松删除。

1. 选择 **Save** 以保存新配置。自定义设置配方现在应包含 `iis-cookbook::install`。

## 将实例添加到层并启动它
<a name="w2ab1c14c47c17c23c23b9"></a>

你可以通过向图层添加一个实例并启动该实例来试试这个配方。 OpsWorks 一旦实例完成启动，Stacks 就会自动安装食谱并在安装`install.rb`过程中运行。

**将实例添加到层并启动它**

1. 在 OpsWorks 堆栈导航窗格中，选择**实例**。

1. 在 “**IISExample**图层” 下，选择 “**添加实例**”。

1. 选择合适的大小。**t2.micro**（或可供您使用的最小大小）对于此示例应已够用。

1. 选择 **Add Instance**。**默认情况下， OpsWorks Stacks 通过在图层的短名称后面附加一个整数来生成实例名称，因此该实例应命名为 iisexample1。**

1. 在实例的**操作**列中选择**启动**以启动实例。 OpsWorks 然后，Stacks 将启动一个 EC2 实例并运行安装程序配方来对其进行配置。如果该层此时有任何 Deploy 配方， OpsWorks Stacks 将在安装配方完成后运行它们。

   此过程可能需要花费很长时间 (分钟)，期间 **Status** 列将显示一系列状态。当您进入 **online** 状态时，设置过程已完成，并且实例已可供使用。

## 确认 IIS 已安装并且正在运行
<a name="w2ab1c14c47c17c23c23c11"></a>

您可使用 RDP 连接到实例并验证您的设置配方是否运行正常。

**确认 IIS 已安装并且正在运行**

1. **在导航窗格中选择 “**实例**”，然后在 **iisexample1** 实例的 “操作” 列中选择 **rdp**。** OpsWorks Stacks 会自动为您生成 RDP 密码，该密码将在指定时间段后过期。

1. 将 **Session valid for** 设置为 2 小时，然后选择 **Generate Password**。

1. OpsWorks 为了方便起见，Stacks 还会显示密码以及实例的公有 DNS 名称和用户名。复制全部三项，然后单击 **Acknowledge and close**。

1. 打开您的 RDP 客户端并使用步骤 3 中的数据连接到实例。

1. 在实例上，打开 Windows 资源管理器并检查 `C:` 驱动器。它应具有由 IIS 安装创建的 `C:\inetpub` 目录。

1. 打开控制面板 **Administrative Tools** 应用程序，然后打开 **Services**。列表底部附近应显示 IIS 服务。它命名为 World Wide Web 发布服务，并且状态应为 **running**。

1. 返回 OpsWorks Stacks 控制台并选择 **iisexample1** 实例的公有 IP 地址。请务必在 OpsWorks Stacks 中执行此操作，而不是在 Amazon EC2 控制台中执行此操作。此操作将自动向地址发送 HTTP 请求，这应会打开默认 IIS 欢迎页面。

下一个主题讨论如何将应用程序部署到实例 (此示例中为一个简单的静态 HTML 页面)。不过，如果您想休息一下，请选择 **iisexample1** 实例的**操作**列中的**停止**以停止实例并避免产生不必要的费用。您可在准备好继续时重新启动实例。