將修訂推送 CodeDeploy 至 Amazon S3 (僅適用於 EC2 /內部部署) - AWS CodeDeploy

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

將修訂推送 CodeDeploy 至 Amazon S3 (僅適用於 EC2 /內部部署)

按照中所述規劃修訂規劃修訂 CodeDeploy並將 AppSpec 檔案新增至修訂後將應用程式規格檔案新增至修訂 CodeDeploy,即可將元件檔案捆綁在一起,並將修訂推送到 Amazon S3。對於部署到 Amazon EC2 執行個體,在您推送修訂後,您可 CodeDeploy 以使用將修訂從 Amazon S3 部署到執行個體。

注意

CodeDeploy 也可以用來部署已推送到的修訂版本 GitHub。如需詳細資訊,請參閱您的 GitHub 文件。

我們假設您已完成開始使用 CodeDeploy中的說明來設定 AWS CLI。這對於呼叫稍後描述的 push 命令特別重要。

確保你有一個 Amazon S3 存儲桶。依照建立值區中的指示操作。

如果您的部署是 Amazon EC2 執行個體,則必須建立目標 Amazon S3 儲存貯體,或與目標執行個體位於相同的區域中。例如,如果您想要將修訂部署到美國東部 (維吉尼亞北部) 區域的某些執行個體和美國西部 (奧勒岡) 區域中的某些執行個體,則在美國東部 (維吉尼亞北部) 區域中必須有一個值區,其中包含一個修訂副本的另一個值區。在這個案例中,您需要建立兩個個別的部署,一個在美國東部 (維吉尼亞北部) 區域,另一個在美國西部 (奧勒岡) 區域,即使修訂版本在區域和值區都相同。

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

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

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

要了解如何產生和連接 Amazon S3 儲存貯體政策,請參閱儲存貯體政策範例

呼叫push命令的使用者至少必須具有將修訂上傳到每個目標 Amazon S3 儲存貯體的許可。例如,下列政策允許使用者將修訂上傳到名為的 Amazon S3 儲存貯體中的任何位置DOC-EXAMPLE-BUCKET

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

若要了解如何建立和附加 IAM 政策,請參閱使用政策

使用推送修訂 AWS CLI

注意

push命令將應用程序加工品和 AppSpec 文件捆綁到修訂版中。此修訂的檔案格式,是壓縮的 ZIP 檔案。此命令無法與 AWS Lambda 或 Amazon ECS 部署搭配使用,因為每個部署都需要一個 JSON 格式或 YAML 格式檔案的修訂版本。 AppSpec

呼叫 push 命令來綁定並推送部署的修訂。它的參數是:

  • --application-name:(字串) 必要。要與 CodeDeploy應用程式修訂相關聯的應用程式名稱。

  • --s3-location:(字串) 必要。要上傳到 Amazon S3 之應用程式修訂版位置的相關資訊。您必須指定 Amazon S3 儲存貯體和金鑰。關鍵是修訂的名稱。 CodeDeploy 在上傳之前壓縮內容。使用 s3://DOC-EXAMPLE-BUCKET/your-key.zip 格式。

  • --ignore-hidden-files--no-ignore-hidden-files:(布林值) 選用。使用--no-ignore-hidden-files旗標 (預設值) 將隱藏檔案捆綁並上傳到 Amazon S3。使用--ignore-hidden-files旗標不要將隱藏的檔案捆綁並上傳到 Amazon S3。

  • --source (字串) 選用。要部署的內容位置,以及要壓縮並上傳到 Amazon S3 的開發機器上的 AppSpec 檔案。該位置指定為相對於目前目錄的路徑。如果未指定相對路徑,或為路徑使用單一句點 ("."),則會使用目前目錄。

  • --description (字串) 選用。用於總結應用程式修訂的評論。如果未指定,則使用預設字串「時間 AWS CLI 」UTC 上傳」,其中「time」是目前系統時間 (UTC) 表示的目前系統時間。

您可以使用 AWS CLI 為 Amazon EC2 部署推送修訂版。推送命令的範例如下所示:

在 Linux、macOS 系統或 Unix 中:

aws deploy push \ --application-name WordPress_App \ --description "This is a revision for the application WordPress_App" \ --ignore-hidden-files \ --s3-location s3://DOC-EXAMPLE-BUCKET/WordPressApp.zip \ --source .

在 Windows 上:

aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://DOC-EXAMPLE-BUCKET/WordPressApp.zip --source .

此命令會執行下列動作:

  • 將已綁定檔案與名為 WordPress_App 的應用程式建立關聯。

  • 將描述連接至修訂。

  • 忽略隱藏檔案。

  • 為修訂 WordPressApp.zip 命名,並將其推送至名為 DOC-EXAMPLE-BUCKET 的儲存貯體。

  • 將根目錄中的所有檔案綁定至修訂。

推送成功後,您可以使用 AWS CLI 或 CodeDeploy 主控台從 Amazon S3 部署修訂版本。若要使用下列項目部署此修訂 AWS CLI:

在 Linux、macOS 系統或 Unix 中:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name your-deployment-config-name \ --deployment-group-name your-deployment-group-name \ --s3-location bucket=DOC-EXAMPLE-BUCKET,key=WordPressApp.zip,bundleType=zip

在 Windows 上:

aws deploy create-deployment --application-name WordPress_App --deployment-config-name your-deployment-config-name --deployment-group-name your-deployment-group-name --s3-location bucket=DOC-EXAMPLE-BUCKET,key=WordPressApp.zip,bundleType=zip

如需更多詳細資訊,請參閱 使用建立部署 CodeDeploy