教學課程:為 BankDemo 範例應用程式設定 Micro Focus 組建 - AWS 大型主機現代化

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

教學課程:為 BankDemo 範例應用程式設定 Micro Focus 組建

AWS大型主機現代化可讓您為移轉的應用程式設定組建和持續整合/持續交付 (CI/CD) 管線。這些組建和管線會使用AWS CodeBuildAWS CodeCommit、並AWS CodePipeline提供這些功能。 CodeBuild 是完全受控的建置服務,可編譯原始程式碼、執行單元測試,以及產生準備好部署的成品。 CodeCommit 是一項版本控制服務,可讓您在雲端中私下儲存和管理 Git 回覆。AWS CodePipeline 是一項持續交付服務,可讓您建立軟體發行所需步驟的模型、視覺化和自動化。

本教學課程示範如AWS CodeBuild何使用從 Amazon S3 編譯 BankDemo 範例應用程式原始碼,然後將編譯後的程式碼匯出回 Amazon S3。

AWS CodeBuild是完全受控的持續整合服務,可編譯原始程式碼、執行測試,以及產生可供部署的軟體套件。透過 CodeBuild,您可以使用預先封裝的建置環境,或是建立使用自己建置工具的自訂建置環境。此示範案例會使用第二個選項。它包含使用預先封裝的 Docker 映像檔的 CodeBuild 建置環境。

重要

在您開始大型主機現代化專案之前,建議您先瞭解大型主機的 AWSMigration Acceleration Program (MAP),或聯絡大型主機專家,瞭解AWS大型主機應用程式現代化所需的步驟。

必要條件

開始此自學課程之前,請先完成下列先決條件。

  • 下載BankDemo 範例應用程式並將其解壓縮至資料夾。源文件夾包含 COBOL 程序和字稿,以及 CICS BMS 定義。它還包含一個 JCL 文件夾供參考,雖然你不需要構建 JCL。該文件夾還包含構建所需的元文件。

  • 在「AWS大型主機現代化」主控台中,選擇「工具」。在「分析、開發和建立資產」中,選擇「與我的 AWS 帳戶共用資產」。

步驟 1:創建 Amazon S3 存儲桶

在此步驟中,您會建立兩個 Amazon S3 儲存貯體。第一個是保存源代碼的輸入存儲桶,另一個是用於保存構建輸出的輸出存儲桶。如需詳細資訊,請參閱 Amazon S3 使用者指南中的建立、設定和使用 Amazon S3 儲存貯體

  1. 若要建立輸入儲存貯體,請登入 Amazon S3 主控台並選擇建立儲存貯體。

  2. [一般] 設定中,提供值區的名稱,並指定您AWS 區域要建立值區的位置。範例名稱為codebuild-regionId-accountId-input-bucket,其中regionId是值區AWS 區域的,而且accountId是您的 AWS 帳戶 ID。

    注意

    如果您在不同AWS 區域於美國東部 (維吉尼亞北部) 建立值區,請指定LocationConstraint參數。如需詳細資訊,請參閱 Amazon 簡單儲存服務 API 參考中的建立儲存貯體

  3. 保留所有其他設定並選擇 [建立值區]。

  4. 重複步驟 1-3 以建立輸出值區。範例名稱為codebuild-regionId-accountId-output-bucket,其中regionId是值區AWS 區域的,accountId是您的 AWS 帳戶 ID。

    無論您為這些值區選擇什麼名稱,請務必在本教學課程中使用它們。

第 2 步:創建構建規範文件

在此步驟中,您會建立組建規格檔案、. 此檔案以 YAML 格式提供建置命令和相關設定, CodeBuild 以執行組建。如需詳細資訊,請參閱《使用指南》 CodeBuild中的〈建置規格參考AWS CodeBuild

  1. 在您解壓縮為先決條件buildspec.yml的目錄中建立一個名為的檔案。

  2. 將下列內容新增至檔案並儲存。此檔案不需要變更。

    version: 0.2 env: exported-variables: - CODEBUILD_BUILD_ID - CODEBUILD_BUILD_ARN phases: install: runtime-versions: python: 3.7 pre_build: commands: - echo Installing source dependencies... - ls -lR $CODEBUILD_SRC_DIR/source build: commands: - echo Build started on `date` - /start-build.sh -Dbasedir=$CODEBUILD_SRC_DIR/source -Dloaddir=$CODEBUILD_SRC_DIR/target post_build: commands: - ls -lR $CODEBUILD_SRC_DIR/target - echo Build completed on `date` artifacts: files: - $CODEBUILD_SRC_DIR/target/**

    這裡CODEBUILD_BUILD_ID、、CODEBUILD_BUILD_ARN$CODEBUILD_SRC_DIR/source、和$CODEBUILD_SRC_DIR/target是可在其中使用的環境變數 CodeBuild。如需詳細資訊,請參閱建置環境中的環境變數

    在這一點上,你的目錄應該是這樣的。

    (root directory name) |-- build.xml |-- buildspec.yml |-- LICENSE.txt |-- source |... etc.
  3. 將資料夾的內容壓縮到名為BankDemo.zip.. 在本教程中,您無法壓縮文件夾。而是將資料夾的內容壓縮到檔案中BankDemo.zip

步驟 3:上傳源文件

在此步驟中,您將 BankDemo 範例應用程式的原始程式碼上傳到 Amazon S3 輸入儲存貯體。

  1. 登入 Amazon S3 主控台,然後在左側導覽窗格中選擇「儲存體」。然後選擇您先前建立的輸入值區。

  2. 在「物件」下選擇「上載」。

  3. 在「檔案和資料夾」區段中,選擇「新增檔案」。

  4. 瀏覽並選擇您的BankDemo.zip檔案。

  5. 選擇上傳

步驟 4:建立 IAM 政策

在此步驟中,您會建立兩個 IAM 政策。其中一個原則會授予AWS大型主機現代化存取和使用包含 Micro Focus 建置工具的 Docker 映像檔的權限。此政策不是為客戶量身定制的。另一個政策授予AWS大型主機現代化與輸入和輸出值區以及產生的 Amazon CloudWatch 日誌互動的許可。 CodeBuild

若要進一步了解如何建立 IAM 政策,請參閱 IAM 使用者指南中的編輯 IAM 政策。

若要建立存取 Docker 映像檔的原則
  1. 在 IAM 主控台中,複製以下政策文件並將其貼到政策編輯器中。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::aws-m2-repo-*/*" } ] }
  2. 提供原則的名稱,例如m2CodeBuildPolicy

建立允許AWS大型主機現代化與值區和記錄互動的原則
  1. 在 IAM 主控台中,複製以下政策文件並將其貼到政策編輯器中。請務必更新regionIdaccountId至和您的AWS 帳戶. AWS 區域

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:regionId:accountId:log-group:/aws/codebuild/codebuild-bankdemo-project", "arn:aws:logs:regionId:accountId:log-group:/aws/codebuild/codebuild-bankdemo-project:*" ], "Effect": "Allow" }, { "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:List*" ], "Resource": [ "arn:aws:s3:::codebuild-regionId-accountId-input-bucket", "arn:aws:s3:::codebuild-regionId-accountId-input-bucket/*", "arn:aws:s3:::codebuild-regionId-accountId-output-bucket", "arn:aws:s3:::codebuild-regionId-accountId-output-bucket/*" ], "Effect": "Allow" } ] }
  2. 提供原則的名稱,例如BankdemoCodeBuildRolePolicy

步驟 5:建立 IAM 角色

在此步驟中,您會建立新的 IAM 角色,在 CodeBuild 將先前建立的 IAM 政策與這個新的 IAM 角色建立關聯後,允許您與AWS資源互動。

如需建立服務角色的相關資訊,請參閱《IAM 使用者指南》中的建立角色以將權限委派給AWS服務

  1. 登入 IAM 主控台,然後在左側導覽窗格中選擇 [角色]。

  2. 選擇建立角色

  3. 在受信任的實體類型下,選擇 AWS 服務

  4. 在「其他 AWS 服務的使用案例」下,選擇 CodeBuild,然後CodeBuild再次選擇。

  5. 選擇下一步

  6. Add permissions (新增許可) 頁面上,選擇 Next (下一步)。稍後您可以將原則指派給角色。

  7. 在「角色詳細資料」下,提供角色的名稱,例如,BankdemoCodeBuildServiceRole

  8. [選取信任的實體] 底下,確認原則文件如下所示:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  9. 選擇建立角色

步驟 6:將 IAM 政策附加到 IAM 角色

在此步驟中,您會將先前建立的兩個 IAM 政策附加到 BankdemoCodeBuildServiceRole IAM 角色。

  1. 登入 IAM 主控台,然後在左側導覽窗格中選擇 [角色]。

  2. 在「角色」中,選擇您先前建立的角色,例如,BankdemoCodeBuildServiceRole

  3. 在 [權限] 原則中,選擇 [新增權限],然後選擇 [附加原則

  4. 在 [其他權限原則] 中,選擇您先前建立的原則,例如m2CodeBuildPolicyBankdemoCodeBuildRolePolicy

  5. 選擇連接政策

步驟 7:建立 CodeBuild 專案

在此步驟中,您將建立 CodeBuild 專案。

  1. 登入 CodeBuild 主控台並選擇 [建立組建專案]。

  2. 在 [專案組態] 區段中,提供專案的名稱,例如codebuild-bankdemo-project

  3. 在「來源」區段中,針對來源供應商選擇 Amazon S3,然後選擇您先前建立的輸入儲存貯體,例如codebuild-regionId-accountId-input-bucket

  4. S3 物件金鑰或 S3 資料夾欄位中,輸入您上傳到 S3 儲存貯體的 zip 檔案名稱。在此情況下,檔案名稱為bankdemo.zip

  5. 在「環境」區段中,選擇「自訂影像」。

  6. 在「環境類型」欄位中,選擇「Linux」。

  7. 在 [影像登錄] 下,選擇 [其他登錄]

  8. 在「外部登錄 URL」欄位中,輸入 673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:latest

  9. 在 [服務角色] 底下,選擇 [現有服務角色],然後在 [角色 ARN] 欄位中選擇您先前建立的服務角色;例如,BankdemoCodeBuildServiceRole

  10. 在 [建置規格] 區段中,選擇 [使用組建規格檔案]。

  11. 在「成品」區段的「類型」下,選擇 Amazon S3,然後選擇輸出儲存貯體,例如codebuild-regionId-accountId-output-bucket

  12. 在「名稱」欄位中,輸入值區中要包含組建輸出成品的資料夾名稱,例如bankdemo-output.zip

  13. 在「成品包裝」下,選擇「Zip」。

  14. 選擇 Create build project (建立建置專案)

步驟 8:開始構建

在此步驟中,您將啟動組建。

  1. 登入 CodeBuild 主控台。

  2. 在左側導覽窗格中,選擇 [建置專案]。

  3. 選擇您先前建立的建置專案,例如codebuild-bankdemo-project

  4. 選擇 Start build (開始組建)

此命令啟動構建。組建會以非同步方式執行。命令的輸出是包含屬性 id 的 JSON。此屬性 idis 對剛剛啟動之組 CodeBuild 建 ID 的參考。您可以在 CodeBuild 主控台中檢視組建的狀態。您還可以在控制台中查看有關構建執行的詳細日誌。如需詳細資訊,請參閱AWS CodeBuild使用指南中的檢視詳細組建資訊

當目前階段完成時,表示您的建置已成功完成,而您編譯的成品已在 Amazon S3 上準備就緒。

步驟 9:下載輸出工件

在此步驟中,您會從 Amazon S3 下載輸出成品。Micro Focus 建置工具可以建立數種不同的可執行檔類型。在此自學課程中,它會產生共用物件。

  1. 登入 Amazon S3 主控台。

  2. 在「值區」區段中,選擇輸出值區的名稱,例如codebuild-regionId-accountId-output-bucket

  3. 選擇 Download (下載)。

  4. 解壓縮所下載的 檔案。導覽至目標資料夾以查看組建加工品。其中包括 .so Linux 共享對象。

清除資源

如果您不再需要為此教學課程建立的資源,請將其刪除以避免額外費用。若要這樣做,請完成下列步驟: