教學課程:設置行星演示應用程序的構建 - AWSMainframe Modernization Services

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

教學課程:設置行星演示應用程序的構建

本指南說明如何使用AWS CodeBuild.

先決條件

目標中必須存在下列資源,AWS 帳戶且AWS 區域:

  • 一個AWS CodeArtifact存儲庫(和一個相應的域)。您將需要創建此存儲庫。對於此示範,請在建立存放庫時指定公用maven上游連線。如需詳細資訊,請參閱《CodeArtifact 使用者指南》中的 CodeArtifact 入門

  • 作為管線來源的AWS CodeCommit存放庫。您將需要創建此存儲庫。如需詳細資訊,請參閱《AWS CodeCommit 使用者指南》中的「入門」

要執行的步驟概觀

詳細步驟請參閱下列各節。

注意

如果您已經擁有了所有依賴關係的 CodeArtifact 回購庫,則可以跳過 Maven 和 CodeArtifact 步驟。

  1. 將代碼推送到 CodeCommit 回購。

  2. 生成 Maven 配置以將藍光時代依賴關係推送到 CodeArtifact 回購庫。

  3. 將藍光時代依賴關係推送到 CodeArtifact 回購。

  4. 部署 CodeBuild 專案。

步驟 1:將源代碼推送到回購

  1. 下載並解壓縮 PlanetsDemo-pom.zip 封存檔案。

  2. 將源代碼從此 repo 的BluAge/planets-demo/PlanetsDemo-pom目錄複製到新的非版本化目錄中。

  3. 下載間隙步道分佈

  4. 下載gapwalk發行版本。確保根pom.xml文件中的<gapwalk.version>屬性設置為正確的版本(如果需要可以編輯)。

    此版本必須指向現有的gapwalk發佈版本;例如,目前已提供3.1.0-b3257-SNAPSHOT該版本。

  5. 將代碼提交到main分支並將分支推送到 CodeCommit回購。

步驟 2:生成 Maven 配置

  1. 準備腳本的 shell 環境變量(替換{your-domain-name}{your-codeartifact-repo-name}相應地):

    export CODEARTIFACT_DOMAIN={your-domain-name} export CODEARTIFACT_REPO={your-codeartifact-repo-name}
  2. 確保您的AWS環境配置了正確的AWS 帳戶和AWS 區域 CodeArtifact 存儲庫所在的位置。

  3. 獲取您的 CodeArtifact 回購授權令牌。下面生成的配置文件將使用此令牌。當權杖到期時,您將需要不時透過執行此命令來重新整理此權杖。

    export CODEARTIFACT_TOKEN=`aws codeartifact get-authorization-token --domain ${CODEARTIFACT_DOMAIN} --query authorizationToken --output text`
  4. 運行提供的generate-maven-config.sh文件以獲取 Mavensettings.xml

    ./generate-maven-config.sh

步驟 3:將藍光時代依賴關係部署到 CodeArtifact存儲庫中

  1. 下載間隙步道發行版本。

  2. 解壓縮存檔內容。

  3. 將文settings.xml件複製到gapwalk jar 文件所在的目錄。

    cp settings.xml {dir-with-extracted-assets/}
  4. 在解壓縮檔案的目錄中,執行提供的指令碼deploy-to-codeartifact.sh

    cd {dir-with-extracted-assets} path-to-script/deploy-to-codeartifact.sh

步驟 4:部署 CodeBuild 專案

這些步驟描述了一個獨立的 CodeBuild 項目來構建工件。您可以根據需要將此 CodeBuild 項目集成到您的設置中。

  1. 使用CodeRepositoryNameArtifactRepositoryNamebuild-project-params.json的對應值更新參數檔案ArtifactRepositoryDomain

  2. 部署堆疊build-project.yaml

    aws cloudformation deploy --stack-name {your-stack-name} --template-file build-project.yaml \ --capabilities CAPABILITY_IAM --parameter-overrides file://build-project-params.json

現在,應該創建一個 CodeBuild 項目並連接到 CodeCommit 存儲庫。要獲取創建項目的名稱,請使用AWS控制台並檢查創建的堆棧的「輸出」選項卡,或者使用以下 CLI 命令:

aws cloudformation describe-stacks --stack-name {your-stack-name} \ --query "Stacks[0].Outputs[?OutputKey=='CodeBuildProject'].OutputValue" --output text

您可以使用AWS主控台或AWS CLI 啟動組建,並檢查是否有錯誤。例如,您可以像這樣使用 CLI 啟動構建:

aws codebuild start-build --project-name {name-of-the-codebuild-project}

CodeBuild 細節

這個 CodeBuild 步驟需要一個 Maven 倉庫端點來執行一個 Maven 構建。若要取得此端點,請aws codeartifact get-repository-endpointpre_build步驟中使用。

aws codeartifact get-repository-endpoint --domain ${CODEARTIFACT_DOMAIN} \ --repository ${CODEARTIFACT_REPO} --format maven --output text

為了讓 Maven 知道我們使用特定的 Maven 回購,我們創建了一個額外的文件,settings.xml並將該 Maven 回購端點放入此文件中。端點會儲存在$MAVEN_REPO_URL變數中,並且會在pre_build指令碼寫入檔案時取代。我們mvn通過使用build腳本中的-s選項提供此設置文件:

mvn -s settings.xml package

另一個重要的值是由令牌表示的存儲庫密碼。出於安全原因,我們不會將密碼以純文本形式存儲在文件中。相反,我們使用也$CODEARTIFACT_TOKENpre_build腳本設置的環境變量。密碼是通過調用獲得的aws codeartifact get-authorization-token

aws codeartifact get-authorization-token --domain ${CODEARTIFACT_DOMAIN} \ --query authorizationToken --output text

生成的 XML 文件將如下所示:

<settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_TOKEN}</password> </server> <servers> <mirrors> <mirror> <id>codeartifact</id> <name>codeartifact</name> <url>$MAVEN_REPO_URL</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id>codeartifact</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>codeartifact</id> <url>$MAVEN_REPO_URL</url> </repository> </repositories> </profile> </profiles> <settings>

清除資源

如果您不再需要為此教學課程建立的資源,請刪除這些資源,以免繼續支付這些資源的費用。完成下列步驟: