步驟 3:上傳「hello, world!」 應用程式至 Amazon S3 - AWS CodeDeploy

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

步驟 3:上傳「hello, world!」 應用程式至 Amazon S3

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

注意

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

佈建 Amazon S3 儲存貯體

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

您可以使用 AWS CLI、Amazon S3 主控台或 Amazon S3 APIs來建立 Amazon S3 儲存貯體。建立儲存貯體後,請務必將存取權授予儲存貯體和您的 CodeDeploy使用者。

注意

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

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

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

呼叫 mb命令以建立名為 的 Amazon S3 儲存貯體amzn-s3-demo-bucket

aws s3 mb s3://amzn-s3-demo-bucket --region region

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

  1. 在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

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

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

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

授予 Amazon S3 儲存貯體和您 AWS 帳戶的許可

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

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

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

現在是驗證 Amazon S3 儲存貯體是否允許來自每個參與 Amazon EC2執行個體的下載請求的好時機。您可以透過 Amazon S3 儲存貯體政策指定此項目。例如,在下列 Amazon S3 儲存貯體政策中,使用萬用字元 (*) 允許任何具有連接EC2執行個體設定檔的 Amazon IAM執行個體,其中包含 ARNarn:aws:iam::444455556666:role/CodeDeployDemo,從名為 的 Amazon S3 儲存貯體中的任何目錄下載檔案amzn-s3-demo-bucket

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

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

您在 中建立的 CodeDeploy 管理使用者步驟 1:設定也必須具有將修訂上傳至 Amazon S3 儲存貯體的許可。其中一種指定方式是透過IAM政策,您將其新增至使用者的許可集或IAM角色 (您允許使用者擔任)。下列IAM政策可讓使用者在名為 的 Amazon S3 儲存貯體中的任何位置上傳修訂amzn-s3-demo-bucket

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["s3:PutObject"], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

如需有關如何建立IAM政策的資訊,請參閱 IAM 使用者指南 中的建立IAM政策。如需將政策新增至許可集的資訊,請參閱 AWS IAM Identity Center 使用者指南 中的建立許可集

為儲存貯體準備應用程式的檔案

請確定網頁、 AppSpec 檔案和指令碼在開發機器上組織如下:

c:\ |-- temp\ |--HelloWorldApp\ |-- appspec.yml |-- before-install.bat |-- index.html

將應用程式的檔案綁定到單一封存檔案中,然後推送封存檔案

將檔案綁定到封存檔案 (稱為應用程式「修訂版本」)。

注意

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

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

    cd c:\temp\HelloWorldApp
    注意

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

  2. 呼叫 create-application命令以註冊名為 HelloWorld_App 的新應用程式 CodeDeploy:

    aws deploy create-application --application-name HelloWorld_App
  3. 呼叫 CodeDeploy 推送命令,將檔案綁定在一起,將修訂上傳至 Amazon S3,並將 CodeDeploy 有關上傳修訂的資訊註冊到 ,全部都集中在一個動作中。

    aws deploy push --application-name HelloWorld_App --s3-location s3://amzn-s3-demo-bucket/HelloWorld_App.zip --ignore-hidden-files

    此命令會將目前目錄的檔案 (不含任何隱藏檔案) 封裝至名為 的單一封存檔案HelloWorld_App.zip,將修訂版本上傳至儲存amzn-s3-demo-bucket貯體,並使用 註冊 CodeDeploy 有關上傳修訂版本的資訊。