本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:將成品上傳至 Amazon S3
在本教學課程中,您將了解如何使用包含幾個建置動作的 Amazon 工作流程,將成品上傳至 Amazon S3 儲存貯體。 CodeCatalyst 工作流程這些動作會在工作流程啟動時串聯執行。第一個建置動作會產生兩個檔案 Hello.txt
和 Goodbye.txt
,並將其封裝為建置成品。第二個建置動作會將成品上傳至 Amazon S3。您將設定工作流程,在每次將遞交推送至來源儲存庫時執行。
必要條件
開始之前,您必須準備好以下事項:
-
您需要具有連線 AWS 帳戶 CodeCatalyst 的空間。如需詳細資訊,請參閱建立空間。
-
在空間中,您需要一個名為 的空專案:
codecatalyst-artifact-project
使用從頭開始選項建立此專案。
如需詳細資訊,請參閱在 Amazon 中建立空專案 CodeCatalyst。
-
在專案中,您需要一個 CodeCatalyst 名為:
codecatalyst-artifact-environment
設定此環境,如下所示:
-
選擇任何類型的,例如開發 。
-
將您的帳戶連接至該 AWS 帳戶。
-
針對預設IAM角色 ,選擇任何角色。稍後您將指定不同的角色。
如需詳細資訊,請參閱部署至 AWS 帳戶 和 VPCs。
-
步驟 1:建立 AWS 角色
在此步驟中,您會建立 AWS IAM角色,稍後會指派給工作流程中的建置動作。此角色會授予 CodeCatalyst 建置動作許可,以存取 AWS 您的帳戶,並寫入 Amazon S3 以存放成品。此角色稱為建置角色 。
注意
如果您已經擁有為另一個教學課程建立的建置角色,也可以將其用於此教學課程。只需確定其具有下列程序所示的許可和信任政策即可。
如需IAM角色的詳細資訊,請參閱 AWS AWS Identity and Access Management 使用者指南 中的IAM角色。
建立建置角色
-
建立角色的政策,如下所示:
-
登入 AWS。
在 開啟IAM主控台https://console.aws.amazon.com/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" } ] }
-
選擇 Next (下一步)。
-
在許可政策 中,搜尋
codecatalyst-s3-build-policy
並選取其核取方塊。 -
選擇 Next (下一步)。
-
針對角色名稱 ,輸入:
codecatalyst-s3-build-role
-
針對角色描述 ,輸入:
CodeCatalyst build role
-
選擇建立角色。
您現在已建立具有信任政策和許可政策的建置角色。
-
步驟 2:建立 Amazon S3 儲存貯體
在此步驟中,您會建立 Amazon S3 儲存貯體,其中會上傳 Hello.txt
和Goodbye.txt
成品。
建立 Amazon S3 儲存貯體
在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
在主窗格中,選擇建立儲存貯體 。
-
針對儲存貯體名稱 ,輸入:
codecatalyst-artifact-bucket
-
對於 AWS 區域,選擇一個區域。本教學假設您選擇了美國西部 (奧勒岡) us-west-2。如需 Amazon S3 支援之區域的相關資訊,請參閱 中的 Amazon Simple Storage Service 端點和配額AWS 一般參考。
-
在頁面底部,選擇建立儲存貯體 。
-
複製您剛建立的儲存貯體名稱,例如:
codecatalyst-artifact-bucket
您現在在美國西部 (奧勒岡) us-west-2 區域中建立名為 codecatalyst-artifact-bucket
的儲存貯體。
步驟 3:建立來源儲存庫
在此步驟中,您可以在 中建立來源儲存庫 CodeCatalyst。此儲存庫用於存放教學課程的工作流程定義檔案。
如需來源儲存庫的詳細資訊,請參閱 建立來源儲存庫。
若要建立來源儲存庫
在 https://https://codecatalyst.aws/
開啟 CodeCatalyst 主控台。 -
導覽至您的專案
codecatalyst-artifact-project
。 -
在導覽窗格中,選擇程式碼 ,然後選擇來源儲存庫 。
-
選擇新增儲存庫 ,然後選擇建立儲存庫 。
-
在儲存庫名稱 中,輸入:
codecatalyst-artifact-source-repository
-
選擇 Create (建立)。
您現在已建立名為 的儲存庫codecatalyst-artifact-source-repository
。
步驟 4:建立工作流程
在此步驟中,您會建立工作流程,其中包含下列依次執行的建置區塊:
-
觸發程序 – 當您將變更推送至來源儲存庫時,此觸發程序會自動啟動工作流程。如需觸發程序的詳細資訊,請參閱 使用觸發器啟動工作流程自動執行。
-
名為 的建置動作
GenerateFiles
– 在觸發時,GenerateFiles
動作會建立兩個檔案Hello.txt
和Goodbye.txt
,並將其封裝為名為 的輸出成品codecatalystArtifact
。 -
另一個名為 的建置動作
Upload
–GenerateFiles
動作完成時,Upload
動作會執行 AWS CLI 命令,將codecatalystArtifact
和 來源儲存庫中的檔案aws s3 sync
上傳至您的 Amazon S3 儲存貯體。在運算平台上 AWS CLI 預先安裝並預先設定 CodeCatalyst ,因此您不需要安裝或設定它。如需 CodeCatalyst 運算平台上預先封裝軟體的詳細資訊,請參閱 指定執行環境影像。如需 AWS CLI
aws s3 sync
命令的詳細資訊,請參閱 AWS CLI 命令參考 中的同步。
如需建置動作的詳細資訊,請參閱 使用工作流程建置。
若要建立工作流程
-
在導覽窗格中,選擇 CI/CD ,然後選擇工作流程 。
-
選擇建立工作流程 。
-
刪除YAML範例程式碼。
-
新增下列YAML程式碼:
注意
在下面的YAML程式碼中,您可以視需要省略
Connections:
區段。如果省略本節,您必須確保環境中預設角色欄位中指定的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
您在 中建立的帳戶連線名稱必要條件。 -
codecatalyst-s3-build-role
使用您在 中建立的建置角色名稱步驟 1:建立 AWS 角色。 -
codecatalyst-artifact-bucket
使用您在 中建立的 Amazon S3 名稱步驟 2:建立 Amazon S3 儲存貯體。
如需此檔案中屬性的相關資訊,請參閱 建置和測試動作 YAML。
-
-
(選用) 選擇驗證,以確保提交前YAML程式碼有效。
-
選擇 Commit (遞交)。
-
在 Commit 工作流程對話方塊中,輸入下列內容:
-
對於工作流程檔案名稱 ,保留預設值
codecatalyst-artifact-workflow
。 -
對於 Commit 訊息 ,輸入:
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
檔案是因為它們位於您的來源儲存庫中。
清除
在 中清除 AWS CodeCatalyst ,以避免收取這些服務的費用。
若要在 中清除 CodeCatalyst
在 https://https://codecatalyst.aws/
開啟 CodeCatalyst 主控台。 -
刪除
codecatalyst-artifact-source-repository
來源儲存庫。 -
刪除
codecatalyst-artifact-workflow
工作流程。
若要在 中清除 AWS
-
在 Amazon S3 中清除,如下所示:
在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
刪除儲存
codecatalyst-artifact-bucket
貯體中的檔案。 -
刪除儲存
codecatalyst-artifact-bucket
貯體。
-
在 中清除IAM,如下所示:
在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
刪除
codecatalyst-s3-build-policy
。 -
刪除
codecatalyst-s3-build-role
。