步驟 3:將您的 WordPress應用程式上傳到 Amazon S3 - AWS CodeDeploy

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

步驟 3:將您的 WordPress應用程式上傳到 Amazon S3

現在,您將準備源內容並將其上傳到 CodeDeploy 可以部署它的位置。下列指示說明如何佈建 Amazon S3 儲存貯體、準備儲存貯體的應用程式修訂版檔案、捆綁修訂版本的檔案,然後將修訂推送至儲存貯體。

注意

雖然本教學課程未說明,但您可以使用 CodeDeploy 將應用程式從 GitHub 儲存庫部署到執行個體。如需詳細資訊,請參閱 CodeDeploy 與整合 GitHub

佈建 Amazon S3 儲存貯體

在 Amazon S3 中建立儲存容器或儲存貯體,或使用現有的儲存貯體。請確定您可以將修訂版上傳到儲存貯體,且部署中使用的 Amazon EC2 執行個體可以從儲存貯體下載修訂版本。

您可以使用 AWS CLI Amazon S3 控制台或 Amazon S3 API 來創建一個 Amazon S3 存儲桶。建立值區之後,請務必授予值區和 AWS 帳戶的存取權限。

注意

所有 AWS 帳戶的儲存貯體名稱在 Amazon S3 中都必須是唯一的。如果您無法使用 codedeploydemobucket,請嘗試不同的儲存貯體名稱 (例如後接破折號和您的縮寫或其他唯一識別符的 codedeploydemobucket)。然後,請務必將在本教學中看到的所有 codedeploydemobucket 都替代為您的儲存貯體名稱。

Amazon S3 儲存貯體必須在啟動目標 Amazon EC2 執行個體的相同 AWS 區域中建立。例如,如果您在美國東部 (維吉尼亞北部) 區域建立儲存貯體,則必須在美國東部 (維吉尼亞北部) 區域啟動目標 Amazon EC2 執行個體。

若要建立 Amazon S3 儲存貯體 (CLI)

呼叫命mb令以建立名為的 Amazon S3 儲存貯體codedeploydemobucket

aws s3 mb s3://codedeploydemobucket --region region

若要建立 Amazon S3 儲存貯體 (主控台)

  1. 前往 https://console.aws.amazon.com/s3/ 開啟的 Amazon Simple Storage Service (Amazon S3) 主控台。

  2. 在 Amazon S3 主控台中,選擇「建立儲存貯體」。

  3. Bucket name (儲存貯體名稱) 方塊中,輸入儲存貯體的名稱。

  4. Region (區域) 清單中,選擇目標區域,然後選擇 Create (建立)

授予權限給 Amazon S3 儲存貯體和 AWS 帳戶

您必須擁有上傳到 Amazon S3 儲存貯體的許可。您可以透過 Amazon S3 儲存貯體政策指定這些許可。例如,在下列 Amazon S3 儲存貯體政策中,使用萬用字元 (*) 可讓 AWS 帳戶111122223333將檔案上傳到 Amazon S3 儲存貯體中名為的任何目錄codedeploydemobucket

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ] }

若要檢視您的 AWS 帳戶 ID,請參閱尋找您的 AWS 帳戶 ID

現在是驗證 Amazon S3 儲存貯體允許從每個參與的 Amazon EC2 執行個體下載請求的好時機。您可以透過 Amazon S3 儲存貯體政策進行指定。例如,在下列 Amazon S3 儲存貯體政策中,使用萬用字元 (*) 可讓任何具codedeploydemobucket有附加 IAM 執行個體設定檔包含 ARN arn:aws:iam::444455556666:role/CodeDeployDemo 的 Amazon EC2 執行個體從 Amazon S3 儲存貯體中的任何目錄下載檔案:

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }

如需如何產生和連接 Amazon S3 儲存貯體政策的詳細資訊,請參閱儲存貯體政策範例

如需如何建立和附加 IAM 政策的詳細資訊,請參閱使用政策

為值區準備應用程式的檔案

請確定 WordPress 應用程式檔 AppSpec 案、檔案和指令碼在您的開發電腦上進行組織,如下所示:

/tmp/ |--WordPress/ |-- appspec.yml |-- scripts/ | |-- change_permissions.sh | |-- create_test_db.sh | |-- install_dependencies.sh | |-- start_server.sh | |-- stop_server.sh |-- wp-admin/ | |-- (various files...) |-- wp-content/ | |-- (various files...) |-- wp-includes/ | |-- (various files...) |-- index.php |-- license.txt |-- readme.html |-- (various files ending with .php...)

將應用程序的文件捆綁到單個存檔文件中,然後推送歸檔文件

將 WordPress 應用程式檔案和 AppSpec 檔案捆綁到歸檔檔案中 (稱為應用程式修訂版)。

注意

可能會向您收取下列作業的費用:在儲存貯體中存放物件,以及將應用程式修訂傳入和傳出儲存貯體。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

  1. 在開發電腦上,切換至檔案存放所在的資料夾:

    cd /tmp/WordPress
    注意

    如果您未切換至此資料夾,將會在目前的資料夾開始檔案綁定。例如,如果您的目前資料夾是 /tmp,而不是 /tmp/WordPress,則會開始綁定 tmp 資料夾中的檔案和子資料夾,而此資料夾可能不只包含 WordPress 子資料夾。

  2. 呼叫 create-application 命令,向名為 WordPress_App 的新應用程式註冊:

    aws deploy create-application --application-name WordPress_App
  3. 呼叫 CodeDeploy push 命令將檔案捆綁在一起、將修訂上傳到 Amazon S3,然後在一個動作中註冊有 CodeDeploy 關上傳修訂的資訊。

    aws deploy push \ --application-name WordPress_App \ --s3-location s3://codedeploydemobucket/WordPressApp.zip \ --ignore-hidden-files

    此指令會將目前目錄中的檔案 (不包括任何隱藏檔案) 捆綁到一個名為的單一封存檔案中WordPressApp.zip,將修訂上載到codedeploydemobucket值區,並將有 CodeDeploy 關上載修訂的資訊註冊到值區。