本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 2 步:配置源内容以部署到 Windows Server Amazon EC2 实例
现在可以配置您的应用程序的源内容了,这样您就有可以部署到 Amazon EC2 实例的内容了。在本教程中,您会将一个网页部署到运行 Windows Server 的 Amazon EC2 实例,后者将互联网信息服务 (IIS) 作为其 Web 服务器运行。此网页将简单地显示 “Hello,World!” 消息。
创建网页
-
在您的
HelloWorldApp
文件夹中创建一个名为c:\temp
的子目录(子文件夹),然后切换到该文件夹。mkdir c:\temp\HelloWorldApp cd c:\temp\HelloWorldApp
注意
您不必使用
c:\temp
作为位置或HelloWorldApp
作为子文件夹名称。如果您使用不同的位置或子文件夹名称,请确保在本教程中通篇使用它。 -
使用文本编辑器在文件夹内创建一个文件。将文件命名为
index.html
。notepad index.html
-
将以下 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 服务器。
-
在保存
index.html
文件的相同子文件夹中,使用文本编辑器创建另一个文件。将文件命名为before-install.bat
。notepad before-install.bat
-
将以下批处理脚本代码添加到该文件中,然后保存文件。
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 文件是YAML
-
将应用程序修订中的源文件映射到其在实例上的目的地。
-
指定在部署期间要在实例上运行的脚本。
AppSpec 文件必须命名appspec.yml
. 它必须放置在应用程序源代码的根文件夹中。
-
在保存
index.html
和before-install.bat
文件的相同子文件夹中,使用文本编辑器创建另一个文件。将文件命名为appspec.yml
。notepad appspec.yml
-
将以下 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 文件间距。