本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:將成品上傳到 Amazon S3
在本教學中,您將學習如何使用包含幾個建置動作的 CodeCatalyst 工作流程將成品上傳到 Amazon S3 儲存貯體。當工作流程啟動時,這些動作會連續執行。第一個建置動作會產生兩個檔案Goodbye.txt
,Hello.txt
然後將它們捆綁到組建成品中。第二個建置動作會將成品上傳到 Amazon S3。您將配置工作流程,以便在每次將提交推送到源存儲庫時運行。
必要條件
開始之前,您必須準備好以下事項:
-
您需要具有已連線 AWS 帳戶的 CodeCatalyst 空間。如需詳細資訊,請參閱 建立空間。
-
在您的空間中,您需要一個空的,從頭開始的 CodeCatalyst 項目,名為:
codecatalyst-artifact-project
如需詳細資訊,請參閱 在 Amazon 中創建一個空項目 CodeCatalyst。
-
在你的項目中,你需要一 CodeCatalyst 個名為:
codecatalyst-artifact-environment
設定此環境的方式如下:
-
選擇任何類型,例如開發。
-
將您的 AWS 帳戶 Connect 到它。
-
對於預設 IAM 角色,請選擇任何角色。稍後您將指定不同的角色。
如需詳細資訊,請參閱 使 CodeCatalyst用環境部署到 VPC AWS 帳戶 和 VPC。
-
步驟 1:建立 AWS 角色
在此步驟中,您會建立 AWS IAM 角色,稍後將該角色指派給工作流程中的建置動作。此角色授予 CodeCatalyst 建立動作權限,以存取您的 AWS 帳戶並寫入存放您的成品的 Amazon S3。此角色稱為「建置」角色。
注意
如果您已經有為其他教學課程建立的建置角色,也可以在本教學課程中使用它。只要確保它具有以下過程中顯示的權限和信任策略即可。
如需 IAM 角色的詳細資訊,請參閱AWS AWS Identity and Access Management 使用者指南中的 IAM 角色。
若要建立建置角色
-
建立角色的策略,執行方式如下:
-
登入到 AWS。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇 Create policy (建立政策)。
-
請選擇 JSON 標籤。
-
刪除現有的程式碼。
-
貼上以下程式碼:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": "*" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在名稱中,輸入:
codecatalyst-s3-build-policy
-
選擇建立政策。
您現在已建立權限原則。
-
-
建立組建角色,如下所示:
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 [自訂信任原則]。
-
刪除現有的自訂信任原則。
-
新增下列自訂信任原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
選擇下一步。
-
在 [權限] 原則中,搜尋
codecatalyst-s3-build-policy
並選取其核取方塊。 -
選擇下一步。
-
在「角色名稱」中,輸入:
codecatalyst-s3-build-role
-
對於「角色」描述,請輸入:
CodeCatalyst build role
-
選擇建立角色。
您現在已建立具有信任原則和權限原則的組建角色。
-
步驟 2:創建一個 Amazon S3 存儲桶
在此步驟中,您會建立 Amazon S3 儲存貯體,Hello.txt
並在其中上傳和Goodbye.txt
成品。
建立 Amazon S3 儲存貯體
前往 https://console.aws.amazon.com/s3/
開啟的 Amazon Simple Storage Service (Amazon S3) 主控台。 -
在主窗格中,選擇 [建立值區]。
-
若為「值區名稱」,請輸入:
codecatalyst-artifact-bucket
-
對於 AWS 區域,選擇一個區域。本教學課程假設您選擇美國西部 (奧勒岡) us-we st-2。如需 Amazon S3 支援區域的相關資訊,請參閱中的 Amazon 簡單儲存服務端點和配額AWS 一般參考。
-
在頁面底部,選擇 [建立值區]。
-
複製您剛建立的值區名稱,例如:
codecatalyst-artifact-bucket
您現在已經建立了一個名為美國西部 (奧勒岡) us-west-2 區codecatalyst-artifact-bucket
域的值區。
步驟 3:建立來源儲存庫
在此步驟中,您可以在中建立來源儲存庫 CodeCatalyst。此儲存庫用於儲存自學課程的工作流程定義檔案。
如需來源儲存庫的詳細資訊,請參閱建立來源儲存庫。
若要建立來源儲存庫
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
導航到您的項目,
codecatalyst-artifact-project
。 -
在瀏覽窗格中,選擇 [程式碼],然後選擇 [原始碼儲存庫]。
-
選擇 [新增儲存庫],然後選擇 [建立儲存庫]
-
在存放庫名稱中,輸入:
codecatalyst-artifact-source-repository
-
選擇建立。
現在,您已經創建了一個名為codecatalyst-artifact-source-repository
.
步驟 4:建立工作流程
在此步驟中,您會建立由下列依序執行的建置區塊組成的工作流程:
-
觸發器 — 當您將變更推送至來源儲存庫時,此觸發器會自動啟動工作流程執行。如需觸發器的詳細資訊,請參閱使用觸發器啟動工作流程自動執行。
-
名為
GenerateFiles
— 觸發器的建置GenerateFiles
動作會建立兩個檔案Goodbye.txt
,Hello.txt
然後將它們封裝到名為的輸出成品中codecatalystArtifact
。 -
另一個名為的建置動作
Upload
— 動作完成後,GenerateFiles
動Upload
作會執行 AWS CLI 命令,aws s3 sync
將來源儲存庫中codecatalystArtifact
和來源儲存庫中的檔案上傳到 Amazon S3 儲存貯體。 CodeCatalyst計算平台已預先安裝並預先設定,因此您不需要安裝或設定它。 AWS CLI如需有關 CodeCatalyst 運算平台上預先封裝軟體的詳細資訊,請參閱指定執行階段環境 Docker 影像。若要取得有關
aws s3 sync
指令 AWS CLI的更多資訊,請參閱《AWS CLI 指令參考》中的 sync。
如需建置動作的詳細資訊,請參閱以工作流程建置。
若要建立工作流程
-
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇建立工作流程。
-
刪除 YAML 範例程式碼。
-
新增下列 YAML 程式碼:
注意
在下面的 YAML 代碼中,如果需要,可以省略該
Connections:
部分。如果省略本節,則必須確保您環境的 D efault IAM 角色欄位中指定的角色包含中所述的許可和信任政策步驟 1:建立 AWS 角色。如需使用預設 IAM 角色設定環境的詳細資訊,請參閱建立環境。Name: codecatalyst-artifact-workflow SchemaVersion: 1.0 Triggers: - Type: Push Branches: - main Actions: GenerateFiles: Identifier: aws/build@v1 Configuration: Steps: # Create the output files. - Run: echo "Hello, World!" > "Hello.txt" - Run: echo "Goodbye!" > "Goodbye.txt" Outputs: Artifacts: - Name: codecatalystArtifact Files: - "**/*" Upload: Identifier: aws/build@v1 DependsOn: - GenerateFiles Environment: Name:
codecatalyst-artifact-environment
Connections: - Name:codecatalyst-account-connection
Role:codecatalyst-s3-build-role
Inputs: Artifacts: - codecatalystArtifact Configuration: Steps: # Upload the output artifact to the S3 bucket. - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
在上面的代碼中,替換:
-
codecatalyst-artifact-environment
使用您在中建立的環境名稱必要條件。 -
codecatalyst-account-connection
使用您在中創建的帳戶連接的名稱必要條件。 -
代碼催化-s3 構建角色,其中包含您在中創建的構建角色
的名稱。步驟 1:建立 AWS 角色 -
codecatalyst-artifact-bucket
使用您在其中創建的 Amazon S3 的名稱步驟 2:創建一個 Amazon S3 存儲桶。
如需有關此檔案中性質的資訊,請參閱建置和測試動作 YAML 定義。
-
-
(選擇性) 選擇 [驗證],確定 YAML 程式碼在認可之前是有效的。
-
選擇 Commit (遞交)。
-
在「提交工作流程」對話方塊中,輸入以下內容:
-
對於「工作流程」檔案名稱,請保留預設值
codecatalyst-artifact-workflow
。 -
對於提交訊息,請輸入:
add initial workflow file
-
針對「儲存庫」,選擇codecatalyst-artifact-source-repository。
-
選擇「主要」做為「分支名稱」。
-
選擇 Commit (遞交)。
您現在已建立工作流程。工作流程執行會自動啟動,因為工作流程頂端定義了觸發器。具體而言,當您認可 (並推送)
codecatalyst-artifact-workflow.yaml
檔案至來源儲存庫時,觸發程序會啟動工作流程執行。 -
若要檢視進行中的工作流程執行
-
在瀏覽窗格中,選擇 CI/CD,然後選擇 [工作流程]。
-
選擇您剛建立的工作流程:
codecatalyst-artifact-workflow
。 -
選擇GenerateFiles查看第一個建置動作進度。
-
選擇 [上傳] 以查看第二個建置動作進度。
-
當「上載」動作完成時,請執行下列動作:
-
如果工作流程執行成功,請移至下一個程序。
-
如果工作流程執行失敗,請選擇 [記錄檔] 以疑難排解問題。
-
步驟 5:驗證結果
工作流程執行後,前往 Amazon S3 服務並查看您的儲存codecatalyst-artifact-bucket
貯體。它現在應該包括以下文件和文件夾:
. |— .aws/ |— .git/ |Goodbye.txt |Hello.txt |REAME.md
Goodbye.txt
和Hello.txt
檔案已上傳,因為它們是codecatalystArtifact
成品的一部分。.aws/
.git/
、和README.md
檔案已上傳,因為它們位於您的來源儲存庫中。
清除
清理 CodeCatalyst 並 AWS 避免被收取這些服務費用。
若要在中進行清理 CodeCatalyst
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
刪除來
codecatalyst-artifact-source-repository
源儲存庫。 -
刪除
codecatalyst-artifact-workflow
工作流程。
若要在中進行清理 AWS
-
在 Amazon S3 中進行清理,如下所示:
前往 https://console.aws.amazon.com/s3/
開啟的 Amazon Simple Storage Service (Amazon S3) 主控台。 -
刪除
codecatalyst-artifact-bucket
值區中的檔案。 -
刪除
codecatalyst-artifact-bucket
值區。
-
在 IAM 中進行清理,如下所示:
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
刪除
codecatalyst-s3-build-policy
。 -
刪除
codecatalyst-s3-build-role
。