第 2 步:将源内容配置为部署到 Windows Server Amazon EC2 实例的源内容 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

第 2 步:将源内容配置为部署到 Windows Server Amazon EC2 实例的源内容

现在是时候配置应用程序的源内容以拥有可部署到 Amazon EC2 实例的内容了。在此教程中,您将一个网页部署到运行 Windows Server 的 Amazon EC2 实例,后者将互联网信息服务 (IIS) 作为其 Web 服务器运行。此网页将显示简单的 “Hello,World!” 消息。

创建网页

  1. 在您的 HelloWorldApp 文件夹中创建一个名为 c:\temp 的子目录(子文件夹),然后切换到该文件夹。

    mkdir c:\temp\HelloWorldApp cd c:\temp\HelloWorldApp
    注意

    您不必使用 c:\temp 作为位置或 HelloWorldApp 作为子文件夹名称。如果您使用不同的位置或子文件夹名称,请确保在本教程中通篇使用它。

  2. 使用文本编辑器在文件夹内创建一个文件。将文件命名为 index.html

    notepad index.html
  3. 将以下 HTML 代码添加到该文件中,然后保存文件。

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Hello, World!</title> <style> body { color: #ffffff; background-color: #0188cc; font-family: Arial, sans-serif; font-size:14px; } </style> </head> <body> <div align="center"><h1>Hello, World!</h1></div> <div align="center"><h2>You have successfully deployed an application using CodeDeploy</h2></div> <div align="center"> <p>What to do next? Take a look through the <a href="https://aws.amazon.com/codedeploy">CodeDeploy Documentation</a>.</p> </div> </body> </html>

创建脚本以运行应用程序

接下来,您将创建一个脚本,CodeDeploy 将使用该脚本来设置目标 Amazon EC2 实例上的 Web 服务器。

  1. 在保存 index.html 文件的相同子文件夹中,使用文本编辑器创建另一个文件。将文件命名为 before-install.bat

    notepad before-install.bat
  2. 将以下批处理脚本代码添加到该文件中,然后保存文件。

    REM Install Internet Information Server (IIS). c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Import-Module -Name ServerManager c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Install-WindowsFeature Web-Server

添加应用程序规范文件

接下来,除了网页和批处理脚本文件以外,您还将添加一个应用程序规范文件(AppSpec 文件)。AppSpec 文件是一个YAMLCodeDeploy 使用的格式文件夹:

  • 将应用程序修订中的源文件映射到其在实例上的目的地。

  • 指定在部署期间要在实例上运行的脚本。

必须将 AppSpec 文件命名为appspec.yml。它必须放置在应用程序源代码的根文件夹中。

  1. 在保存 index.htmlbefore-install.bat 文件的相同子文件夹中,使用文本编辑器创建另一个文件。将文件命名为 appspec.yml

    notepad appspec.yml
  2. 将以下 YAML 代码添加到该文件中,然后保存该文件。

    version: 0.0 os: windows files: - source: \index.html destination: c:\inetpub\wwwroot hooks: BeforeInstall: - location: \before-install.bat timeout: 900

CodeDeploy 将使用此 AppSpec 文件复制index.html文件夹中的应用程序源代码根文件夹中的c:\inetpub\wwwroot文件夹中的 Amazon EC2 夹。在部署过程中,CodeDeploy 将运行before-install.bat目标 Amazon EC2 实例上的批处理脚本BeforeInstall部署生命周期事件。如果此脚本运行时间超过 900 秒(15 分钟),则 CodeDeploy 将停止部署并将对 Amazon EC2 实例的部署标记为失败。

有关这些设置的更多信息,请参阅 CodeDeploy AppSpec 文件参考

重要

此文件中各项之间的空格的位置和数量很重要。如果间距不正确,CodeDeploy 将引发可能难以调试的错误。有关更多信息,请参阅AppSpec 文件间距