

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

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

# 教程：为 Rocket Software（前身为 Micro Focus）
<a name="tutorial-runtime-mf"></a>

您可以使用 Rocket Software 运行时引擎在 AWS 大型机现代化托管运行时环境中部署和运行应用程序。本教程介绍如何使用 Rocket Software 运行时引擎在 AWS 大型机现代化托管运行时环境中部署和运行 CardDemo 示例应用程序。 CardDemo 示例应用程序是一个简化的信用卡应用程序，旨在测试 AWS 和展示大型机现代化用例的技术，并与之合作。

在本教程中，您将在 other 中创建资源 AWS 服务。其中包括亚马逊简单存储服务、Amazon Relational Database Service 和 AWS Secrets Manager。 AWS Key Management Service

**Topics**
+ [先决条件](#tutorial-runtime-mf-prerequisites)
+ [步骤 1：创建并加载 Amazon S3 存储桶](#tutorial-runtime-mf-s3)
+ [步骤 2：创建和配置数据库](#tutorial-runtime-mf-db)
+ [步骤 3：创建和配置 AWS KMS key](#tutorial-runtime-mf-kms)
+ [步骤 4：创建和配置 AWS Secrets Manager 数据库密钥](#tutorial-runtime-mf-secret)
+ [第 5 步：将 SSLMode 添加到密钥中](#tutorial-runtime-mf-ssl-mode)
+ [步骤 6：创建运行时环境](#tutorial-runtime-mf-env)
+ [步骤 7：创建应用程序](#tutorial-runtime-mf-app)
+ [步骤 8：部署应用程序](#tutorial-runtime-mf-deploy)
+ [步骤 9：导入数据集](#tutorial-runtime-mf-import)
+ [步骤 10：启动应用程序](#tutorial-runtime-mf-start)
+ [步骤 11：连接到 CardDemo CICS 应用程序](#tutorial-runtime-mf-connect)
+ [清理 资源](#tutorial-runtime-mf-clean)
+ [后续步骤](#tutorial-runtime-mf-next)

## 先决条件
<a name="tutorial-runtime-mf-prerequisites"></a>
+ 确保您可以访问 3270 模拟器以使用 CICS 连接。3270 模拟器可从第三方网站免费试用。或者，你可以启动 AWS 大型机现代化 WorkSpaces 应用程序 Rocket Software 实例并使用 Rumba 3270 模拟器（不免费提供）。

  有关 WorkSpaces 应用程序的信息，请参见[教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket](set-up-appstream-mf.md)。
**注意**  
创建堆栈时，请选择“Enterprise Developer（ED）”选项，而不是“Enterprise Analyzer（EA）”。
+ 下载[CardDemo 示例应用程序](https://github.com/aws-samples/aws-mainframe-modernization-carddemo/blob/main/samples/m2/mf/CardDemo_runtime.zip)并将下载的文件解压缩到任意本地目录。该目录将包含一个名为 `CardDemo_runtime` 的子目录。
+ 在您的账户中确定一个 VPC，您可以在其中定义本教程中创建的资源。该 VPC 将需要至少两个可用区中的子网。有关 Amazon VPC 的更多信息，请参阅 [Amazon VPC 的工作原理](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)。

## 步骤 1：创建并加载 Amazon S3 存储桶
<a name="tutorial-runtime-mf-s3"></a>

在此步骤中，您将创建一个 Amazon S3 存储桶并将 CardDemo 文件上传到该存储桶。在本教程的后面部分，您将使用这些文件在 AWS 大型机现代化 Rocket 软件托管运行时环境中部署和运行 CardDemo 示例应用程序。

**注意**  
您不必创建新的 S3 存储桶，但您选择的存储桶必须与本教程中使用的其他资源位于相同的区域中。

**创建 Amazon S3 存储桶**

1. 打开 [Amazon S3 控制台](https://s3.console.aws.amazon.com/s3/home)并选择**创建存储桶**。

1. 在**常规配置**中，选择要构建 AWS 大型机现代化 Rocket 软件托管运行时的 **AWS 区域**。

1. 输入**存储桶名称**，例如 `yourname-aws-region-carddemo`。保留默认设置，然后选择**创建存储桶**。或者，您也可以从现有 Amazon S3 存储桶复制设置，然后选择**创建存储桶**。

1. 选择您刚刚创建的存储桶，然后选择**上传**。

1. 在**上传**部分中，选择**添加文件夹**，然后在本地计算机中浏览到 `CardDemo_runtime` 目录。

1. 选择**上传**以开始上传过程。上传时间因您的连接速度而异。

1. 上传完成后，确认所有文件都已上传成功，然后选择**关闭**。

您的 Amazon S3 存储桶中现在包含 `CardDemo_runtime` 文件夹。

![\[显示 CardDemo 应用程序文件夹的 “ CardDemo 对象” 选项卡。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-carddemo-s3.png)


有关 S3 存储桶的信息，请参阅[创建、配置和使用 Amazon S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)。

## 步骤 2：创建和配置数据库
<a name="tutorial-runtime-mf-db"></a>

在此步骤中，您将在 Amazon Relational Database Service（Amazon RDS）中创建一个 PostgreSQL 数据库。在本教程中，该数据库包含 CardDemo 示例应用程序用于客户执行信用卡交易任务的数据集。

**在 Amazon RDS 中创建数据库**

1. 打开 [Amazon RDS 控制台](https://console.aws.amazon.com/rds/)。

1. 选择要在其中创建数据库实例的 AWS 区域。

1. 从导航窗格中选择**数据库**。

1. 选择**创建数据库**，然后选择**标准创建**。

1. 对于**引擎类型**，选择 **PostgreSQL**。

1. 选择 15 或更高的**引擎版本**。
**注意**  
保存该引擎版本，因为本教程后面部分需要用到它。

1. 在**模板**部分中，选择**免费套餐**。

1. 将**数据库实例标识符**更改为有意义的标识符，例如 `MicroFocus-Tutorial`。

1. 请勿在 AWS Secrets Manager中管理主凭证。请输入*主*密码并确认该密码。
**注意**  
保存您用于数据库的用户名和密码。在本教程的后续步骤中，您将安全地存储这些信息。

1. 在 “**连接**” 下，选择要在其中创建 AWS 大型机现代化托管运行时环境的 **VPC**。

1. 选择**创建数据库**。

**在 Amazon RDS 中创建自定义参数组**

1. 在 Amazon RDS 控制台的导航窗格中，选择**参数组**，然后选择**创建参数组**。

1. 在**创建参数组**窗口中，对于**参数组系列**，选择与您的数据库版本匹配的 **Postgres** 选项。
**注意**  
某些 Postgres 版本需要指定**类型**。如果需要，请选择**数据库参数组**。为参数组输入**组名称**和**描述**。

1. 选择**创建**。

**配置自定义参数组**

1. 选择新创建的参数组。

1. 选择**操作**，然后选择**编辑**。

1. 按 `max_prepared_transactions` 进行筛选并将参数值更改为 100。

1. 选择**保存更改**。

**将自定义参数组与数据库关联**

1. 在 Amazon RDS 控制台的导航窗格中，选择**数据库**，然后选择要修改的数据库实例。

1. 选择**修改**。将显示**修改数据库实例**页面。
**注意**  
只有在数据库完成创建和备份（这可能需要几分钟时间）之后，**修改**选项才可用。

1. 在**修改数据库实例**页面上，导航到**其他配置**，然后将**数据库参数组**更改为您的参数组。如果列表中没有您的参数组，请检查该参数组是否使用正确的数据库版本创建。

1. 选择**继续**，然后查看修改摘要。

1. 选择**立即应用**以立即应用更改。

1. 选择**修改数据库实例**以保存更改。

有关参数组的更多信息，请参阅[使用参数组](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)。

**注意**  
您也可以将 Amazon Aurora PostgreSQL 数据库 AWS 与大型机现代化配合使用，但没有免费套餐选项。有关更多信息，请参阅[使用 Amazon Aurora postgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)。

## 步骤 3：创建和配置 AWS KMS key
<a name="tutorial-runtime-mf-kms"></a>

要安全地存储 Amazon RDS 实例的凭证，请先创建一个 AWS KMS key。

**要创建 AWS KMS key**

1. 打开 [Key Management Service 控制台](https://console.aws.amazon.com/kms/home)。

1. 选择**创建密钥**。

1. 对于密钥类型，保留**对称**默认值，对于密钥用途，保留**加密和解密**默认值。

1. 选择**下一步**。

1. 为该密钥指定一个**别名**（例如 `MicroFocus-Tutorial-RDS-Key`）和一个描述（可选）。

1. 选择**下一步**。

1. 通过选中您的用户或角色旁边的复选框来分配密钥管理员。

1. 选择**下一步**。

1. 通过选中您的用户或角色旁边的复选框来分配密钥使用权限。

1. 选择**下一步**。

1. 在查看屏幕上，编辑**密钥策略**，然后**在现有的“声明”数组中**输入以下内容：

   ```
   {
        "Sid" : "Allow access for Mainframe Modernization Service",
        "Effect" : "Allow",
           "Principal" : {
              "Service" : "m2.amazonaws.com"
                    },
         "Action" : "kms:Decrypt",
         "Resource" : "*"
   },
   ```

   此策略使用此特定密钥策略授予 AWS 大型机现代化解密权限。

1. 选择**完成**以创建密钥。

有关更多信息，请参阅《 AWS Key Management Service 开发人员指南》中的[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

## 步骤 4：创建和配置 AWS Secrets Manager 数据库密钥
<a name="tutorial-runtime-mf-secret"></a>

现在使用 AWS Secrets Manager 和安全地存储数据库凭据 AWS KMS key。

**创建和配置 AWS Secrets Manager 数据库密钥**

1. 打开 [Secrets Manager 控制台](https://console.aws.amazon.com/secretsmanager/)。

1. 在导航窗格中，选择**密钥**。

1. 在**密钥**中，选择**存储新密钥**。

1. 将**密钥类型**设置为 **Amazon RDS 数据库的凭证**。

1. 输入您在创建数据库时指定的**凭证**。

1. 在**加密密钥**下，选择您在步骤 3 中创建的密钥。

1. 在**数据库**部分中，选择您为本教程创建的数据库，然后选择**下一步**。

1. 在**密钥名称**下，输入名称（例如 `MicroFocus-Tutorial-RDS-Secret`）和描述（可选）。

1. 在**资源权限**部分，选择**编辑权限**，然后将内容替换为以下策略：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect" : "Allow",
               "Principal" : {
                   "Service" : "m2.amazonaws.com"
               },
               "Action" : "secretsmanager:GetSecretValue",
               "Resource" : "*"
           }
       ]
   }
   ```

------

1. 选择**保存**。

1. 在后续屏幕中选择**下一步**，然后选择**存储**。

## 第 5 步：将 SSLMode 添加到密钥中
<a name="tutorial-runtime-mf-ssl-mode"></a>

**将 SSLMode 添加到密钥中**

1. 刷新密钥列表以查看新密钥。

1. 在步骤 4 中选择新创建的密钥，并记下，`Secret ARN`因为你需要在本教程的后面部分使用它。

1. 在密钥的**概述**选项卡中，选择**检索密钥值**。

1. 选择**编辑**，然后选择**添加行**。

1. 添加**值**为 `verify-full` 的 `sslMode` **密钥**：  
![\[输入 Secrets Manager Secret 的 key/value 配对。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-carddemo-secret.png)

1. 选择**保存**。

## 步骤 6：创建运行时环境
<a name="tutorial-runtime-mf-env"></a>

**创建运行时环境**

1. 使用 [AWS Mainframe Modernization 控制台](https://us-east-2.console.aws.amazon.com/m2/home?region=us-east-2#/landing)。

1. 在导航窗格中，选择**环境**。然后，选择**创建环境**。  
![\[“环境”选项卡中的“创建环境”页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-environment.png)

1. 在**指定基本信息**下，

   1. 为“环境名称”输入 `MicroFocus-Environment`。

   1. 在引擎选项下，确保选择了 **Micro Focus（火箭）**。

   1. 选择最新的 **Micro Focus（火箭）版本**。

   1. 选择**下一步**。  
![\[运行时环境名称、描述和引擎版本部分。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-create-env-basic.png)

1. 配置环境

   1. 在**可用性**下，选择**高可用性集群**。

   1. 在**资源**下，选择 **M2.c5.large** 或 **M2.m5.large** 作为实例类型，并选择所需的实例数量。最多可以指定两个实例。

   1. 在**安全和网络**下，选择**支持公开访问部署到此环境的应用程序**，并至少选择两个公有子网。

   1. 选择**下一步**。  
![\[“指定配置”页面（已选择“高可用性集群”和特定的实例类型）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/env-config.png)

1. 在**附加策略**页面上，选择**下一步**。

1. 在**计划维护**页面上，选择**无首选项**，然后选择**下一步**。  
![\[环境的“计划维护”页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-env-maintenance.png)

1. 在**审核和创建**页面上，审核您为运行时环境提供的所有配置，然后选择**创建环境**。  
![\[“审核和创建”页面（包含之前的选择）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-env-review.png)

创建环境后，会出现一个横幅，显示`Environment name was created successfully`，并且**状态**字段更改为**可用**。环境创建过程需要几分钟，但您可以在此过程运行时继续执行后续步骤。

![\[已成功创建环境消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-env-confirm.png)


## 步骤 7：创建应用程序
<a name="tutorial-runtime-mf-app"></a>

**创建应用程序**

1. 在导航窗格中，选择**应用程序**。选择**创建应用程序**。  
![\[“应用程序”页面（显示“创建应用程序”按钮）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/app-create.png)

1. 在 “**创建应用程序**” 页面的 “**指定基本信息**” 下，输入应用程序名称，然后在 `MicroFocus-CardDemo` “**引擎类型**” 下确保选择 **Micro Focus（Rocket）**。然后选择**下一步**。  
![\[选择了 Rocket Software 引擎类型的 “创建应用程序” 页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-create-app.png)

1. 在**指定资源和配置**下，选择“使用内联编辑器指定应用程序定义及其资源和配置”选项。  
![\[“指定资源和配置”页面（在线编辑器中显示了一个 JSON 文件）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-config.png)

   在编辑器中输入以下应用程序定义：

   ```
   {
     "template-version": "2.0",
     "source-locations": [
       {
         "source-id": "s3-source",
         "source-type": "s3",
         "properties": {
           "s3-bucket": "yourname-aws-region-carddemo",
           "s3-key-prefix": "CardDemo_runtime"
         }
       }
     ],
     "definition": {
       "listeners": [
         {
           "port": 6000,
           "type": "tn3270"
         }
       ],
       "dataset-location": {
         "db-locations": [
           {
             "name": "Database1",
             "secret-manager-arn": "arn:aws:secretsmanager:Region:123456789012:secret:MicroFocus-Tutorial-RDS-Secret-xxxxxx"
           }
         ]
       },
       "batch-settings": {
         "initiators": [
           {
             "classes": [
                  "A",
                  "B"
               ],
             "description": "initiator_AB...."
           },
           {
             "classes": [
                   "C",
                   "D"
                ],
             "description": "initiator_CD...."
           }
         ],
         "jcl-file-location": "${s3-source}/catalog/jcl"
       },
       "cics-settings": {
         "binary-file-location": "${s3-source}/loadlib",
         "csd-file-location": "${s3-source}/rdef",
         "system-initialization-table": "CARDSIT"
       },
       "xa-resources": [
         {
           "name": "XASQL",
           "secret-manager-arn": "arn:aws:secretsmanager:Region:123456789012:secret:MicroFocus-Tutorial-RDS-Secret-xxxxxx",
           "module": "${s3-source}/xa/ESPGSQLXA64.so"
         }
       ]
     }
   }
   ```
**注意**  
此文件可能随时更改。

1. 在 **source-locations** 的 **properties** 对象中编辑应用程序 JSON，如下所示：

   1. 将 `s3_bucket` 的值替换为在步骤 1 中创建的 Amazon S3 存储桶的名称。

   1. 将的值替换为您上传 CardDemo 示例文件的文件夹（key prefix）。`s3-key-prefix`如果您将 `CardDemo` 目录直接上传到 Amazon S3 存储桶，则无需更改 `s3-key-prefix`。

   1. 将两个 `secret-manager-arn` 值替换为您在步骤 4 中创建的数据库密钥的 ARN。  
![\[JSON 应用程序定义。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-resources.png)

   有关应用程序定义的更多信息，请参阅 [火箭软件（前身为 Micro Focus）应用程序定义](applications-m2-definition.md#applications-m2-definition-mf)。

1. 选择**下一步**以继续。

1. 在**审核和创建**页面上，检查您提供的信息，然后选择**创建应用程序**。

![\[应用程序已成功创建消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-confirm.png)


创建应用程序后，会出现一条横幅，显示`Application name was created successfully`。**状态**字段会变为**可用**。

## 步骤 8：部署应用程序
<a name="tutorial-runtime-mf-deploy"></a>

**部署应用程序**

1. 在导航窗格中，选择**应用程序**，然后选择 `MicroFocus-CardDemo`。

1. 在**部署应用程序**下，选择**部署**。  
![\[MicroFocus-CardDemo 应用程序部署。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-deploy.png)

1. 选择您之前创建的应用程序和环境的最新版本，然后选择**部署**。  
![\[“部署应用程序和环境”页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-env-deploy.png)

成功部署 CardDemo 应用程序后，状态将更改为 “就**绪**”。

![\[在环境上部署应用程序的确认页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-env-confirm.png)


## 步骤 9：导入数据集
<a name="tutorial-runtime-mf-import"></a>

**导入数据集**

1. 在导航窗格中，选择**应用程序**，然后选择应用程序。

1. 选择**数据集**选项卡。然后选择**导入**。

1. 选择**导入和编辑 JSON 配置**，然后选择**复制并粘贴您自己的 JSON** 选项。  
![\[通过复制您自己的 JSON 脚本来导入数据集。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-import.png)

1. 复制并粘贴以下 JSON，但暂不选择“提交”。此 JSON 包含演示应用程序所需的所有数据集，但需要您的 Amazon S3 存储桶详细信息。

   ```
   {
       "dataSets": [
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 11,
                               "offset": 0
                           }
                       }
                   },
                   "recordLength": {
                       "min": 300,
                       "max": 300
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.CARDDATA.VSAM.AIX.PATH",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 11,
                               "offset": 16
                           }
                       }
                   },
                   "recordLength": {
                       "min": 150,
                       "max": 150
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.CARDDATA.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.CARDDATA.VSAM.KSDS",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 16,
                               "offset": 0
                           }
                       }
                   },
                   "recordLength": {
                       "min": 150,
                       "max": 150
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.CARDDATA.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.CARDXREF.VSAM.KSDS",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 16,
                               "offset": 0
                           }
                       }
                   },
                   "recordLength": {
                       "min": 50,
                       "max": 50
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.CARDXREF.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.CUSTDATA.VSAM.KSDS",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 9,
                               "offset": 0
                           }
                       }
                   },
                   "recordLength": {
                       "min": 500,
                       "max": 500
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.CUSTDATA.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.CARDXREF.VSAM.AIX.PATH",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 11,
                               "offset": 25
                           }
                       }
                   },
                   "recordLength": {
                       "min": 50,
                       "max": 50
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.CARDXREF.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 16,
                               "offset": 0
                           }
                       }
                   },
                   "recordLength": {
                       "min": 350,
                       "max": 350
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS.DAT"
               }
           },
           {
               "dataSet": {
                   "storageType": "Database",
                   "datasetName": "AWS.M2.CARDDEMO.USRSEC.VSAM.KSDS",
                   "relativePath": "DATA",
                   "datasetOrg": {
                       "vsam": {
                           "format": "KS",
                           "encoding": "A",
                           "primaryKey": {
                               "length": 8,
                               "offset": 0
                           }
                       }
                   },
                   "recordLength": {
                       "min": 80,
                       "max": 80
                   }
               },
               "externalLocation": {
                   "s3Location": "s3://<s3-bucket-name>/CardDemo_runtime/catalog/data/AWS.M2.CARDDEMO.USRSEC.VSAM.KSDS.DAT"
               }
           }
       ]
   }
   ```

1. 将每次出现的`<s3-bucket-name>`（有八个）替换为包含该 CardDemo 文件夹的 Amazon S3 存储桶的名称，例如`your-name-aws-region-carddemo`。
**注意**  
要复制 Amazon S3 中该文件夹的 Amazon S3 URI，请选择该文件夹，然后选择**复制 Amazon S3 URI**。

1. 选择**提交**。

   导入完成后，将出现一条横幅，显示以下消息：`Import task with resource identifier name was completed successfully.` 将显示导入的数据集的列表。  
![\[成功导入数据集。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-import-success.png)

您还可以通过选择**数据集**选项卡上的**导入历史记录**来查看所有数据集导入的状态。

## 步骤 10：启动应用程序
<a name="tutorial-runtime-mf-start"></a>

**启动应用程序**

1. 在导航窗格中，选择**应用程序**，然后选择应用程序。

1. 选择**启动应用程序**。  
![\[CardDemo 应用程序页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-app-start.png)

当 CardDemo 应用程序开始成功运行时，会出现一条横幅，上面写着以下消息：`Application name was started successfully`。**状态**字段会变为**正在运行**。

![\[应用程序启动成功消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/m2-mf-startapp-confirm.png)


## 步骤 11：连接到 CardDemo CICS 应用程序
<a name="tutorial-runtime-mf-connect"></a>

在连接之前，请确保您为应用程序指定的 VPC 和安全组与应用于您将连接的网络接口的 VPC 和安全组相同。

要配置 TN3270 连接，还需要应用程序的 DNS 主机名和端口。

**使用终端模拟器配置应用程序并将其连接到大型机**

1. 打开 AWS 大型机现代化控制台，选择**应用程序**，然后选择`MicroFocus-CardDemo`。

1. 选择复制图标来复制 **DNS 主机名**。另外，请务必记下**端口**号。

1. 启动终端模拟器。本教程使用 Micro Focus Rumba\$1。
**注意**  
配置步骤因模拟器而异。

1. 选择**大型机显示**。  
![\[Rumba+ 欢迎屏幕。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-mainframe.png)

1. 选择**连接**，然后选择**配置**。  
![\[Rumba+ 欢迎屏幕。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-configure.png)

1. 在**已安装的接口**下，选择 `TN3270`，然后在**连接**菜单下再次选择 `TN3270`。  
![\[连接到已安装的接口。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-connection.png)

1. 选择**插入**，然后粘贴应用程序的 `DNS Hostname`。为 **Telnet 端口**指定 `6000`。  
![\[指定主机名并设置端口。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-dns-hostname.png)
**注意**  
如果您在浏览器中使用 AWS AppStream 2.0，并且在粘贴值时遇到困难，请参阅 [ AppStream 2.0 用户问题疑难解答](https://docs.aws.amazon.com/appstream2/latest/developerguide/troubleshooting-user-issues.html#copy-paste-doesnt-work)。

1. 在**连接**下，选择**高级**，然后选择**发送保持活动**和**发送 NOP**，然后为**间隔**输入 **180**。
**注意**  
将 TN3270 终端上的保活设置配置为至少 180 秒有助于确保 Network Load Balancer 不会中断您的连接。  
![\[高级配置屏幕。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-advanced.png)

1. 选择**连接**。
**注意**  
如果连接失败：  
如果您使用的是 AppStream 2.0，请确认为应用程序环境指定的 VPC 和安全组与 AppStream 2.0 队列相同。
使用 VPC Reachability Analyzer 分析连接。您可以通过[控制台](https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer)访问 Reachability Analyzer。
作为诊断步骤，请尝试添加或更改应用程序的安全组入站规则，以支持来自任何来源（即 CIDR Block 0.0.0.0/0）的端口 6000 流量。如果连接成功，则表明是安全组阻止了您的流量。将安全组来源更改为更具体的来源。有关安全组的更多信息，请参阅[安全组基础知识](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html#security-group-basics)。

1. 对于用户名，请输入 `USER0001`，对于密码，请输入 `password`。
**注意**  
在 Rumba 中，“清除” 的默认值为 ctrl-shift-z，“重置” 的默认值为 ctrl-r。  
![\[为您的 CardDemo 应用程序设置用户名和密码。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-username-password.png)

1. 成功登录后，您可以浏览 CardDemo应用程序。

1. 对于“账户视图”，请输入 `01`。  
![\[查看您的 CardDemo 应用程序。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-carddemo.png)

1. 对于“账户编号”，请输入 `00000000010`，并按键盘上的 **Enter**。
**注意**  
其他有效账户为 `0000000011` 和 `00000000020`。  
![\[管理您的 CardDemo 应用程序。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-cics-carddemo-account.png)

1. 按 **F3** 可退出菜单，按 **F3** 可退出交易。

## 清理 资源
<a name="tutorial-runtime-mf-clean"></a>

如果您不再需要为本教程创建的资源，请将其删除，以免产生额外费用。为此，请完成以下步骤：
+ 如有必要，请停止该应用程序。
+ 删除应用程序。有关更多信息，请参阅 [删除 AWS Mainframe Modernization 应用程序](applications-m2-delete.md)。
+ 删除运行时环境。有关更多信息，请参阅 [删除 AWS 大型机现代化运行时环境删除运行时环境](delete-environments-m2.md)。
+ 删除您为本教程创建的 Amazon S3 存储桶。有关更多信息，请参阅《Amazon S3 用户指南》**中的[删除存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。
+ 删除您为本教程创建的 AWS Secrets Manager 密钥。有关更多信息，请参阅[删除密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html)。
+ 删除您为本教程创建的 KMS 密钥。有关更多信息，请参阅[删除 AWS KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)。
+ 删除您为本教程创建的 Amazon RDS 数据库。有关更多信息，请参阅《Amazon RDS 用户指南》**中的[删除 EC2 实例和数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html#CHAP_GettingStarted.Deleting.PostgreSQL)。
+ 如果您为端口 6000 添加了安全组规则，请删除该规则。

## 后续步骤
<a name="tutorial-runtime-mf-next"></a>

要了解如何为现代化应用程序设置开发环境，请参阅[教程：设置 AppStream 2.0 以与 Rocket Enterprise Analyzer 和 Rocket Enterprise Developer 配合使用](https://docs.aws.amazon.com/m2/latest/userguide/set-up-appstream-mf.html)。