

AWS 大型机现代化服务（托管运行时环境体验）不再向新客户开放。有关类似于 AWS 大型机现代化服务（托管运行时环境体验）的功能，请浏览 AWS 大型机现代化服务（自我管理体验）。现有客户可以继续正常使用该服务。有关更多信息，请参阅[AWS 大型机现代化可用性变更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在容器上为大型机运行时设置 AWS 转换
<a name="ba-runtime-deploy-container"></a>

本主题介绍如何在 docker 容器上使用 Tr AWS ansform for 大型机运行时设置和部署 PlanetsDemo 示例应用程序。

AWS 容器上的大型机运行时转换适用于由亚马逊 EC2 管理的 Amazon ECS、由管理的 Amazon ECS 和由 AWS Fargate亚马逊 EC2 管理的 Amazon EKS。它与由管理的 Amazon EKS 不兼容 AWS Fargate。

**Topics**
+ [先决条件](#ba-runtime-deploy-prereq)
+ [设置](#ba-runtime-deploy-setup)
+ [测试部署的应用程序](#ba-runtime-deploy-test)

## 先决条件
<a name="ba-runtime-deploy-prereq"></a>

在开始之前，请确保满足以下先决条件：
+  AWS CLI 按照配置 [AWS CLI 中的步骤进行配置](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。
+ 完成 [AWS 针对大型机运行时先决条件进行转型](ba-runtime-setup-prereq.md)和[大型机运行时的入门 AWS 转换](ba-runtime-setup-onboard.md)。
+ 下载适用于大型机的 AWS 转换运行时二进制文件。有关说明，请参阅[大型机运行时的入门 AWS 转换](ba-runtime-setup-onboard.md)。
+ 下载 Apache Tomcat 二进制文件。
+ 下载[PlanetsDemo应用程序档案](https://d3lkpej5ajcpac.cloudfront.net/demo/bluage/PlanetsDemo-v1.zip)。
+ 为 JICS 创建一个 Amazon Aurora PostgreSQL 数据库，然后对其运行 `PlanetsDemo-v1/jics/sql/initJics.sql` 查询。有关如何创建 Amazon Aurora PostgreSQL 数据库的信息，请参阅[创建并连接到 Aurora PostgreSQL 数据库集群](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster)。

## 设置
<a name="ba-runtime-deploy-setup"></a>

要设置 PlanetsDemo 示例应用程序，请完成以下步骤。

1. 下载 Apache Tomcat 二进制文件后，解压缩内容并转到 `conf` 文件夹。打开 `catalina.properties` 文件进行编辑，将以 `common.loader` 开头的行替换为以下行。

   ```
   common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/shared","${catalina.home}/shared/*.jar","${catalina.home}/extra","${catalina.home}/extra/*.jar"
   ```

1. 使用 tar 命令压缩 Apache Tomcat 文件夹以构建 “tar.gz”归档。

1. 准备一个 [Dockerfile](https://docs.docker.com/engine/reference/builder/)，用于根据提供的运行时二进制文件和 Apache Tomcat 服务器二进制文件构建您的自定义映像。请见以下示例 Dockerfile。目标是安装 Apache Tomcat，然后安装在 Apache Tomcat 安装目录根目录中提取的 AWS Transform for mainframe 运行时（适用于由管理的 Amazon ECS AWS Fargate），然后安装名为的示例现代化应用程序。 PlanetsDemo
**注意**  
在本示例 Dockerfile 中使用的 install-gapwalk.sh 和 install-app.sh 脚本的内容列在 Dockerfile 之后。

   ```
   FROM --platform=linux/x86_64 amazonlinux:2
   
   RUN mkdir -p /workdir/apps
   WORKDIR /workdir
   COPY install-gapwalk.sh .
   COPY install-app.sh .
   RUN chmod +x install-gapwalk.sh
   RUN chmod +x install-app.sh
   
   # Install Java and AWS CLI v2-y
   RUN yum install sudo java-17-amazon-corretto unzip tar -y
   RUN sudo yum remove awscli -y
   RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
   RUN sudo unzip awscliv2.zip
   RUN sudo ./aws/install
   
   # Installation dir
   RUN mkdir -p /usr/local/velocity/installation/gapwalk
   # Copy PlanetsDemo archive to a dedicated apps dir
   COPY PlanetsDemo-v1.zip /workdir/apps/
   
   # Copy resources (tomcat, blu age runtime) to installation dir
   COPY tomcat.tar.gz /usr/local/velocity/installation/tomcat.tar.gz
   COPY aws-bluage-runtime-4.x.x.zip /usr/local/velocity/installation/gapwalk/gapwalk.zip
   
   # run relevant installation scripts
   RUN ./install-gapwalk.sh
   RUN ./install-app.sh
   
   EXPOSE 8080
   EXPOSE 8081
   # ...
   
   WORKDIR /bluage/tomcat.gapwalk/velocity
   # Run Command to start Tomcat server
   CMD ["sh", "-c", "sudo bin/catalina.sh run"]
   ```

   以下是 `install-gapwalk.sh.` 的内容

   ```
   # Vars
   TEMP_DIR=/bluage-on-fargate/tomcat.gapwalk/temp
   
   # Install
   echo "Installing Gapwalk and Tomcat"
   sudo rm -rf /bluage-on-fargate
   mkdir -p ${TEMP_DIR}
   # Copy AWS Transform for mainframe runtime and tomcat archives to temporary extraction dir
   sudo cp /usr/local/velocity/installation/gapwalk/gapwalk.zip ${TEMP_DIR}
   sudo cp /usr/local/velocity/installation/tomcat.tar.gz ${TEMP_DIR}
   # Create velocity dir
   mkdir -p /bluage/tomcat.gapwalk/velocity
   # Extract tomcat files
   tar -xvf ${TEMP_DIR}/tomcat.tar.gz -C ${TEMP_DIR}
   # Copy all tomcat files to velocity dir
   cp -fr ${TEMP_DIR}/apache-tomcat-10.x.x/* /bluage/tomcat.gapwalk/velocity
   # Remove default webapps of Tomcat
   rm -f /bluage-on-fargate/tomcat.gapwalk/velocity/webapps/*
   # Extract AWS Transform for mainframe runtime at velocity dir
   unzip ${TEMP_DIR}/gapwalk.zip -d /bluage/tomcat.gapwalk
   # Remove temporary extraction dir
   sudo rm -rf ${TEMP_DIR}
   ```

   以下是 `install-app.sh` 的内容。

   ```
   #!/bin/sh
   
   APP_DIR=/workdir/apps
   TOMCAT_GAPWALK_DIR=/bluage-on-fargate/tomcat.gapwalk
   
   unzip ${APP_DIR}/PlanetsDemo-v1.zip -d ${APP_DIR}
   cp -r ${APP_DIR}/webapps/* ${TOMCAT_GAPWALK_DIR}/velocity/webapps/
   cp -r ${APP_DIR}/config/* ${TOMCAT_GAPWALK_DIR}/velocity/config/
   ```

1. 在 `application-main.yml` 文件（位于 `{TOMCAT_GAPWALK_DIR}/config` 文件夹中）的以下代码段中，提供作为先决条件一部分而创建的数据库的连接信息。有关更多信息，请参阅[创建并连接到 Aurora PostgreSQL 数据库集群](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster)。

   ```
   datasource:
      jicsDs:
        driver-class-name :  
        url: 
        username: 
        password: 
        type :
   ```

1. 构建映像推送到您的 Amazon ECR 存储库。有关说明，请参阅《Amazon Elastic Container Registry 用户指南》中的[推送 Docker 映像](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)。然后，根据您的情况，使用您的 Amazon ECR 映像创建一个 Amazon EKS 容器组或 Amazon ECS 任务定义，然后将其部署到您的集群中。有关创建这些项目的示例，请参阅《Amazon Elastic Container Service（Amazon ECS）开发人员指南》中的[使用控制台创建任务定义](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html)和《Amazon EKS 用户指南》中的[部署示例应用程序](https://docs.aws.amazon.com/eks/latest/userguide/sample-deployment.html)。****

1.  具体而言，对于**由 AWS Fargate管理的 Amazon ECS**，创建任务定义时，请使用您在初始基础设施设置过程中创建的 IAM 角色。然后，在创建服务时，请展开**网络**部分，配置您在初始基础设施设置过程中创建的 VPC、子网和安全组。请参阅 A [WS Transform for mainframe 运行时的基础设施设置要求](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)。

## 测试部署的应用程序
<a name="ba-runtime-deploy-test"></a>

有关如何测试 PlanetsDemo 应用程序的示例，请参阅[测试 PlanetsDemo 应用程序](ba-runtime-test-planetsdemo.md)。