

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 2：設定您的來源內容以部署至 Windows Server Amazon EC2 執行個體
<a name="tutorials-windows-configure-content"></a>

現在是時候設定應用程式的來源內容，讓您可以部署到 Amazon EC2 執行個體。在本教學課程中，您將部署單一網頁至執行 Windows Server 的 Amazon EC2 執行個體，該執行個體將執行網際網路資訊服務 (IIS) 做為其 Web 伺服器。此網頁會顯示簡單的「Hello， World！」 訊息。

**Topics**
+ [建立網頁](#tutorials-windows-configure-content-download-code)
+ [建立指令碼以執行您的應用程式](#tutorials-windows-configure-content-create-scripts)
+ [新增應用程式規格檔案](#tutorials-windows-configure-content-add-appspec-file)

## 建立網頁
<a name="tutorials-windows-configure-content-download-code"></a>

1. 在 `c:\temp` 資料夾中建立名為 `HelloWorldApp` 的子目錄 (子資料夾)，然後切換至該資料夾。

   ```
   mkdir c:\temp\HelloWorldApp
   cd c:\temp\HelloWorldApp
   ```
**注意**  
您不需要使用 `c:\temp` 位置或 `HelloWorldApp` 子資料夾名稱。如果您使用不同的位置或子資料夾名稱，請務必在本教學中予以使用。

1. 使用文字編輯器，在資料夾內建立檔案。將檔案命名為 `index.html`。

   ```
   notepad index.html
   ```

1. 將下列 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>
   ```

## 建立指令碼以執行您的應用程式
<a name="tutorials-windows-configure-content-create-scripts"></a>

接著，您將建立 CodeDeploy 用來在目標 Amazon EC2 執行個體上設定 Web 伺服器的指令碼。

1. 在 `index.html` 檔案儲存所在的相同子資料夾中，使用文字編輯器來建立另一個檔案。將檔案命名為 `before-install.bat`。

   ```
   notepad before-install.bat
   ```

1. 將下列批次指令碼程式碼新增至檔案，然後儲存檔案。

   ```
   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
   ```

## 新增應用程式規格檔案
<a name="tutorials-windows-configure-content-add-appspec-file"></a>

接下來，除了網頁和批次指令碼檔案之外，您還會新增應用程式規格檔案 (AppSpec 檔案）。AppSpec 檔案是 CodeDeploy [http://www.yaml.org](http://www.yaml.org)用來：
+ 將應用程式修訂中的來源檔案，映射至執行個體上的目標。
+ 指定要在部署期間於執行個體上執行的指令碼。

AppSpec 檔案必須命名為 `appspec.yml`。它必須放置在應用程式來源碼的根資料夾中。

1. 在 `index.html` 和 `before-install.bat` 檔案儲存所在的相同子資料夾中，使用文字編輯器來建立另一個檔案。將檔案命名為 `appspec.yml`。

   ```
   notepad appspec.yml
   ```

1. 將下列 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`的檔案複製到目標 Amazon EC2 執行個體上的 `c:\inetpub\wwwroot` 資料夾。在部署期間，CodeDeploy 會在**BeforeInstall**部署生命週期事件期間，在目標 Amazon EC2 執行個體上執行`before-install.bat`批次指令碼。如果此指令碼需要超過 900 秒 (15 分鐘） 才能執行，CodeDeploy 會停止部署，並將 Amazon EC2 執行個體的部署標記為失敗。

如需這些設定的詳細資訊，請參閱[CodeDeploy AppSpec 檔案參考](reference-appspec-file.md)。

**重要**  
此檔案中每個項目之間的空格位置和數目十分重要。如果間距不正確，CodeDeploy 將引發可能難以偵錯的錯誤。如需詳細資訊，請參閱[AppSpec 檔案間距](reference-appspec-file.md#reference-appspec-file-spacing)。