步驟 2:將您的來源內容設定為部署到視窗伺服器亞馬遜 EC2 執行個體 - AWS CodeDeploy

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

步驟 2:將您的來源內容設定為部署到視窗伺服器亞馬遜 EC2 執行個體

現在是時候設定應用程式的來源內容了,讓您擁有可以部署到 Amazon EC2 執行個體的項目。在本教學課程中,您會將單一網頁部署到執行 Windows 伺服器的 Amazon EC2 執行個體,該執行個體會將網際網路資訊服務 (IIS) 做為其網頁伺服器執行。這個網頁將顯示一個簡單的「你好,世界!」 消息。

建立網頁

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

    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 檔案是 YAML 格式的檔案,可用來 CodeDeploy 執行下列作業:

  • 將應用程式修訂中的來源檔案,映射至執行個體上的目標。

  • 指定要在部署期間於執行個體上執行的指令碼。

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

如需這些設定的詳細資訊,請參閱CodeDeploy AppSpec 檔案參考

重要

此檔案中每個項目之間的空格位置和數目十分重要。如果間距不正確, CodeDeploy 將引發可能難以調試的錯誤。如需更多詳細資訊,請參閱 AppSpec 檔案間距