

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

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

# 使用 Rocket 软件（前身为 Micro Focus）重塑应用程序平台
<a name="replatforming-m2"></a>

本指南介绍了使用大型机现代化解决方案对大型机应用程序进行 AWS 平台改造的 end-to-end过程。 AWS它描述了所有任务，并包括有关在 Amazon EC2 上配置和操作 AWS 大型机现代化运行时的信息，从初始设置和分析到构建、测试和部署现代化应用程序。 AWS此外，还涵盖了一些高级主题，例如处理遗留数据结构、使用模板和预定义的项目，以及为流会话设置自动化。

**Topics**
+ [在亚马逊 EC2 上设置 Rocket Software（前身为 Micro Focus）](mf-runtime-setup.md)
+ [为 Rocket Enterprise Analyzer（前身为 Micro Focus）和 Rocket](set-up-automation-m2.md)
+ [在 Rocket Enterprise Developer（前 Micro Focus Enterprise](view-datasets-tables-m2.md)
+ [在企业开发人员中使用 Rocket Software（以前称为 Micro Focus）数据文件工具编辑数据](edit-datasets-m2.md)
+ [火箭软件（前身为 Micro Focus）教程](tutorials-mf.md)
+ [AWS 大型机现代化中可用的批处理工具](utilities-m2.md)

# 在亚马逊 EC2 上设置 Rocket Software（前身为 Micro Focus）
<a name="mf-runtime-setup"></a>

AWS Mainframe Modernization 提供了多个亚马逊机器映像 (AMI)，其中包括 Rocket Software（前身为 Micro Focus）许可产品。这些 AMI 允许您快速配置亚马逊弹性计算云 (Amazon EC2) 实例，以支持您控制和管理的 Rocket Software 环境。本主题提供了访问和启动这些内容所需的步骤 AMIs。使用它们完全 AMIs 是可选的，不需要他们来完成本用户指南中的教程。

**Topics**
+ [设置 Rocket 软件（前身为 Micro Focus）（在 Amazon EC2 上）的先决条件](mf-runtime-setup-prereq.md)
+ [为 Amazon S3 创建 Amazon VPC 端点：](mf-runtime-setup-vpc.md)
+ [请求针对账户更新支持列表](mf-runtime-setup-allowlist.md)
+ [创建 AWS Identity and Access Management 角色](mf-runtime-setup-iam-role.md)
+ [授予 License Manager 所需权限](mf-runtime-setup-lic.md)
+ [订阅亚马逊机器映像](mf-runtime-setup-ami.md)
+ [启动 AWS Mainframe Modernization 火箭软件（前身为 Micro Focus）实例](mf-runtime-setup-mf-instance.md)
+ [无法访问互联网的子网或 VPC](mf-runtime-setup-no-access.md)

# 设置 Rocket 软件（前身为 Micro Focus）（在 Amazon EC2 上）的先决条件
<a name="mf-runtime-setup-prereq"></a>

在设置 Rocket Software（在 Amazon EC2 上）时，请确保满足以下先决条件。
+ 对要在其中创建 Amazon EC2 实例的账户具有管理员访问权限。
+ 确定将在 AWS 区域 何处创建 Amazon EC2 实例并验证该 AWS Mainframe Modernization 服务是否可用。请参阅[按区域划分的AWS 服务](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。请务必选择可提供该服务的区域。
+ 确定要在其中创建 Amazon EC2 实例的 Amazon Virtual Private Cloud (Amazon VPC)。

# 为 Amazon S3 创建 Amazon VPC 端点：
<a name="mf-runtime-setup-vpc"></a>

在本节中，创建一个供 Amazon S3 使用的 Amazon VPC 端点。设置此端点将对稍后设置 VPC 的互联网访问有帮助。

1. 在 AWS 管理控制台中导航到 Amazon VPC。

1. 在导航窗格中，选择**端点**。

1. 选择 **创建端点**。  
![\[VPC 端点（“创建端点”可用）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-s3-endpoint_1.jpg)

1. 输入一个有意义的名称标签，例如：“Micro-Focus-License-S3”。

1. 对于“服务类别”，选择 **AWS 服务**。  
![\[端点设置（已输入示例名称标签）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-s3-endpoint_2.png)

1. 在**服务**下搜索 Amazon S3 网关服务：**com.amazonaws.[region].s3**。

   对于 `us-west-1`，请使用：`com.amazonaws.us-west-1.s3`。

1. 选择**网关**服务。  
![\[服务（已选择 Amazon S3 网关服务）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-s3-endpoint_3.png)

1. 对于 VPC，请选择您要使用的 VPC。  
![\[VPC（已输入 VPC）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-s3-endpoint_4.png)

1. 选择 VPC 的所有路由表。  
![\[路由表（已选择所有路由表）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-s3-endpoint_5.png)

1. 在**策略**下，选择**完全访问权限**。  
![\[策略（已选择“完全访问权限”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-s3-endpoint_6.png)
**注意**  
如果您决定创建自定义策略，请确保该策略可以访问 Amazon S3 存储桶 `s3://aws-supernova-marketplace-<region>-prod`。

1. 选择**创建端点**。

# 请求针对账户更新支持列表
<a name="mf-runtime-setup-allowlist"></a>

请与您的 AWS 代表合作，将您的账户列入许可名 AWS Mainframe Modernization AMIs单。并提供以下信息：
+  AWS 账户 身份证。
+ 创建 Amazon VPC 终端节点 AWS 区域 的位置。
+ 在[为 Amazon S3 创建 Amazon VPC 端点：](mf-runtime-setup-vpc.md)中创建的 Amazon VPC Amazon S3 端点 ID。此处是为 **com.amazonaws.[region].s3 Gateway** 端点创建的 `vpce-xxxxxxxxxxxxxxxxx` ID。
+ 所有 Rocket 软件企业套件 AMI Amazon EC2 实例所需的许可证数量。

  每个 CPU 内核（对于大多数 Amazon EC2 实例，每 2 个 vCPU）需要一个许可证。

  有关更多信息，请参阅[优化 CPU 选项](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-compute-optimized)。

  将来，可以通过以下方式调整所请求的号码 AWS。

**注意**  
联系您的 AWS 代表，或者联系 AWS 支持 谁将代表您打开允许名单请求的支持请求。您不能直接申请，请求可能需要几天才能完成。

# 创建 AWS Identity and Access Management 角色
<a name="mf-runtime-setup-iam-role"></a>

创建供 A AWS Mainframe Modernization mazon EC2 实例使用的 AWS Identity and Access Management 策略和角色。通过 IAM 控制台创建角色会创建具有相同名称的关联实例配置文件。将此实例配置文件分配给 Amazon EC2 实例允许分配 Rocket 软件许可证。有关实例配置文件的更多信息，请参阅[使用 IAM 角色为 Amazon EC2 实例上运行的应用程序授予权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)。

## 创建 IAM 策略
<a name="mf-runtime-setup-iam-role-policy"></a>

首先创建一个 IAM 策略并将其附加到角色。

1. 导航 AWS Identity and Access Management 到 AWS 管理控制台。

1. 选择**策略**，然后选择**创建策略**。  
![\[“策略”页面（未应用任何筛选条件）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-policy_1.png)

1. 选择 **JSON** 选项卡。  
![\[“JSO”选项卡（无内容）\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-policy_2.png)

1. 将以下 JSON `us-west-1` 中的替换为定义 Amazon S3 终端节点 AWS 区域 的位置，然后将 JSON 复制并粘贴到策略编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "S3WriteObject",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::aws-supernova-marketplace-us-west-1-prod/*"
               ]
           },
           {
               "Sid": "OtherRequiredActions",
               "Effect": "Allow",
               "Action": [
                   "sts:GetCallerIdentity",
                   "ec2:DescribeInstances",
                   "license-manager:ListReceivedLicenses"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------
**注意**  
Sid `OtherRequiredActions` 下的操作不支持资源级别的权限，必须在资源元素中指定 `*`。  
![\[“JSON”选项卡（已输入策略并突出显示 us-west-1）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-policy_3.png)

1. 选择**下一步：标签**。  
![\[标签（未输入数据）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-policy_4.png)

1. （可选）输入任何标签，然后选择**下一步：审核**。

1. 输入策略的名称，例如“Micro-Focus-Licensing-policy”。（可选）输入描述，例如 “包含此策略的角色必须附加到每个 AWS Mainframe Modernization Amazon EC2 实例”。  
![\[审核输入的策略名称和描述。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-policy_5.png)

1. 选择**创建策略**。

## 创建 IAM 角色
<a name="mf-runtime-setup-iam-role-create"></a>

创建 IAM 策略后，您可以创建一个 IAM 角色并将其附加到该策略。

1. 在 AWS 管理控制台中，导航到 IAM。

1. 选择**角色**，然后选择**创建角色**。  
![\[角色（未应用筛选条件）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-role_1.png)

1. 保持**可信实体类型**为 **AWS 服务**，然后选择 **EC2** 常见用例。  
![\[选择已选择 AWS 服务且已选择 EC2 的可信实体\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-role_2.png)

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

1. 在过滤条件中输入“Micro”，然后按 Enter 来应用该过滤条件。

1. 选择刚刚创建的策略，例如“Micro-Focus-Licensing-policy”。

1. 选择**下一步**。  
![\[添加权限（选中 Micro Focus 策略）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-role_3.png)

1. 输入角色名称，例如“Micro-Focus-Licensing-role”。

1. 将描述替换为您自己的描述，例如“允许具有此角色的 Amazon EC2 实例获取 Micro Focus 许可证”。  
![\[角色详细信息（已输入名称和描述）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-role_4.png)

1. 在**步骤 1：选择可信实体**下，查看 JSON 并确认其具有以下值：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

------
**注意**  
Effect、Action 和 Principal 的顺序不重要。

1. 确认**步骤 2：添加权限**显示了您的许可策略。  
![\[步骤 2：添加权限（已选择许可策略）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-create-iam-role_6.png)

1. 选择**创建角色**。

在完成允许列表申请之后，继续执行后续步骤。

# 授予 License Manager 所需权限
<a name="mf-runtime-setup-lic"></a>

您需要授予设置 Rocket Software 运行时引擎的权限（在 Amazon EC2 上）。 AWS License Manager 

1. 导航 AWS License Manager 到 AWS 管理控制台。  
![\[AWS License Manager 主页。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-license-manager_1.png)

1. 选择**开始使用 AWS License Manager**。

1. 如果您看到以下弹出窗口，请查看详细信息，然后选中复选框并按**授予权限**。  
![\[IAM 权限一次性设置\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-license-manager_2.png)

# 订阅亚马逊机器映像
<a name="mf-runtime-setup-ami"></a>

订阅产品后，您可以从该 AWS Marketplace 产品的 AMI 启动实例。您还可以在设置 Rocket Software（前身为 Micro Focus）运行时引擎（在 Amazon EC2 上）时管理已订阅的 AMI。

1. 导航到中的 “ AWS Marketplace 订阅” AWS 管理控制台。

1. 选择**管理订阅**。  
![\[AWS Marketplace 主页。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-ami-subscription_1.png)

1. 复制以下链接之一并将其粘贴到浏览器地址栏中。
**注意**  
仅选择您已获授权使用的产品之一的链接。
按照[请求针对账户更新支持列表](mf-runtime-setup-allowlist.md)页面使用这些链接，确保您的账户被列入许可名单。
   + 企业服务器：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-g5emev63l7blc) /prodview-g5emev63l7blc
   + 适用于 Windows 的企业服务器：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-lwybsiyikbhc2) /prodview-lwybsiyikbhc2
   + 企业开发人员：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-77qmpr42yzxwk) /prodview-77qmpr42yzxwk
   + Visual Studio 2022 的企业开发人员：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-m4l3lqiszo6cm) /prodview-m4l3lqiszo6cm
   + 企业分析器：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-tttheylcmcihm) /prodview-ttheylcmcihm
   + 适用于 Windows 的企业版构建工具：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-2rw35bbt6uozi) /prodview-2rw35bbt6uozi
   + 企业存储过程：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-zoeyqnsdsj6ha) /prodview-zoeyqnsdsj6ha
   + 使用 SQL Server 的企业存储过程 2019：[https://aws.amazon.com/marketplace/pp](https://aws.amazon.com/marketplace/pp/prodview-ynfklquwubnz4) /prodview-ynfklquwubnz4

1. 选择**继续订阅**。  
![\[中的企业服务器产品 AWS Marketplace。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-ami-subscription_2.png)

1. 如果可以接受“条款和条件”，请选择**接受条款**。  
![\[订阅条款和条件。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-ami-subscription_3.png)

1. 处理此订阅可能需要几分钟时间。  
![\[订阅待处理消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-ami-subscription_4.png)

1. 显示感谢消息后，复制并粘贴步骤 3 中的下一个链接以继续添加订阅。  
![\[订阅感谢消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-ami-subscription_5.png)

1. 当 **“管理订阅”** 显示所有已订阅 AMIs内容时停止。
**注意**  
面板首选项（齿轮图标）设置为以表格形式显示。  

![\[使用已订阅列表管理订阅 AMIs。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-ami-subscription_6.png)


# 启动 AWS Mainframe Modernization 火箭软件（前身为 Micro Focus）实例
<a name="mf-runtime-setup-mf-instance"></a>

创建终端节点、IAM 策略、IAM 角色并订阅后 AMIs，您就可以在中启动 Rocke AWS Mainframe Modernization t Software（Micro Focus）实例了。 AWS 管理控制台

1. 导航到中的 “ AWS Marketplace 订阅” AWS 管理控制台。

1. 找到要启动的 AMI，然后选择**启动新实例**。  
![\[管理订阅（Enterprise Server 和 Enterprise Analyzer 可启动）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_1.png)

1. 在“启动新实例”对话框中，确保选择允许列表中的区域。

1. 按**继续通过 EC2 启动**。
**注意**  
以下示例显示了企业开发者 AMI 的启动，但所有企业开发者 AMI 的流程都是一样的 AWS Mainframe Modernization AMIs。  

![\[启动新实例。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_2.png)


1. 输入服务器的名称。

1. 选择一个实例类型。

   所选的实例类型应由项目性能和成本要求决定。以下是建议的起点：
   + 对于 Enterprise Analyzer，选择 r6i.xlarge
   + 对于 Enterprise Developer，选择 r6i.large
   + 对于 Enterprise Server 的独立实例，选择 r6i.xlarge
   + 对于具有横向扩展功能的 Rocket 软件性能可用性集群 (PAC)，r6i.large
**注意**  
屏幕截图中的“应用程序和操作系统映像”部分已折叠。  
![\[启动实例（已输入名称和实例类型）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_3.png)

1. 选择或创建（并保存）密钥对（未显示）。

   有关密钥对和 Linux 实例的更多信息，请参阅 [Amazon EC2 密钥对和 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。

   有关密钥对和 Windows 实例的更多信息，请参阅 [Amazon EC2 密钥对和 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html)。

1. 编辑“网络设置”并**选择允许列表中的 VPC** 和相应的子网。

1. **选择或创建安全组**。如果这是企业服务器 EC2 实例，则通常允许流向端口 86 和 10086 的 TCP 流量来管理 Rocket Software 配置。

1. （可选）为 Amazon EC2 实例配置存储。

1. 重要提示 – 展开“高级详细信息”，然后在“IAM 实例配置文件”下选择之前创建的许可角色，例如“Micro-Focus-Licensing-role”。
**注意**  
如果遗漏此步骤，您可以在创建实例后，从 EC2 实例“操作”菜单的“安全”选项中修改 IAM 角色。  
![\[高级详细信息（已输入 IAM 实例配置文件）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_4.png)

1. 审核“摘要”并按**启动实例**。  
![\[摘要（包含所选选项）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_5.png)

1. 如果选择的虚拟服务器类型无效，则实例启动将失败。

   如果发生这种情况，请选择**编辑实例配置**并更改实例类型。  
![\[“正在启动实例”进度消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_6.png)

1. 显示“成功”消息后，选择**连接到实例**以获取连接详细信息。  
![\[实例启动成功消息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_7.png)

1. 或者，在 AWS 管理控制台中导航到 **EC2**。

1. 选择**实例**以查看新实例的状态。  
![\[带有状态的实例列表。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-launch-instance_8.png)

# 无法访问互联网的子网或 VPC
<a name="mf-runtime-setup-no-access"></a>

如果子网或 VPC 没有出站互联网访问权限，请进行以下额外更改。

License Manager 需要访问以下 AWS 服务：
+ com.amazonaws。 *region*.s3
+ com.amazonaws。 *region*.ec2
+ com.amazonaws。 *region*. 许可证管理器
+ com.amazonaws。 *region*.sts

之前的步骤定义了 com.amazonaws。 *region*.s3 服务作为网关终端节点。此端点需要一个路由表条目，用于所有无法访问互联网的子网。

另外三项服务将被定义为接口端点。

**Topics**
+ [为 Amazon S3 端点添加路由表条目](#mf-runtime-setup-no-access-route-table)
+ [定义所需的安全组](#mf-runtime-setup-no-access-security-group)
+ [创建服务端点](#mf-runtime-setup-no-access-endpoints)

## 为 Amazon S3 端点添加路由表条目
<a name="mf-runtime-setup-no-access-route-table"></a>

1. 导航到**中的 VPC**， AWS 管理控制台 然后选择**子网**。

1. 选择将在其中创建 Amazon EC2 实例的子网，然后选择“路由表”选项卡。

1. 记录路由表 ID 的几位尾部数字。例如，下图中的 6b39。  
![\[路由表详细信息。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_1.png)

1. 在导航窗格中，选择**端点**。

1. 选择之前创建的端点，然后从端点的“路由表”选项卡或从“操作”下拉列表中选择**管理路由表**。

1. 选择标有之前记录数字的路由表，然后按“修改路由表”。  
![\[已选择路由表。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_2.png)

## 定义所需的安全组
<a name="mf-runtime-setup-no-access-security-group"></a>

Amazon EC2 和 Lic AWS STS ense Manager 服务通过端口 443 通过 HTTPS 进行通信。这种通信是双向的，需要入站和出站规则来允许实例与服务通信。

1. 在 AWS 管理控制台中，导航到 Amazon VPC。

1. 在导航栏中，找到**安全组**，然后选择**创建安全组**。

1. 输入安全组名称和描述，例如“Inbound-Outbound HTTPS”。

1. 在 VPC 选择区域中按“X“来**移除默认 VPC**，然后选择包含 S3 端点的 VPC。

1. 添加一条入站规则，**在端口 443 上允许来自任何源的 TCP 流量**。
**注意**  
通过限制“源”，可以进一步限制入站（和出站规则）。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[使用安全组控制 AWS 资源流量](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。  

![\[基本详细信息（已输入入站规则）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_3.png)


1. 按**创建安全组**。

## 创建服务端点
<a name="mf-runtime-setup-no-access-endpoints"></a>

重复以下过程三次，即针对每个服务各执行一次。

1. 导航到中的 Amazon VPC， AWS 管理控制台 然后选择**终端节点**。

1. 按**创建端点**。

1. 输入名称，例如“Micro-Focus-License-EC2”、“Micro-Focus-License-STS”或“Micro-Focus-License-STS”。

1. 对于“服务类别”，选择 **AWS 服务**。  
![\[已选择 AWS 服务的终端节点设置。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_4.png)

1. 在“服务”下搜索匹配的接口服务，即以下服务之一：
   + “com.amazonaws。 *region*.ec2”
   + “com.amazonaws。 *region*.sts”
   + “com.amazonaws。 *region*.license-Manager”

   例如：
   + “com.amazonaws.us-west-1.ec2”
   + “com.amazonaws.us-west-1.sts”
   + “com.amazonaws.us-west-1.license-manager”

1. 选择匹配的接口服务。

   **com.amazonaws。 *region*.ec2**：  
![\[服务（已选择 Amazon EC2 接口服务）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_5.png)

   **com.amazonaws。 *region*.sts**:  
![\[已选择 AWS STS 接口服务的服务。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_6.png)

   **com.amazonaws。 *region*.license-Manager：**  
![\[服务（已选择 License Manager 接口服务）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_7.png)

1. 对于 VPC，选择实例的 VPC。  
![\[VPC（已选择实例的 VPC）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_8.png)

1. 为 VPC 选择**可用区**和**子网**。  
![\[子网（已选择 VPC 的可用区和子网）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_9.png)

1. 选择之前创建的安全组。  
![\[安全组（已选择安全组）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_10.png)

1. 在“策略”下，选择**完全访问权限**。  
![\[策略（已选择“完全访问权限”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/mf-no-internet_11.png)

1. 选择**创建端点**。

1. 为其余接口重复此过程。

# 为 Rocket Enterprise Analyzer（前身为 Micro Focus）和 Rocket
<a name="set-up-automation-m2"></a>

您可以在会话开始和结束时自动运行脚本，从而实现特定于您的客户环境的自动化。有关此 WorkSpaces 应用程序功能的更多信息，请参阅《*Amazon WorkSpaces 应用程序管理指南》中的 “使用会话脚本管理 AppStream * [2.0 用户的流媒体体验](https://docs.aws.amazon.com/appstream2/latest/developerguide/use-session-scripts.html)”。

此特征要求您至少具有以下版本的 Enterprise Analyzer 和 Enterprise Developer 映像：
+ `m2-enterprise-analyzer-v8.0.4.R1`
+ `m2-enterprise-developer-v8.0.4.R1`

**Topics**
+ [设置会话开始时的自动化](#set-up-automation-m2.start)
+ [设置会话结束时的自动化](#set-up-automation-m2.end)

## 设置会话开始时的自动化
<a name="set-up-automation-m2.start"></a>

如果要在用户连接到 WorkSpaces 应用程序时运行自动化脚本，请创建您的脚本并将其命名`m2-user-setup.cmd`。将脚本存储在用户的 “ WorkSpaces 应用程序主目录” 文件夹中。 AWS 大型机现代化提供的 WorkSpaces 应用程序映像在该位置查找具有该名称的脚本，如果存在，则运行该脚本。

**注意**  
脚本持续时间不能超过 WorkSpaces 应用程序设置的限制，目前为 60 秒。有关更多信息，请参阅《*Amazon WorkSpaces 应用程序管理指南》*中的 “在[流式传输会话开始之前运行脚本](https://docs.aws.amazon.com/appstream2/latest/developerguide/use-session-scripts.html#run-scripts-before-streaming-sessions-begin)”。

## 设置会话结束时的自动化
<a name="set-up-automation-m2.end"></a>

如果要在用户与 WorkSpaces 应用程序断开连接时运行自动化脚本，请创建您的脚本并命名它`m2-user-teardown.cmd`。将脚本存储在用户的 “ WorkSpaces 应用程序主目录” 文件夹中。 AWS 大型机现代化提供的 WorkSpaces 应用程序映像在该位置查找具有该名称的脚本，如果存在，则运行该脚本。

**注意**  
脚本持续时间不能超过 WorkSpaces 应用程序设置的限制，目前为 60 秒。有关更多信息，请参阅《*Amazon WorkSpaces 应用程序管理指南》*中的 “[流式传输会话结束后运行脚本](https://docs.aws.amazon.com/appstream2/latest/developerguide/use-session-scripts.html#run-scripts-after-streaming-sessions-end)”。

# 在 Rocket Enterprise Developer（前 Micro Focus Enterprise
<a name="view-datasets-tables-m2"></a>

您可以使用 Rocket Software（前身为 Micro Focus）运行时访问在 AWS 大型机现代化中部署的大型机数据集。您可以从 Rocket Enterprise Developer 实例中以表和列的形式查看迁移的数据集。通过这种方式查看数据集，您可以：
+ 对迁移的数据文件执行 `SQL SELECT` 操作。
+ 在迁移的大型机应用程序外部披露数据，无需更改应用程序。
+ 轻松筛选数据并保存为 CSV 或其他文件格式。

**注意**  
步骤 1 和 2 是一次性活动。针对每个数据集重复步骤 3 和 4，以便创建数据库视图。

**Topics**
+ [先决条件](#view-datasets-tables-m2.prereq)
+ [步骤 1：设置与 Rocket Software 数据存储库（亚马逊 RDS 数据库）的 ODBC 连接](#view-datasets-tables-m2.odbc)
+ [步骤 2：创建 MFDBFH.cfg 文件](#view-datasets-tables-m2.config)
+ [步骤 3：为 copybook 布局创建结构 (STR) 文件](#view-datasets-tables-m2.str)
+ [步骤 4：使用结构 (STR) 文件创建数据库视图](#view-datasets-tables-m2.dbview)
+ [步骤 5：以表格和列的形式查看 Rocket Software（以前是 Micro Focus）](#view-datasets-tables-m2.cols)

## 先决条件
<a name="view-datasets-tables-m2.prereq"></a>
+ 你必须能够通过 WorkSpaces 应用程序访问 Rocket Enterprise 开发者桌面。
+ 您必须使用 Rocket Software 运行时引擎在 AWS 大型机现代化下部署和运行应用程序。
+ 您将应用程序数据存储在 Aurora PostgreSQL 兼容版中。

## 步骤 1：设置与 Rocket Software 数据存储库（亚马逊 RDS 数据库）的 ODBC 连接
<a name="view-datasets-tables-m2.odbc"></a>

在此步骤中，设置与数据库的 ODBC 连接，该数据库包含要以表和列形式查看的数据。您只需执行此步骤一次。

1. 使用 WorkSpaces 应用程序直播 URL 登录 Rocket Enterprise 开发者桌面。

1. 打开 **ODBC 数据来源管理器**，选择**用户 DSN**，然后选择**添加**。

1. 在**创建新数据来源**中，选择 **PostgreSQL ANSI**，然后选择**完成**。

1. 通过提供必要的数据库信息为 `PG.POSTGRES` 创建数据来源，如下所示：

   ```
   Data Source : PG.POSTGRES
   Database    : postgres
   Server      : rds_endpoint.rds.amazonaws.com
   Port        : 5432
   User Name   : user_name
   Password    : user_password
   ```  
![\[在 Enterprise Developer 中设置 Postgres ODBC 连接。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/view-data-tables-odbc.png)

1. 选择**测试**，以便确保连接正常。如果测试成功，您应该会看到消息 `Connection successful`。

   如果测试不成功，请查看以下信息。
   + [Amazon RDS 故障排除](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Troubleshooting.html)
   + [如何解决在连接我的 Amazon RDS 数据库实例时遇到的问题？](https://repost.aws/knowledge-center/rds-cannot-connect)

1. 保存数据来源。

1. 为 `PG.VSAM` 创建数据来源，测试连接，然后保存数据来源。提供以下数据库信息：

   ```
   Data Source : PG.VSAM
   Database    : MicroFocus$SEE$Files$VSAM
   Server      : rds_endpoint.rds.amazonaws.com
   Port        : 5432
   User Name   : user_name
   Password    : user_password
   ```  
![\[在 Enterprise Developer 中设置 PG.VSAM ODBC 数据来源。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/view-data-tables-pg-vsam.png)

## 步骤 2：创建 MFDBFH.cfg 文件
<a name="view-datasets-tables-m2.config"></a>

在此步骤中，创建描述 Micro Focus 数据存储的配置文件。这是一个一次性配置步骤。

1. 在您的主文件夹（例如 `D:\PhotonUser\My Files\Home Folder\MFED\cfg\MFDBFH.cfg`）中，创建包含以下内容的 MFDBFH.cfg 文件。

   ```
   <datastores>
          <server name="ESPACDatabase" type="postgresql" access="odbc">
           <dsn name="PG.POSTGRES" type="database" dbname="postgres"/>
           <dsn name="PG.VSAM" type="datastore" dsname="VSAM"/>
          </server>
         </datastores>
   ```

1. 通过运行以下命令查询 Micro Focus 数据存储来验证 MFDBFH 配置：

   ```
   *##*
   *## Test the connection by running the following commands*
   *##*
         
   set MFDBFH_CONFIG="D:\PhotonUser\My Files\Home Folder\MFED\cfg\MFDBFH.cfg"
         
   dbfhdeploy list sql://ESPACDatabase/VSAM?folder=/DATA
   ```

## 步骤 3：为 copybook 布局创建结构 (STR) 文件
<a name="view-datasets-tables-m2.str"></a>

在此步骤中，为 copybook 布局创建结构文件，以便以后使用该文件从数据集创建数据库视图。

1. 编译与您的 copybook 相关的程序。如果没有程序在使用 copybook，请创建并编译一个如下所示的简单程序，其中包含用于 copybook 的 COPY 语句。

   ```
   IDENTIFICATION DIVISION.
         PROGRAM-ID. TESTPGM1.
         
         ENVIRONMENT DIVISION.
         CONFIGURATION SECTION.
         
         DATA DIVISION.
         WORKING-STORAGE SECTION.
         
         COPY CVTRA05Y.
         
         PROCEDURE DIVISION.
         
         GOBACK.
   ```

1. 成功编译后，右键单击该程序并选择**创建记录布局文件**。这将使用编译期间生成的 .idy 文件打开 Micro Focus Data File Tools。  
![\[Enterprise Developer 中“创建记录布局文件”命令的位置。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/view-data-tables-idy-file.png)

1. 右键单击记录结构，然后根据布局选择**创建默认布局**（单结构）或**创建条件布局**（多结构）。

   有关更多信息，请参阅 Micro Focus 文档中的[创建结构文件和布局](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-6EDDA4C3-F09E-4CEC-9CF8-281D9D7453C3.html)。  
![\[Micro Focus Data File Tools 中布局命令的位置。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/view-data-tables-mf-data-file-tools.png)

1. 创建布局后，从菜单中选择**文件**，然后选择**另存为**。浏览并将文件保存在主文件夹下，文件名与您的 copybook 相同。您可以选择创建名为 `str` 的文件夹，并将所有结构文件保存在此文件夹中。  
![\[在 Enterprise Developer 中保存 str 文件。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/view-data-tables-save-str.png)

## 步骤 4：使用结构 (STR) 文件创建数据库视图
<a name="view-datasets-tables-m2.dbview"></a>

在此步骤中，使用先前创建的结构文件为数据集创建数据库视图。
+ 使用 `dbfhview` 命令为 Micro Focus 数据存储中已有的数据集创建数据库视图，如以下示例所示。

  ```
  ##
        ## The below command creates database view for VSAM file AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS 
        ## using the STR file CVTRA05Y.str
        ##
        
        dbfhview -create -struct:"D:\PhotonUser\My Files\Home Folder\MFED\str\CVTRA05Y.str" -name:V_AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS.DAT -file:sql://ESPACDatabase/VSAM/AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS.DAT?folder=/DATA
        
        ##
        ## Output:
        ##
        
        Micro Focus Database File Handler - View Generation Tool Version 8.0.00
        Copyright (C) 1984-2022 Micro Focus. All rights reserved.
        
        VGN0017I Using structure definition 'TRAN-RECORD-DEFAULT'
        VGN0022I View 'V_AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS.DAT' installed in datastore 'sql://espacdatabase/VSAM'
        VGN0002I The operation completed successfully
  ```

## 步骤 5：以表格和列的形式查看 Rocket Software（以前是 Micro Focus）
<a name="view-datasets-tables-m2.cols"></a>

在此步骤中，使用 `pgAdmin` 连接到数据库，以便您可以运行查询来以表和列的形式查看数据集。
+ 使用 pgAdmin 连接到数据库 `MicroFocus$SEE$Files$VSAM` 并查询您在步骤 4 中创建的数据库视图。

  ```
  SELECT * FROM public."V_AWS.M2.CARDDEMO.TRANSACT.VSAM.KSDS.DAT";
  ```  
![\[pgAdmin 中以表和列显示的迁移数据集。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/view-data-tables-new-view-pgadmin.png)

# 在企业开发人员中使用 Rocket Software（以前称为 Micro Focus）数据文件工具编辑数据
<a name="edit-datasets-m2"></a>

您可以使用 Rocket Software 运行时查看和编辑任何迁移数据集 AWS 的大型机现代化中的数据集。  本文档中的步骤将指导您完成使用数据文件工具访问数据集的过程。  这使您可以根据需要查看和编辑迁移的数据集。 

**Topics**
+ [先决条件](#edit-datasets-m2.prereq)
+ [启动 Rocket 软件（前身为 Micro Focus）数据文件工具](#edit-datasets-m2-launch)
+ [编辑存储在 MFDBFH 数据库中的 VSAM 数据集](#edit-datasets-m2-vsam)
+ [编辑存储在 MFDBFH 数据库中的非 vSAM 数据集](#edit-datasets-m2-nonvsam)
+ [编辑存储在文件系统中的 VSAM 和非 vSAM 数据集 (EFS/FSx)](#edit-datasets-m2-open)

## 先决条件
<a name="edit-datasets-m2.prereq"></a>

在开始之前，必须部署包含数据集的应用程序 使用 Rocket Software 引擎在 AWS 大型机现代化服务下导入。

要继续编辑数据集，必须完成步骤 1、步骤 2 以及（可选）[在 Rocket Enterprise Developer（前 Micro Focus Enterprise](view-datasets-tables-m2.md)页面中的步骤 3 配置 ODBC 连接和 Micro Focus 数据存储库（即`MFDBFH`）。

**重要**  
本指南假设你使用的是亚马逊 Aurora Postgres 作为 Micro Focus 数据存储 () `MFDBFH` 来存储您的应用程序数据。

## 启动 Rocket 软件（前身为 Micro Focus）数据文件工具
<a name="edit-datasets-m2-launch"></a>

完成先决条件后，您可以通过设置`MFDBFH_CONFIG`环境变量来启动 Micro Focus 数据文件工具，以访问存储在数据库中的数据集（`MFDBFH`）。

要做到这一点，

1. 登录 Micro Focus Enterprise Developer 桌面，然后从 **“开始” 菜单**中启动**企业开发人员命令提示符（64 位）**。

1. 使用`MFDBCH.cfg`文件的完整路径设置`MFDBFH_CONFIG`环境变量。

   ```
   set MFDBFH_CONFIG="C:\MicroFocus\config\MFDBFH.cfg"
   ```

1. 使用以下命令从企业开发人员命令行启动 Micro Focus 数据文件工具。

   ```
   mfdatatools2
   ```  
![\[企业开发人员命令提示符。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/edit-mfdbfh-launch.png)

这将在单独的窗口中打开 Micro Focus 数据文件工具。

## 编辑存储在 MFDBFH 数据库中的 VSAM 数据集
<a name="edit-datasets-m2-vsam"></a>

启动 Micro Focus 数据文件工具后，即可打开存储在 Micro Focus 数据存储区中的 VSAM 数据集。

要做到这一点，

1. 从 Micro **Focus 数据文件工具窗口的文件菜单**中，选择**数据资源管理器**。

1. 在数据资源管理器部分，选择**设置**（齿轮图标）以配置新连接。这将打开 “**数据源设置”** 窗口。  
![\[带有数据资源管理器部分的 Micro Focus 数据文件工具窗口。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/edit-mfdbfh-data-source.png)

1. 在 “数据源设置” 窗口中，选择 **MFDBFH** 选项卡，然后输入以下值：
   + Server：`ESPACDatabase`
   + 数据存储：`VSAM`

   选择 “**应用**” 以保存配置。  
![\[带有 MFDBFH 选项卡的 Micro Focus 数据文件工具窗口数据源设置。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/edit-mfdbfh-data-source-settings.png)

    现在，数据资源管理器会显示存储在中的所有数据集`MFDBFH`。  
![\[Micro Focus 数据文件工具窗口，其中包含显示所有数据集的数据资源管理器部分。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/edit-mfdbfh-datasets.png)

1. 展开相对路径`DATA`并双击要打开的 VSAM 数据集。

1. 在 “**打开数据文件**” 窗口中，选择 “**打开共享**文件” 或 “以**独占**方式打开” 以打开数据集。  
![\[带有 “数据资源管理器” 部分的 Micro Focus 数据文件工具窗口打开数据文件部分打开数据集...\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/edit-mfdbfh-data-set.png)

现在，您可以查看或编辑打开的数据集。

## 编辑存储在 MFDBFH 数据库中的非 vSAM 数据集
<a name="edit-datasets-m2-nonvsam"></a>

如果要编辑非 vSAM 数据集，可以打开存储在 Micro Focus 数据存储中的非 vSAM 数据集。

要做到这一点，

1. 在企业开发人员命令提示符（64 位）中运行`dbfhdeploy data extract`命令将非 vSAM 数据集下载到本地文件系统。
**注意**  
在运行此命令之前，请确保已将`MFDBFH_CONFIG`环境变量设置为`MFDBFH.cfg`文件的完整路径。  

   ```
   dbfhdeploy data extract sql://ESPACDatabase/VSAM/AWS.M2.CARDDEMO.TRANSACT.BKUP.G0001V00.DAT?folder=/DATA C:\MicroFocus\data\AWS.M2.CARDDEMO.TRANSACT.BKUP.G0001V00.DAT
   ```

1. 从 “**开始” 菜单启动** Micro Focus 数据文件工具。

1. 从 Micro Focus 数据文件工具的 “文件” 菜单中，选择 “**打开**”，然后选择 “**数据文件**”。

1. 在 “打开数据文件” 窗口中，浏览本地文件系统中已下载的数据集。根据需要编辑 “**文件详细信息**”。然后选择 “**打开共享**” 或 “以**独占**方式打开” 以打开数据集。  
![\[打开 “数据文件” 窗口，选择本地选项卡来浏览数据集。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/edit-mfdbfh-browse.png)

现在，您可以查看或编辑打开的数据集。

可以使用 dbfhdeploy 命令行实用程序中的步骤或使用 [dbfhdeploy 命令行实用程序将编辑[为 AWS Mainframe Modernization 应用程序导入数据集](applications-m2-dataset.md)或更新的数据集导回 Micro F](https://www.microfocus.com/documentation/enterprise-developer/ed90/ED-Eclipse/GUID-2A16851F-E475-42C9-B024-37567006B86D.html) ocus 数据存储区。

## 编辑存储在文件系统中的 VSAM 和非 vSAM 数据集 (EFS/FSx)
<a name="edit-datasets-m2-open"></a>

您也可以打开存储在文件系统中的数据集。

要做到这一点，

1. 将EFS/FSx文件系统挂载到企业开发人员 EC2 实例上。

1. 使用 Micro Focus 数据文件工具浏览并打开文件系统中的数据集。

# 火箭软件（前身为 Micro Focus）教程
<a name="tutorials-mf"></a>

本节中的教程可帮助您开始在 Rocket Software 运行时引擎中为 AWS 大型机现代化服务设置各种任务。这些教程用于设置示例应用程序、使用 Rocket Enterprise Developer 中的模板以及设置 Enterprise Analyzer。

**Topics**
+ [教程：为 BankDemo 示例应用程序设置 Rocket 软件（前身为 Micro Focus）版本](tutorial-build-mf.md)
+ [教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket](set-up-appstream-mf.md)
+ [教程：在 Rocket Enterprise Developer（前身为 Micro](tutorial-templates-ed.md)
+ [教程：在 WorkSpaces 应用程序上设置企业分析器](set-up-ea.md)
+ [教程：在 WorkSpaces 应用程序上设置 Rocket 企业开发人员](set-up-ed.md)

# 教程：为 BankDemo 示例应用程序设置 Rocket 软件（前身为 Micro Focus）版本
<a name="tutorial-build-mf"></a>

AWS 大型机现代化使您能够为迁移的应用程序设置构建和持续 integration/continuous 交付 (CI/CD) 管道。这些版本和管道使用 AWS CodeBuild AWS CodeCommit、和 AWS CodePipeline 来提供这些功能。 CodeBuild 是一项完全托管的生成服务，它可以编译源代码、运行单元测试并生成可随时部署的工件。 CodeCommit 是一项版本控制服务，使您能够在云端私下存储和管理 Git 存储库。 AWS CodePipeline 是一项持续交付服务，可让您对发布软件所需的步骤进行建模、可视化和自动化。

本教程演示 AWS CodeBuild 如何使用从 Amazon S3 编译 BankDemo 示例应用程序源代码，然后将编译后的代码导出回 Amazon S3。

AWS CodeBuild 是一项完全托管的持续集成服务，用于编译源代码、运行测试和生成随时可以部署的软件包。使用 CodeBuild，您可以使用预先打包的构建环境，也可以使用自己的构建工具创建自定义构建环境。此演示场景使用后者，它由一个使用预打包的 Docker 镜像的 CodeBuild 构建环境组成。

**重要**  
在启动大型机现代化项目之前，我们建议您了解[适用于大型机的AWS 迁移加速计划 (MAP)](https://aws.amazon.com/migration-acceleration-program/mainframe/)，或者联系 [AWS 大型机专家](mailto: mainframe@amazon.com)，了解实现大型机应用程序现代化所需的步骤。

**Topics**
+ [先决条件](#tutorial-build-mf-prerequisites)
+ [第 1 步：与 AWS 账户共享构建资产](#tutorial-build-mf-assets)
+ [步骤 2：创建 Amazon S3 存储桶](#tutorial-build-mf-s3)
+ [步骤 3：创建构建规范文件](#tutorial-build-mf-spec)
+ [步骤 4：上传源文件](#tutorial-build-mf-upload)
+ [步骤 5：创建 IAM 策略](#tutorial-build-mf-IAM-policy)
+ [步骤 6：创建 IAM 角色](#tutorial-build-mf-IAM-role)
+ [步骤 7：将 IAM 策略附加到 IAM 角色](#tutorial-build-mf-attach)
+ [第 8 步：创建 CodeBuild 项目](#tutorial-build-mf-create-project)
+ [步骤 9：启动构建](#tutorial-build-mf-start)
+ [步骤 10：下载输出构件](#tutorial-build-mf-download-output)
+ [清理 资源](#tutorial-build-mf-clean)

## 先决条件
<a name="tutorial-build-mf-prerequisites"></a>

开始本教程之前，请满足以下先决条件：
+ 下载[BankDemo 示例应用程序](https://d3lkpej5ajcpac.cloudfront.net/demo/mf/BANKDEMO-build.zip)并将其解压缩到一个文件夹。源文件夹中包含 COBOL 程序和 Copybook 以及定义。此外，它还包含一个供参考的 JCL 文件夹，尽管您不需要构建 JCL。该文件夹还包含构建所需的元文件。
+ 在 AWS 大型机现代化控制台中，选择**工具**。在**分析、开发和构建资产**中，选择**使用我的 AWS 账户共享资产**。

## 第 1 步：与 AWS 账户共享构建资产
<a name="tutorial-build-mf-assets"></a>

在此步骤中，您需要确保与您的 AWS 账户共享构建资产，尤其是在使用资产的地区。

1. 打开 AWS 大型机现代化控制台，网址为[https://console.aws.amazon.com/m2/](https://us-west-2.console.aws.amazon.com/m2/home?region=us-west-2#/)。

1. 在左侧导航中，选择**工具**。

1. 在**分析、开发和生成资产**中，选择**与我的 AWS 账户共享资产**。

**重要**  
您需要在要进行构建的每个 AWS 区域执行一次此步骤。

## 步骤 2：创建 Amazon S3 存储桶
<a name="tutorial-build-mf-s3"></a>

在此步骤中，您将创建两个 Amazon S3 存储桶。一个是用于存放源代码的输入存储桶，另一个是用于存放构建输出的输出存储桶。有关更多信息，请参阅《Amazon S3 用户指南》**中的[创建、配置和使用 Amazon S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)。

1. 要创建输入存储桶，登录 Amazon S3 控制台并选择**创建存储桶**。

1. 在**常规配置**中，提供存储桶的名称并指定要 AWS 区域 在哪里创建存储桶。示例名称是`codebuild-regionId-accountId-input-bucket`， AWS 区域 其中`regionId`是存储桶的，`accountId`是您的 AWS 账户 ID。
**注意**  
如果您要在与美国东部（弗吉尼亚北部）不同的 AWS 区域 位置创建存储桶，请指定`LocationConstraint`参数。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)。

1. 保留所有其他设置并选择**创建存储桶**。

1. 重复步骤 1 – 3 来创建输出存储桶。例如，名称是`codebuild-regionId-accountId-output-bucket`， AWS 区域 其中`regionId`是存储桶的，`accountId`是您的 AWS 账户 ID。

   无论您为这些存储桶选择的名称如何，请务必在本教程中保持统一。

## 步骤 3：创建构建规范文件
<a name="tutorial-build-mf-spec"></a>

在此步骤中，创建一个构建规范文件。此文件以 YAML 格式提供构建命令和相关设置， CodeBuild 用于运行构建。有关更多信息，请参阅《*AWS CodeBuild 用户指南》 CodeBuild*中的[构建规范参考](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)。

1. 在您在先决条件中解压缩的目录中创建一个名为 `buildspec.yml` 的文件。

1. 将以下内容添加到该文件并保存。无需对该文件进行任何更改。

   ```
   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。有关更多信息，请参阅[构建环境中的环境变量](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)。

   此时，您的目录结构应如下所示。

   ```
   (root directory name)
       |-- build.xml
       |-- buildspec.yml
       |-- LICENSE.txt
       |-- source
            |... etc.
   ```

1. 将文件夹的内容压缩到名为 `BankDemo.zip` 的文件中。在本教程中，您无法压缩文件夹。因此，将文件夹的内容压缩到文件 `BankDemo.zip` 中。

## 步骤 4：上传源文件
<a name="tutorial-build-mf-upload"></a>

在此步骤中，您将 BankDemo 示例应用程序的源代码上传到您的 Amazon S3 输入存储桶。

1. 登录到 Amazon S3 控制台，并在左侧导航窗格中，选择**存储桶**。然后选择您之前创建的输入存储桶。

1. 在**对象**下，选择**上传**。

1. 在**文件和文件夹**部分，选择**添加文件**。

1. 导航到并选择 `BankDemo.zip` 文件。

1. 选择**上传**。

## 步骤 5：创建 IAM 策略
<a name="tutorial-build-mf-IAM-policy"></a>

在此步骤中，创建两个 [IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。一项策略授予 AWS 大型机现代化访问和使用包含 Rocket Software 构建工具的 Docker 镜像的权限。此策略不是为客户自定义的。另一项策略授予 AWS 大型机现代化与输入和输出存储桶以及生成的 A [mazon CloudWatch 日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)进行交互的权限。 CodeBuild 

要了解有关创建 IAM 策略的信息，请参阅《IAM 用户指南》**中的[编辑 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

**创建允许访问 Docker 映像的策略**

1. 在 IAM 控制台中，将以下策略文档复制并粘贴到策略编辑器中。

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

****  

   ```
   {
       "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-*-<region>-prod"
           }
       ]
   }
   ```

------

1. 提供策略名称，例如 `m2CodeBuildPolicy`。

**创建允许 AWS 大型机现代化与存储桶和日志交互的策略**

1. 在 IAM 控制台中，将以下策略文档复制并粘贴到策略编辑器中。请务必更新`regionId`到 AWS 区域，并更新`accountId`到您的 AWS 账户。

1. 提供策略名称，例如 `BankdemoCodeBuildRolePolicy`。

## 步骤 6：创建 IAM 角色
<a name="tutorial-build-mf-IAM-role"></a>

在此步骤中，在 CodeBuild 将之前创建[的 IAM 策略与该新 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)关联后，您将创建一个允许您与 AWS 资源交互的新 IAM 角色。

有关创建服务角色的信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

1. 登录 IAM 控制台，然后在左侧导航窗格中选择**角色**。

1. 选择**创建角色**。

1. 在**可信实体类型**下，选择 **AWS 服务**。

1. 在其**他 AWS 服务的用例**下 **CodeBuild**，选择，然后**CodeBuild**再次选择。

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

1. 在**添加权限**页面上，选择**下一步**。您稍后给该角色分配策略。

1. 在**角色详细信息**下，提供角色的名称，例如 `BankdemoCodeBuildServiceRole`。

1. 在**选择可信实体**下，验证策略文档是否如下所示：

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

****  

   ```
   {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
               {
                 "Effect": "Allow",
                 "Principal": {
                   "Service": "codebuild.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
               }
             ]
           }
   ```

------

1. 选择**创建角色**。

## 步骤 7：将 IAM 策略附加到 IAM 角色
<a name="tutorial-build-mf-attach"></a>

在此步骤中，将您之前创建的两个 IAM 策略附加到 `BankdemoCodeBuildServiceRole` IAM 角色。

1. 登录到 IAM 控制台，然后在左侧导航窗格中，选择**角色**。

1. 在**角色**中，选择您之前创建的角色，例如 `BankdemoCodeBuildServiceRole`。

1. 在**权限策略**中，依次选择**添加权限**和**附加策略**。

1. 在**其他权限策略**中，选择您之前创建的策略，例如 `m2CodeBuildPolicy` 和 `BankdemoCodeBuildRolePolicy`。

1. 选择**附加策略**。

## 第 8 步：创建 CodeBuild 项目
<a name="tutorial-build-mf-create-project"></a>

在此步骤中，您将创建 CodeBuild 项目。

1. 登录 CodeBuild 控制台并选择 “**创建构建项目**”。

1. 在**项目配置**部分中，提供项目的名称，例如 `codebuild-bankdemo-project`。

1. 在**源**部分中，对于**源提供商**，选择 **Amazon S3**，然后选择您之前创建的输入存储桶，例如`codebuild-regionId-accountId-input-bucket`。

1. 在 **S3 对象密钥或 S3 文件夹**字段中，输入您上传到 S3 存储桶的 zip 文件的名称。在本例中，此文件名为 `bankdemo.zip`。

1. 在**环境**部分中，选择**自定义映像**。

1. 在**环境类型**字段中，选择 **Linux**。

1. 在**映像注册表**中，选择**其他注册表**。

1. 在**外部注册表 URL** 字段中，
   + 对于火箭软件 v9：输入`673918848628.dkr.ecr.us-west-1.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`。如果您在 Rocket Software v9 <m2-region>中使用其他 AWS AWS 区域` 673918848628.dkr.ecr.<m2-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`，则还可以指定提供 AWS 大型机现代化服务的区域（例如，`eu-west-3`）。
   + 对于 Rocket 软件版本 8：输入 `673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:8.0.9.R1`
   + 对于 Rocket 软件 v7：输入 `673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:7.0.R10`

1. 在**服务角色**下，选择**现有服务角色**，然后在**角色 ARN** 字段中，选择您之前创建的服务角色，例如 `BankdemoCodeBuildServiceRole`。

1. 在**构建规范**部分中，选择**使用构建规范文件**。

1. 在**构件**部分的**类型**下，选择 **Amazon S3**，然后选择您的输出存储桶，例如 `codebuild-regionId-accountId-output-bucket`。

1. 在**名称**字段中，输入存储桶中要包含构建输出构件的文件夹的名称，例如 `bankdemo-output.zip`。

1. 在**构件打包**下，选择 **Zip**。

1. 选择 **Create build project（创建构建项目）**。

## 步骤 9：启动构建
<a name="tutorial-build-mf-start"></a>

在此步骤中，启动构建。

1. 登录 CodeBuild 控制台。

1. 在左侧导航窗格中，选择**构建项目**。

1. 选择您之前创建的构建项目，例如 `codebuild-bankdemo-project`。

1. 选择**启动构建**。

此命令开始构建。构建以异步方式运行。此命令的输出是一个包含属性 ID 的 JSON。此属性 id是对您刚刚启动的版本的构 CodeBuild 建 ID 的引用。你可以在 CodeBuild 控制台中查看版本的状态。您还可以在控制台中查看有关构建执行的详细日志。有关更多信息，请参阅《AWS CodeBuild 用户指南》**中的[查看详细构建信息](https://docs.aws.amazon.com/codebuild/latest/userguide/getting-started-build-log-console.html)。

当前阶段完成后，即表示您的构建已成功完成，并且编译的构件已在 Amazon S3 上准备就绪。

## 步骤 10：下载输出构件
<a name="tutorial-build-mf-download-output"></a>

在此步骤中，从 Amazon S3 下载输出构件。Rocket Software 编译工具可以创建几种不同的可执行文件类型。在本教程中，它将生成共享对象。

1. 登录 Amazon S3 控制台。

1. 在**存储桶** role="bold"> 部分中，选择您的输出存储桶的名称，例如 `codebuild-regionId-accountId-output-bucket`。

1. 选择**下载** role="bold">。

1. 解压下载的文件。导航到目标文件夹以查看构建构件。其中包括 `.so` Linux 共享对象。

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

如果您不再需要为本教程创建的资源，请将其删除，以免产生额外费用。为此，请完成以下步骤：
+ 删除您为本教程创建的 S3 存储桶。有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[删除存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。
+ 删除您为本教程创建的 IAM 策略。有关更多信息，请参阅《IAM 用户指南》**中的[删除 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-delete.html)。
+ 删除您为本教程创建的 IAM 角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除角色或实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)。
+ 删除您为本教程创建的 CodeBuild 项目。有关更多信息，请参阅《*AWS CodeBuild 用户指南》 CodeBuild*[中的删除构建项目](https://docs.aws.amazon.com/codebuild/latest/userguide/delete-project.html)。

# 教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket
<a name="set-up-appstream-mf"></a>

AWS 大型机现代化通过 Amazon WorkSpaces 应用程序提供了多种工具。 WorkSpaces Applications 是一项完全托管的安全应用程序流服务，允许您在不重写应用程序的情况下将桌面应用程序流式传输给用户。 WorkSpaces 应用程序使用户可以即时访问他们需要的应用程序，并在他们选择的设备上提供响应灵敏、流畅的用户体验。使用 WorkSpaces 应用程序托管特定于运行时引擎的工具，使客户应用程序团队能够直接通过其网络浏览器使用这些工具，与存储在 Amazon S3 存储桶或存储库中的应用程序文件进行交互。 CodeCommit

有关 WorkSpaces 应用程序中浏览器支持的信息，请参阅《*亚马逊 WorkSpaces 应用程序管理指南》*中的 “[系统要求和功能支持（Web 浏览器）](https://docs.aws.amazon.com/appstream2/latest/developerguide/requirements-and-features-web-browser-admin.html)”。如果您在使用 WorkSpaces 应用程序时遇到问题，请参阅《*Amazon WorkSpaces 应用程序管理指南》*中的 [ AppStream2.0 用户问题疑难解答](https://docs.aws.amazon.com/appstream2/latest/developerguide/troubleshooting-user-issues.html)。

本文档适用于客户运营团队的成员。它描述了如何设置 Amazon A WorkSpaces pplications 队列和堆栈来托管用于 AWS 大型机现代化的火箭企业分析器和火箭企业开发者工具。Rocket Enterprise Analyzer 通常在评估阶段使用，Rocket Enterprise Developer 通常在 AWS 大型机现代化方法的迁移和现代化阶段使用。如果您计划同时使用 Enterprise Analyzer 和 Enterprise Developer，则必须为每个工具创建单独的实例集和堆栈。每个工具都需要各自的实例集和堆栈，因为它们的许可条款不同。

**重要**  
本教程中的步骤基于可下载的 CloudFormation 模板 [cfn-m2-.yml](https://drm0z31ua8gi7.cloudfront.net/tutorials/mf/appstream/cfn-m2-appstream-fleet-ea-ed.yml)。appstream-fleet-ea-ed

**Topics**
+ [先决条件](#tutorial-aas-prerequisites)
+ [步骤 1：获取 WorkSpaces 应用程序镜像](#tutorial-aas-step1)
+ [第 2 步：使用 CloudFormation 模板创建堆栈](#tutorial-aas-step2)
+ [步骤 3：在 “ WorkSpaces 应用程序” 中创建用户](#tutorial-aas-step3)
+ [步骤 4：登录 WorkSpaces 应用程序](#tutorial-aas-step4)
+ [步骤 5：验证 Amazon S3 中的存储桶（可选）](#tutorial-aas-step5)
+ [后续步骤](#tutorial-aas-next-steps)
+ [清理 资源](#tutorial-aas-cleanup)

## 先决条件
<a name="tutorial-aas-prerequisites"></a>
+ 下载模板：[cfn-m2-appstream-fleet-ea-ed .yml](https://drm0z31ua8gi7.cloudfront.net/tutorials/mf/appstream/cfn-m2-appstream-fleet-ea-ed.yml)。
+ 获取您的默认 VPC 的 ID 和安全组。有关默认 VPC 的更多信息，请参阅 *Amazon VPC 用户指南 VPCs*中的[默认](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html)。有关默认安全组的更多信息，请参阅《Amazon EC2 用户指南》**中的[默认和自定义安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/default-custom-security-groups.html)。
+ 请确保您具有以下权限：
  + 在应用程序中创建堆栈、队列和用户。 WorkSpaces 
  +  CloudFormation 使用模板创建堆栈。
  + 在 Amazon S3 中创建存储桶和并将文件上传到存储桶
  + 从 IAM 下载凭证（`access_key_id` 和 `secret_access_key`）。

## 步骤 1：获取 WorkSpaces 应用程序镜像
<a name="tutorial-aas-step1"></a>

在此步骤中，您将与您的 AWS 账户共享 Enterprise Analyzer 和企业开发人员的 WorkSpaces 应用程序映像。

1. 打开 AWS 大型机现代化控制台，网址为[https://console.aws.amazon.com/m2/](https://us-west-2.console.aws.amazon.com/m2/home?region=us-west-2#/)。

1. 在左侧导航中，选择**工具**。

1. 在**分析、开发和生成资产**中，选择**与我的 AWS 账户共享资产**。

## 第 2 步：使用 CloudFormation 模板创建堆栈
<a name="tutorial-aas-step2"></a>

在此步骤中，您将使用下载的 CloudFormation 模板创建用于运行 Rocket Enterprise Analyzer 的 WorkSpaces 应用程序堆栈和队列。您可以稍后重复此步骤来创建另一个 WorkSpaces 应用程序堆栈和队列来运行 Rocket Enterprise Developer，因为每个工具都需要自己的队列和 WorkSpaces 应用程序中的堆栈。有关 CloudFormation 堆栈的更多信息，请参阅《*AWS CloudFormation 用户*指南》中的[使用堆栈](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)。

**注意**  
AWS 大型机现代化在企业分析器和企业开发人员使用的标准 WorkSpaces 应用程序定价基础上增加了额外费用。有关更多信息，请参阅 [AWS Mainframe Modernization 定价](https://aws.amazon.com/mainframe-modernization/pricing/)。

1. 如有必要，请下载 [cfn-m2-appstream-fleet-ea-ed .yml](https://drm0z31ua8gi7.cloudfront.net/tutorials/mf/appstream/cfn-m2-appstream-fleet-ea-ed.yml) 模板。

1. 打开 CloudFormation 控制台，选择**创建堆栈**并**使用新资源（标准）**。

1. 在**先决条件 – 准备模板**中，选择**模板已就绪**。

1. 在**指定模板**中，选择**上传模板文件**。

1. 在**上传模板文件中，选择**选择文件****并上传 [cfn-m2-appstream-fleet-ea-ed .ym](https://drm0z31ua8gi7.cloudfront.net/tutorials/mf/appstream/cfn-m2-appstream-fleet-ea-ed.yml) l 模板。

1. 选择**下一步**。  
![\[使用选定的 cfn-m2-appstream-fleet-ea-ed .yml 模板 CloudFormation 创建堆栈页面。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/cfn-create-stack.png)

1. 在**指定堆栈集详细信息**页面上，输入以下信息：
   + 在**堆栈名称**中，输入您所选的名称。例如 **m2-ea**。
   + 在中 **AppStreamApplication**，选择 **ea**。
   + 在中 **AppStreamFleetSecurityGroup**，选择默认 VPC 的默认安全组。
   + 在中 **AppStreamFleetVpcSubnet**，选择默认 VPC 内的子网。
   + 在中 **AppStreamImageName**，选择以开头的图像`m2-enterprise-analyzer`。此镜像包含当前支持的 Rocket Enterprise Analyzer 工具版本。
   + 接受其他字段的默认值，然后选择**下一步**。  
![\[“ CloudFormation 指定堆栈详细信息” 页面，其中填写了 “企业分析器” 选项。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/cfn-specify-stack-details.png)

1. 接受所有默认值，然后选择**下一步**。

1. 在**审核**页面上，确保所有参数都符合您的预期。

1. 滚动到底部，选择**我确认 AWS CloudFormation 可能使用自定义名称创建 IAM 资源**，然后选择**创建堆栈**。

创建堆栈和实例集需要 20 到 30 分钟。您可以选择 “**刷新**” 以在 CloudFormation 事件发生时查看事件。

## 步骤 3：在 “ WorkSpaces 应用程序” 中创建用户
<a name="tutorial-aas-step3"></a>

在等待 CloudFormation 堆栈创建完成时，可以在 WorkSpaces 应用程序中创建一个或多个用户。这些用户是将在 WorkSpaces 应用程序中使用企业分析器的用户。您需要为每个用户指定一个电子邮件地址，并确保每个用户都有足够的权限在 Amazon S3 中创建存储桶、将文件上传到存储桶以及链接到存储桶以映射其内容。

1. 打开 WorkSpaces 应用程序控制台。

1. 在左侧导航窗格中，选择 **用户池**。

1. 选择**创建用户**。

1. 提供一个电子邮件地址，用户可以在其中收到使用 WorkSpaces 应用程序的电子邮件邀请、名字和姓氏，然后选择 C **reate user**。

1. 如有必要，请重复此步骤以创建更多用户。每个用户的电子邮件地址必须是唯一的。

有关创建 WorkSpaces 应用程序用户的更多信息，请参阅《*Amazon WorkSpaces 应用程序管理指南》中的 WorkSpaces 应用程序*[用户池](https://docs.aws.amazon.com/appstream2/latest/developerguide/user-pool.html)。

创建 CloudFormation 完堆栈后，您可以将创建的用户分配给堆栈，如下所示：

1. 打开 WorkSpaces 应用程序控制台。

1. 选择用户名。

1. 依次选择**操作**和**分配堆栈**。

1. 在**分配堆栈**中，选择以 `m2-appstream-stack-ea` 开头的堆栈。

1. 选择**分配堆栈**。  
![\[“ WorkSpaces 应用程序分配堆栈” 页面显示了用户和要分配的 Enterprise Analyzer 堆栈。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/aas-assign-stack.png)

将用户分配到堆栈会使 WorkSpaces 应用程序通过您提供的地址向该用户发送电子邮件。此电子邮件包含指向 WorkSpaces 应用程序登录页面的链接。

## 步骤 4：登录 WorkSpaces 应用程序
<a name="tutorial-aas-step4"></a>

在此步骤中，您将使用 WorkSpaces 应用程序发送给您在中创建的用户的电子邮件中的链接登录 WorkSpaces 应用程序[步骤 3：在 “ WorkSpaces 应用程序” 中创建用户](#tutorial-aas-step3)。

1. 使用 WorkSpaces 应用程序发送的电子邮件中提供的链接登录 WorkSpaces 应用程序。

1. 如果出现提示，请更改密码。您看到的 “ WorkSpaces 应用程序” 屏幕类似于以下内容：  
![\[显示桌面图标的示例 WorkSpaces 应用程序登录屏幕。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/aas-login-screen.png)

1. 选择**桌面**。

1. 在任务栏上，选择**搜索**，然后输入 **D:** 以导航到主文件夹。
**注意**  
如果跳过此步骤，则在尝试访问主文件夹时可能会出现`Device not ready`错误。

在任何时候，如果您在登录 WorkSpaces 应用程序时遇到问题，都可以按照以下步骤重新启动 WorkSpaces 应用程序群并尝试重新登录。

1. 打开 WorkSpaces 应用程序控制台。

1. 在左侧导航窗格中，选择**实例集**。

1. 选择您要使用的实例集。

1. 选择**操作**，然后选择**停止**。

1. 等待实例集停止。

1. 选择**操作**，然后选择**启动**。

此过程大约需要 10 分钟。

## 步骤 5：验证 Amazon S3 中的存储桶（可选）
<a name="tutorial-aas-step5"></a>

您用于创建堆栈的 CloudFormation 模板完成的任务之一是在 Amazon S3 中创建两个存储桶，这两个存储桶是跨工作会话保存和恢复用户数据和应用程序设置所必需的。这些存储桶如下所示：
+ 名称以 `appstream2-` 开头。此存储桶将数据映射到 WorkSpaces 应用程序中的主文件夹 (`D:\PhotonUser\My Files\Home Folder`)。
**注意**  
对于给定的电子邮件地址，主文件夹是唯一的，并且在给定帐户中的所有舰队和堆栈之间共享。 AWS 主文件夹的名称是用户电子邮件地址的 SHA256 哈希值，存储在基于该哈希值的路径上。
+ 名称以 `appstream-app-settings-` 开头。此存储桶包含 WorkSpaces 应用程序的用户会话信息，并包括浏览器收藏夹、IDE 和应用程序连接配置文件以及用户界面自定义等设置。有关更多信息，[请参阅《*Amazon 应用程序管理指南》中的 WorkSpaces 应用程序*设置持久性工作原理](https://docs.aws.amazon.com/appstream2/latest/developerguide/how-it-works-app-settings-persistence.html)。

要验证存储桶是否已创建，请执行以下步骤：

1. 打开 Amazon S3 控制台。

1. 在左侧导航中，选择**存储桶**。

1. 在**按名称查找存储桶**中，输入 **appstream** 以筛选列表。

如果您看到存储桶，则无需采取进一步的操作。请注意存储桶存在即可。如果您没有看到存储桶，则可能是 CloudFormation 模板未完成运行，或者发生了错误。转到 CloudFormation 控制台并查看堆栈创建消息。

## 后续步骤
<a name="tutorial-aas-next-steps"></a>

现在， WorkSpaces 应用程序基础架构已设置完毕，您可以设置并开始使用 Enterprise Analyzer。有关更多信息，请参阅 [教程：在 WorkSpaces 应用程序上设置企业分析器](set-up-ea.md)。您还可以设置 Enterprise Developer。有关更多信息，请参阅 [教程：在 WorkSpaces 应用程序上设置 Rocket 企业开发人员](set-up-ed.md)。

## 清理 资源
<a name="tutorial-aas-cleanup"></a>

创建[ WorkSpaces 应用程序队列和堆栈中描述了清理已创建堆栈和队列的](https://docs.aws.amazon.com/appstream2/latest/developerguide/set-up-stacks-fleets.html)过程。

删除 WorkSpaces 应用程序对象后，账户管理员还可以根据需要清理 Amazon S3 存储桶中的应用程序设置和主文件夹。

**注意**  
给定用户的主文件夹在所有队列中都是唯一的，因此，如果同一账户中的其他 WorkSpaces 应用程序堆栈处于活动状态，则可能需要保留该文件夹。

最后， WorkSpaces 应用程序目前不允许您使用控制台删除用户。而是必须使用服务 API 和 CLI 进行删除。有关更多信息，请参阅《*Amazon WorkSpaces 应用程序[管理指南》中的用户池](https://docs.aws.amazon.com/appstream2/latest/developerguide/user-pool-admin.html)管理*。

# 教程：在 Rocket Enterprise Developer（前身为 Micro
<a name="tutorial-templates-ed"></a>

本教程介绍如何在 Rocket Enterprise 开发者中使用模板和预定义项目。它提供了三个用例。所有用例都使用示例中提供的 BankDemo 示例代码。要下载该示例，请选择 [https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo.zip](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo.zip)。

**重要**  
如果您使用适用于 Windows 的 Enterprise Developer 版本，则编译器生成的二进制文件只能在与 Enterprise Developer 一并提供的 Enterprise Server 上运行。您无法在基于 Linux AWS 的大型机现代化运行时下运行它们。

**Topics**
+ [用例 1 – 使用包含源组件的 COBOL 项目模板](#tutorial-templates-ed-step1)
+ [用例 2 – 使用不包含源组件的 COBOL 项目模板](#tutorial-templates-ed-step2)
+ [用例 3 – 使用链接到源文件夹的预定义 COBOL 项目](#tutorial-templates-ed-step3)
+ [使用区域定义 JSON 模板](#tutorial-templates-ed-step4)

## 用例 1 – 使用包含源组件的 COBOL 项目模板
<a name="tutorial-templates-ed-step1"></a>

此用例要求您在演示预设置步骤中，将源组件复制到模板目录结构中。为了避免源有两个副本，在 [https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo.zip](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo.zip) 中，这点已从提供的原始 `AWSTemplates.zip` 中进行了更改。

1. 启动 Enterprise Developer 并指定所选工作区。  
![\[Eclipse 启动器（已选择工作区）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc1-step1.png)

1. 在**应用程序资源管理器**视图中，从**企业开发项目**树视图项的上下文菜单中选择**从模板新建项目**。  
![\[“企业开发项目”树视图上下文菜单。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc1-step2.png)

1. 输入模板参数，如图所示。
**注意**  
“模板路径”是指 ZIP 的解压位置。  
![\[“输入模板参数”框（已填写路径和项目名称）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc1-step3.png)

1. 选择“确定”将基于提供的模板创建一个本地开发 Eclipse 项目，该项目具有完整的源和执行环境结构。  
![\[本地开发 Eclipse 项目（显示了项目结构）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc1-step4.png)

   `System` 结构包含一个完整的资源定义文件，其中包含 BANKDEMO 所需的条目、添加了条目的必需目录以及相应的 ASCII 数据文件。

   由于源模板结构包含所有源项目，这些文件将复制到本地项目，因此会在 Enterprise Developer 中自动构建。

## 用例 2 – 使用不包含源组件的 COBOL 项目模板
<a name="tutorial-templates-ed-step2"></a>

步骤 1 到 3 与[用例 1 – 使用包含源组件的 COBOL 项目模板](#tutorial-templates-ed-step1)相同。

此用例中的`System`结构还包含一个完整的资源定义文件，其中包含所需的条目 BankDemo、添加了条目的必需目录以及相应的 ASCII 数据文件。

不过，模板源结构不包含任何组件。您必须将组件从您正在使用的任何源存储库导入到项目中。

1. 选择项目名称。从相关的上下文菜单中，选择**导入**。  
![\[项目上下文菜单（已选择“导入”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc2-step4.png)

1. 在显示的对话框中，在 **General** 部分下，选择 **File System**，然后选择“下一步”。  
![\[“导入”框（已选择“File System”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc2-step5.png)

1. 通过浏览文件系统以指向存储库文件夹来填充**从目录**字段。选择要导入的所有文件夹，例如 `sources`。`Into folder` 字段将预先填充。选择**结束**。  
![\[BankDemo 目录已展开的文件系统框。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc2-step6.png)

   源模板结构包含所有源项目之后，即可在 Enterprise Developer 中自动构建。

## 用例 3 – 使用链接到源文件夹的预定义 COBOL 项目
<a name="tutorial-templates-ed-step3"></a>

1. 启动 Enterprise Developer 并指定所选工作区。  
![\[Eclipse 启动器（已选择工作区）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc3-step1.png)

1. 从**文件**菜单中，选择**导入**。  
![\[“文件”菜单（已选择“导入”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc3-step2.png)

1. 在显示的对话框中，在 **General**下，选择 **Projects from Folder or Archive**，然后选择**下一步**。  
![\[“导入”框（已选择“Projects from Folder or Archive”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc3-step3.png)

1. 填充**导入源**，选择**目录**，然后浏览文件系统以选择预定义的项目文件夹。其中包含的项目具有指向同一存储库中源文件夹的链接。  
![\[“从文件系统或存档导入项目”框（已输入导入源的路径）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-uc3-step4.png)

   选择**结束**。

   由于项目由源文件夹的链接填充，因此代码是自动生成的。

## 使用区域定义 JSON 模板
<a name="tutorial-templates-ed-step4"></a>

1. 切换到服务器资源管理器视图。从相关的上下文菜单中选择**打开管理页面**，这将启动默认浏览器。  
![\[服务器资源管理器上下文菜单（已选中“打开管理页面”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-admin-page.png)

1. 从显示的 Enterprise Server 常用 Web 管理 (ESCWA) 屏幕中，选择**导入**。  
![\[Enterprise Server 常用 Web 管理屏幕（已选择“导入”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-import.png)

1. 选择 **JSON** 导入类型，然后选择**下一步**。  
![\[“选择导入类型”框（选中“JSON”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-import-type.png)

1. 上传提供的 `BANKDEMO.JSON` 文件。  
![\[“选择要上传的文件”框（已选择 BANKDEMO 文件）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-upload.png)

   选择后，选择**下一步**。  
![\[“选择区域”框（未选中“从端点清除端口”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-next.png)

   在**选择区域**面板上，确保未选中**从端点清除端口**选项，然后继续在面板中选择**下一步**，直到显示**执行导入**面板。然后，从左侧导航窗格中选择**导入**。

   最后，单击**完成**。BANKDEMO 区域随后将被添加到服务器列表中。  
![\[已 BankDemo 添加区域和服务器列表。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-server-list.png)

1. 导航至 BANKDEMO 区域的**常规属性**。

1. 滚动到**配置**部分。

1. 需将 ESP 环境变量设置为与前面步骤中创建的 Eclipse 项目相关的 `System` 文件夹。应为 `workspacefolder/projectname/System`。  
![\[配置部分（显示了 ESP 变量）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-ESP.png)

1. 单击**应用**。

   该区域现已完全配置为与 Eclipse COBOL 项目配合运行。

1. 最后，回到 Enterprise Developer 中，将导入的区域与项目关联。  
![\[项目上下文菜单（已选择“与项目关联”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ed-json-associate.png)

   企业开发人员环境现已准备就绪，其完整工作版本为 BankDemo。您可以针对该区域编辑、编译和调试代码。
**重要**  
如果您使用适用于 Windows 的 Enterprise Developer 版本，则编译器生成的二进制文件只能在与 Enterprise Developer 一并提供的 Enterprise Server 上运行。您无法在基于 Linux AWS 的大型机现代化运行时下运行它们。

# 教程：在 WorkSpaces 应用程序上设置企业分析器
<a name="set-up-ea"></a>

本教程介绍如何设置 Rocket Enterprise Analyzer（前身为 Micro Focus Enterprise Analyzer）来分析一个或多个 Enterprise Analyzer 工具可根据其对应用程序源代码和系统定义的分析提供多个报告。

此设置旨在促进团队协作。安装使用 Amazon S3 存储桶与虚拟磁盘共享源代码。这样做会在 Windows 计算机上使用 [Rclone](https://rclone.org/)。借助运行 [PostgreSQL](https://www.postgresql.org/) 的常用 Amazon RDS 实例，团队中的任何成员都可以访问所有请求的报告。

团队成员还可以将 Amazon S3 支持的虚拟磁盘挂载到个人机器上，并从其工作站更新源存储桶。如果他们连接到其他本地内部系统，还可以在其机器上使用脚本或任何其他形式的自动化。

该设置基于 AWS 大型机现代化与客户共享的 WorkSpaces 应用程序 Windows 映像。安装还基于 WorkSpaces 应用程序队列和堆栈的创建，如中所述。[教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket](set-up-appstream-mf.md)

**重要**  
本教程中的步骤假设您使用可下载的 CloudFormation 模板 [cfn-m2-.ym](https://drm0z31ua8gi7.cloudfront.net/tutorials/mf/appstream/cfn-m2-appstream-fleet-ea-ed.yml) l 来设置 WorkSpaces 应用程序。appstream-fleet-ea-ed有关更多信息，请参阅 [教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket](set-up-appstream-mf.md)。  
要执行本教程中的步骤，您必须设置 Enterprise Analyzer 实例集和堆栈，并且它们必须正在运行。

有关企业分析器功能和交付内容的完整描述，请参阅 Rocket Software（前身为 Micro Focus）网站上的[企业分析器文档](https://www.microfocus.com/documentation/enterprise-analyzer/)。

## 映像内容
<a name="set-up-ea-image-contents"></a>

除了 Enterprise Analyzer 应用程序本身之外，该映像还包含以下工具和库。

第三方工具
+ [Python](https://www.python.org/)
+ [Rclone](https://rclone.org/)
+ [pgAdmin](https://www.pgadmin.org/)
+ [git-scm](https://git-scm.com/)
+ [PostgreSQL ODBC 驱动程序](https://odbc.postgresql.org/)

`C:\Users\Public` 中的库
+ BankDemo 企业开发者的源代码和项目定义:`m2-bankdemo-template.zip`.
+ 大型机的 MFA 安装包：`mfa.zip`。有关更多信息，请参阅《Micro Focus Enterprise Developer》**文档中的[大型机访问权限概述](https://www.microfocus.com/documentation/enterprise-developer/30pu12/ED-VS2012/BKMMMMINTRS001.html)。
+ Rclone 的命令和配置文件（教程中的使用说明）：`m2-rclone.cmd` 和 `m2-rclone.conf`。

**Topics**
+ [映像内容](#set-up-ea-image-contents)
+ [先决条件](#tutorial-ea-prerequisites)
+ [步骤 1：设置](#tutorial-ea-step1)
+ [步骤 2：在 Windows 上创建基于 Amazon S3 的虚拟文件夹](#tutorial-ea-step2)
+ [步骤 3：为 Amazon RDS 实例创建 ODBC 源](#tutorial-ea-step3)
+ [后续会话](#tutorial-ea-step4)
+ [对工作区连接进行故障排除](#tutorial-ea-step5)
+ [清理 资源](#tutorial-ea-clean)

## 先决条件
<a name="tutorial-ea-prerequisites"></a>
+ 将您要分析的客户应用程序的源代码和系统定义上传到 S3 存储桶。系统定义包括 CICS CSD、 DB2 对象定义等。您可以在存储桶中创建一个文件夹结构，该结构表示您要如何组织应用程序构件。例如，解压缩 BankDemo 示例时，其结构如下：

  ```
  demo
       |--> jcl
       |--> RDEF
       |--> transaction
       |--> xa
  ```
+ 创建并启动运行 PostgreSQL 的 Amazon RDS 实例 此实例将存储 Enterprise Analyzer 生成的数据和结果。您可以与应用程序团队的所有成员共享此实例。此外，在数据库中创建一个名为 `m2_ea`（或任何其他合适的名称）的空架构。为授权用户定义凭证，允许其创建、插入、更新和删除此架构中的项目。您可以从 Amazon RDS 控制台或从账户管理员处获取数据库名称、服务器端点 URL 和 TCP 端口。
+ 确保您已设置了对您的的编程访问权限 AWS 账户。有关更多信息，请参阅《Amazon Web Services 一般参考》**中的[编程访问](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)。

## 步骤 1：设置
<a name="tutorial-ea-step1"></a>

1. 使用您在 WorkSpaces 应用程序的欢迎电子邮件中收到的 URL 开始与 WorkSpaces 应用程序的会话。

1. 使用您的电子邮件作为用户 ID，并定义您的永久密码。

1. 选择 Enterprise Analyzer 堆栈。

1. 在 “ WorkSpaces 应用程序” 菜单页面上，选择 “**桌面**” 以访问队列正在进行流式传输的 Windows 桌面。

## 步骤 2：在 Windows 上创建基于 Amazon S3 的虚拟文件夹
<a name="tutorial-ea-step2"></a>

**注意**  
如果您在 AWS 大型机现代化预览版中已经使用过 Rclone，则必须更新`m2-rclone.cmd`到位于中的较新版本。`C:\Users\Public`

1. 使用文件资源管理器将 `C:\Users\Public` 中提供的 `m2-rclone.conf` 和 `m2-rclone.cmd` 文件复制到您的主文件夹 `C:\Users\PhotonUser\My Files\Home Folder`。

1. 使用您的 AWS 访问密钥和相应的密钥以及您的密钥更新`m2-rclone.conf`配置参数 AWS 区域。

   ```
   [m2-s3]
   type = s3
   provider = AWS
   access_key_id = YOUR-ACCESS-KEY
   secret_access_key = YOUR-SECRET-KEY
   region = YOUR-REGION
   acl = private
   server_side_encryption = AES256
   ```

1. 在 `m2-rclone.cmd` 中，进行以下更改：
   + 将 `amzn-s3-demo-bucket` 更改为您的 Amazon S3 存储桶名称。例如 `m2-s3-mybucket`。
   + 将 `your-s3-folder-key` 更改为您的 Amazon S3 存储桶密钥。例如 `myProject`。
   + 将 `your-local-folder-path` 更改为要从包含应用程序文件的 Amazon S3 存储桶同步应用程序文件的目录路径。例如 `D:\PhotonUser\My Files\Home Folder\m2-new`。此同步目录必须是主文件夹的子目录， WorkSpaces 应用程序才能在会话开始和结束时对其进行正确备份和恢复。

   ```
   :loop
   timeout /T 10
   "C:\Program Files\rclone\rclone.exe" sync m2-s3:amzn-s3-demo-bucket/your-s3-folder-key "D:\PhotonUser\My Files\Home Folder\your-local-folder-path" --config "D:\PhotonUser\My Files\Home Folder\m2-rclone.conf"
   goto :loop
   ```

1. 打开 Windows 命令提示符，使用 cd 命令切换到 `C:\Users\PhotonUser\My Files\Home Folder`（如果需要），然后运行 `m2-rclone.cmd`。此命令脚本连续循环运行，每 10 秒将您的 Amazon S3 存储桶和密钥同步到本地文件夹。您可以根据需要调整超时。您应该在 Windows 文件资源管理器的 Amazon S3 存储桶中看到该应用程序的源代码。

要将新文件添加到您正在处理的文件集中或更新现有文件，请将文件上传到 Amazon S3 存储桶，这些文件将在 `m2-rclone.cmd` 中定义的下一次迭代中同步到您的目录。同样，如果要删除某些文件，请将其从 Amazon S3 存储桶中删除。下次同步操作会将其从您的本地目录中删除。

## 步骤 3：为 Amazon RDS 实例创建 ODBC 源
<a name="tutorial-ea-step3"></a>

1. 要启动 EA\$1Admin 工具，请导航到浏览器窗口左上角的应用程序选择器菜单，然后选择 **MF EA\$1Admin**。

1. 从**管理**菜单中，选择 **ODBC 数据来源**，然后从**用户 DSN** 选项卡中选择**添加**。

1. 在“创建新数据来源”对话框中，选择 **PostgreSQL Unicode** 驱动程序，然后选择**完成**。

1. 在 **PostgreSQL Unicode ODBC 驱动程序 (psqlODBC) 设置**对话框中，定义并记下所需的数据来源名称。使用您之前创建的 RDS 实例中的值填写以下参数：  
**描述**  
可选描述，可帮助您快速识别此数据库连接。  
**数据库**  
您之前创建的 Amazon RDS 数据库。  
**服务器**  
Amazon RDS 端点。  
**端口：**  
Amazon RDS 端口。  
**用户名称**  
Amazon RDS 实例中所定义的用户名称。  
**密码**  
Amazon RDS 实例中所定义的密码。

1. 选择**测试**以验证与 Amazon RDS 的连接是否成功，然后选择**保存**以保存您的新用户 DSN。

1. 等待直到看到确认创建了正确工作区的消息，然后选择**确定**以完成 ODBC 数据来源操作并关闭 EA\$1Admin 工具。

1. 再次导航到应用程序选择器菜单，然后选择“Enterprise Analyzer”以启动该工具。选择**新建**。

1. 在工作区配置窗口中，输入您的工作区名称并定义其位置。如果您在此配置下工作，该工作区可以是基于 Amazon S3 的磁盘，也可以是您的主文件夹（如果需要）。

1. 选择**选择其他数据库**以连接到您的 Amazon RDS 实例。

1. 从选项中选择 **Postgre** 图标，然后选择**确定**。

1. 在**选项 – 定义连接参数**下的 Windows 设置中，输入您创建的数据来源的名称。此外，输入数据库名称、架构名称、用户名和密码。选择**确定**。

1. 等待 Enterprise Analyzer 创建用于存储结果所需的所有表、索引等。此过程可能需要几分钟时间。Enterprise Analyzer 会确认数据库和工作区何时准备就绪可供使用。

1. 再次导航到应用程序选择器菜单，然后选择“Enterprise Analyzer”以启动该工具。

1. Enterprise Analyzer 启动窗口出现在新的所选工作区位置中。选择**确定**。

1. 在左侧窗格中，导航到存储库，选择存储库名称，然后选择**向工作区添加文件/文件夹**。选择存储应用程序代码的文件夹，将其添加到工作区。如果你愿意，你可以使用前面的 BankDemo示例代码。Enterprise Analyzer 提示您验证这些文件时，请选择**验证**以启动初始 Enterprise Analyzer 验证报告。该过程可能需要几分钟才能完成，具体取决于您的应用程序的大小。

1. 展开工作区，以便查看已添加到工作区的文件和文件夹。对象类型和圈复杂度报告也显示在**图表查看器**窗格的上象限中。

现在，您可以使用 Enterprise Analyzer 来完成所有需要的任务。

## 后续会话
<a name="tutorial-ea-step4"></a>

1. 使用您在 WorkSpaces 应用程序的欢迎电子邮件中收到的 URL 开始与 WorkSpaces 应用程序的会话。

1. 使用您的电子邮件和永久密码登录。

1. 选择 Enterprise Analyzer 堆栈。

1. 启动 `Rclone` 以连接到 Amazon S3 支持的磁盘（如果您使用此选项共享工作区文件）。

1. 启动 Enterprise Analyzer 来完成任务。

## 对工作区连接进行故障排除
<a name="tutorial-ea-step5"></a>

当您尝试重新连接到 Enterprise Analyzer 工作区时，可能会看到类似如下错误：

```
Cannot access the workspace directory D:\PhotonUser\My Files\Home Folder\EA_BankDemo. The workspace has been created on a non-shared disk of the EC2AMAZ-E6LC33H computer. Would you like to correct the workspace directory location?
```

要解决此问题，请选择**确定**来清除消息，然后完成以下步骤。

1. 在 “ WorkSpaces 应用程序” 中，选择工具栏上的 “**启动应用程序**” 图标，然后选择 **ea\$1admin 以启动 En** terprise Analyzer 管理工具。  
![\[WorkSpaces 应用程序启动选择器菜单，其中选择了 Rocket Enterprise 开发者管理工具。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/aas-launch-selector.png)

1. 从**管理**菜单中，选择**刷新工作区路径...**。  
![\[选择 “刷新工作区路径” 的 Rocket Enterprise Analyzer 管理工具\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ea_admin-administer-refresh.png)

1. 在**选择工作区**下，选择所需的工作区，然后选择**确定**。  
![\[Rocket Enterprise Analyzer 管理工具的 “选择工作区” 对话框，其中选择了一个项目。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ea_admin-select-workspace.png)

1. 选择**确定**，确认错误消息。  
![\[Enterprise Analyzer 错误消息“无法访问工作区目录”（选择了“确定”）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ea_admin-select-workspace-error.png)

1. 在**工作区目录网络路径**下，输入工作区的正确路径，例如 `D:\PhotonUser\My Files\Home Folder\EA\MyWorkspace3`。  
![\[Enterprise Analyzer“工作区目录网络路径”对话框（带有一个示例路径）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ea_admin-workspace-directory-network-path.png)

1. 关闭 Micro Focus Enterprise Analyzer Administration 工具。  
![\[Micro Focus Enterprise Analyzer Administration 工具（已选择“关闭”按钮）。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/ea_admin-close.png)

1. 在 “ WorkSpaces 应用程序” 中，选择工具栏上的 “**启动应用程序**” 图标，然后选择 **EA 启动 Micro Focus E** nterprise Analyzer。  
![\[选择了 EA 后， WorkSpaces 应用程序启动应用程序图标。\]](http://docs.aws.amazon.com/zh_cn/m2/latest/userguide/images/aas-launch-ea.png)

1. 重复步骤 3 – 5。

Micro Focus Enterprise Analyzer 此时应可使用现有工作区打开。

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

如果您不再需要为本教程创建的资源，请将其删除，以免继续产生费用。完成以下步骤：
+ 使用 **EA\$1Admin** 工具删除工作区。
+ 删除您为本教程创建的 S3 存储桶。有关更多信息，请参阅《Amazon S3 用户指南》**中的[删除存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。
+ 选择您为本教程创建的数据库。有关更多信息，请参阅[删除数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html#CHAP_GettingStarted.Deleting.PostgreSQL)。

# 教程：在 WorkSpaces 应用程序上设置 Rocket 企业开发人员
<a name="set-up-ed"></a>

本教程介绍如何为一个或多个大型机应用程序设置 Rocket Enterprise Developer（前身为 Micro Focus Enterprise Developer），以便使用企业开发者功能对其进行维护、编译和测试。该设置基于 AWS 大型机现代化与客户共享的 WorkSpaces 应用程序 Windows 映像，以及 WorkSpaces 应用程序队列和堆栈的创建，如中所述。[教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket](set-up-appstream-mf.md)

**重要**  
本教程中的步骤假设您使用可下载的 CloudFormation 模板 [cfn-m2-](https://d1vi4vxke6c2hu.cloudfront.net/tutorial/cfn-m2-appstream-fleet-ea-ed.yaml) .yaml 来设置 WorkSpaces 应用程序。appstream-fleet-ea-ed有关更多信息，请参阅 [教程：设置 WorkSpaces 应用程序以用于 Rocket Enterprise Analyzer 和 Rocket](set-up-appstream-mf.md)。  
如果 Enterprise Developer 实例集和堆栈已启动并正在运行时，则必须执行此设置的步骤。

有关企业开发者 v7 功能和交付成果的完整描述，请在 Rocket Softwar [e（前身为 Micro Focus）网站上查看其up-to-date 在线文档 (v7.0)](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)。

## 映像内容
<a name="set-up-ed-image-contents"></a>

除了企业开发者本身，该图像还包含包含 Rumba（ TN3270 模拟器）的图像。此外，它还包含以下工具和库。

第三方工具
+ [Python](https://www.python.org/)
+ [Rclone](https://rclone.org/)
+ [pgAdmin](https://www.pgadmin.org/)
+ [git-scm](https://git-scm.com/)
+ [PostgreSQL ODBC 驱动程序](https://odbc.postgresql.org/)

`C:\Users\Public` 中的库
+ BankDemo 企业开发者的源代码和项目定义:`m2-bankdemo-template.zip`.
+ 大型机的 MFA 安装包：`mfa.zip`。有关更多信息，请参阅《Micro Focus Enterprise Developer》**文档中的[大型机访问权限概述](https://www.microfocus.com/documentation/enterprise-developer/30pu12/ED-VS2012/BKMMMMINTRS001.html)。
+ Rclone 的命令和配置文件（教程中的使用说明）：`m2-rclone.cmd` 和 `m2-rclone.conf`。

如果您需要访问尚未加载到 CodeCommit 存储库但在 Amazon S3 存储桶中可用的源代码，例如将源代码初始加载到 git 中，请按照中所述的步骤创建虚拟 Windows 磁盘[教程：在 WorkSpaces 应用程序上设置企业分析器](set-up-ea.md)。

**Topics**
+ [映像内容](#set-up-ed-image-contents)
+ [先决条件](#tutorial-ed-prerequisites)
+ [步骤 1：由个人 Enterprise Developer 用户设置](#tutorial-ed-step1)
+ [步骤 2：在 Windows 上创建基于 Amazon S3 的虚拟文件夹（可选）](#tutorial-ed-step2)
+ [步骤 3：克隆存储库](#tutorial-ed-step3)
+ [后续会话](#tutorial-ed-step4)
+ [清理 资源](#tutorial-ed-clean)

## 先决条件
<a name="tutorial-ed-prerequisites"></a>
+ 一个或多个装有待维护应用程序源代码的 CodeCommit 存储库。存储库的设置应符合上述CI/CD管道的要求，以便通过结合使用这两种工具来实现协同效应。
+ 每个用户都必须拥有账户管理员根据 [AWS 的身份验证和访问控制中的信息定义的一个或多个存储库的](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control.html)证书 CodeCommit。 CodeCommit 这些证书的结构在 [AWS CodeCommit 的身份验证和访问控制](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control.html)中进行了审查，IAM 授权的完整[参考见CodeCommit 权限参考](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-permissions-reference.html)：管理员可以为不同的角色定义不同的 IAM 策略，这些角色具有每个存储库的特定角色的证书，并限制其对用户的授权仅限于他在给定存储库上必须完成的特定任务集。 CodeCommit 因此，账户管理员将为 CodeCommit 仓库的每位维护者生成一个主用户，并通过选择适当的 IAM 访问策略向该用户授予 CodeCommit访问所需一个或多个存储库的权限。

## 步骤 1：由个人 Enterprise Developer 用户设置
<a name="tutorial-ed-step1"></a>

1. 获取您的 IAM 凭证：

   1. 连接 AWS 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 按照《AWS CodeCommit 用户指南》**中[适用于使用 Git 凭证的 HTTPS 用户的设置](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)的步骤 3 中描述的过程操作。

   1. 复制 IAM 为您生成的 CodeCommit特定登录证书，方法是显示、复制这些信息，然后将其粘贴到本地计算机上的安全文件中，或者选择**下载证书将此信息下载**为.CSV 文件。您需要该信息才能连接到 CodeCommit。

1. 根据欢迎电子邮件中收到的网址开始与 WorkSpaces 应用程序的会话。使用您的电子邮件作为用户名并创建密码。

1. 选择您的 Enterprise Developer 堆栈。

1. 在菜单页面上，选择**桌面**以访问实例集正在进行流式传输的 Windows 桌面。

## 步骤 2：在 Windows 上创建基于 Amazon S3 的虚拟文件夹（可选）
<a name="tutorial-ed-step2"></a>

如果需要 Rclone（见上文），请在 Windows 上创建基于 Amazon S3 的虚拟文件夹：（如果所有应用程序工件都完全来自访问权限，则可选）。 CodeCommit 

**注意**  
如果您在 AWS 大型机现代化预览版中已经使用过 Rclone，则必须更新`m2-rclone.cmd`到位于中的较新版本。`C:\Users\Public`

1. 使用文件资源管理器将 `C:\Users\Public` 中提供的 `m2-rclone.conf` 和 `m2-rclone.cmd` 文件复制到您的主文件夹 `C:\Users\PhotonUser\My Files\Home Folder`。

1. 使用您的 AWS 访问密钥和相应的密钥以及您的密钥更新`m2-rclone.conf`配置参数 AWS 区域。

   ```
   [m2-s3]
   type = s3
   provider = AWS
   access_key_id = YOUR-ACCESS-KEY
   secret_access_key = YOUR-SECRET-KEY
   region = YOUR-REGION
   acl = private
   server_side_encryption = AES256
   ```

1. 在 `m2-rclone.cmd` 中，进行以下更改：
   + 将 `amzn-s3-demo-bucket` 更改为您的 Amazon S3 存储桶名称。例如 `m2-s3-mybucket`。
   + 将 `your-s3-folder-key` 更改为您的 Amazon S3 存储桶密钥。例如 `myProject`。
   + 将 `your-local-folder-path` 更改为要从包含应用程序文件的 Amazon S3 存储桶同步应用程序文件的目录路径。例如 `D:\PhotonUser\My Files\Home Folder\m2-new`。此同步目录必须是主文件夹的子目录， WorkSpaces 应用程序才能在会话开始和结束时对其进行正确备份和恢复。

   ```
   :loop
   timeout /T 10
   "C:\Program Files\rclone\rclone.exe" sync m2-s3:amzn-s3-demo-bucket/your-s3-folder-key "D:\PhotonUser\My Files\Home Folder\your-local-folder-path" --config "D:\PhotonUser\My Files\Home Folder\m2-rclone.conf"
   goto :loop
   ```

1. 打开 Windows 命令提示符，使用 cd 命令切换到 `C:\Users\PhotonUser\My Files\Home Folder`（如果需要），然后运行 `m2-rclone.cmd`。此命令脚本连续循环运行，每 10 秒将您的 Amazon S3 存储桶和密钥同步到本地文件夹。您可以根据需要调整超时。您应该在 Windows 文件资源管理器的 Amazon S3 存储桶中看到该应用程序的源代码。

要将新文件添加到您正在处理的文件集中或更新现有文件，请将文件上传到 Amazon S3 存储桶，这些文件将在 `m2-rclone.cmd` 中定义的下一次迭代中同步到您的目录。同样，如果要删除某些文件，请将其从 Amazon S3 存储桶中删除。下次同步操作会将其从您的本地目录中删除。

## 步骤 3：克隆存储库
<a name="tutorial-ed-step3"></a>

1. 导航到浏览器窗口左上角的应用程序选择器菜单，然后选择“Enterprise Developer”。

1. 在您的主文件夹中完成 Enterprise Developer 所需的工作区创建，选择`C:\Users\PhotonUser\My Files\Home Folder`（又或 `D: \PhotonUser\My Files\Home Folder`）作为工作区的位置。

1. 在 Enterprise Developer 中，进入项目资源管理器，右键单击并选择 “**导入****...**”、“Git”、“Git”、“从 **Gi **t**** **Clone URI 中的**项目**” 来克隆 CodeCommit **仓库。然后，输入您的 CodeCommit特定登录凭据并完成 Eclipse 对话框以导入代码。

中的 CodeCommit git 存储库现已克隆到您的本地工作区中。

您的 Enterprise Developer 工作区现已准备就绪，可以开始对您的应用程序进行维护工作。特别是，您可以使用与 Enterprise Developer 集成的本地企业服务器 (ES) 实例以交互方式调试和运行应用程序，以便在本地验证您的更改。

**注意**  
本地企业开发人员环境（包括本地企业服务器实例）在 Windows 下运行，而 AWS 大型机现代化则在 Linux 下运行。我们建议您在向 AWS 大型机现代化提供的 Linux 环境中运行补充测试，然后再将新应用程序投入生产。 CodeCommit 

## 后续会话
<a name="tutorial-ed-step4"></a>

当您选择 WorkSpaces 应用程序管理下的文件夹（例如用于克隆 CodeCommit 存储库的主文件夹）时，该文件夹将在各个会话中透明地保存和恢复。您可以在下次需要使用该应用程序时完成以下步骤：

1. 根据欢迎电子邮件中收到的网址开始与 WorkSpaces 应用程序的会话。

1. 使用您的电子邮件和永久密码登录。

1. 选择 Enterprise Developer 堆栈。

1. 启动 `Rclone` 以连接（见上文）到 Amazon S3 支持的磁盘（如果您使用此选项共享工作区文件）。

1. 启动 Enterprise Developer 来完成工作。

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

如果您不再需要为本教程创建的资源，请将其删除，以免继续产生费用。完成以下步骤：
+ 删除您为本教程创建的 CodeCommit 存储库。有关更多信息，请参阅《*AWS CodeCommit 用户指南》*中的[删除 CodeCommit 存储库](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-delete-repository.html)。
+ 删除您为本教程创建的数据库。有关更多信息，请参阅[删除数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html#CHAP_GettingStarted.Deleting.PostgreSQL)。

# AWS 大型机现代化中可用的批处理工具
<a name="utilities-m2"></a>

大型机应用程序通常使用批处理实用程序来执行特定功能，例如对数据进行排序、使用 FTP 传输文件、将数据加载到数据库（例如） DB2、从数据库中卸载数据等。

当您将应用程序迁移到 AWS 大型机现代化时，您需要功能等同的替代实用程序，这些实用程序可以执行与您在大型机上使用的相同任务。其中一些实用程序可能已经作为 AWS 大型机现代化运行时引擎的一部分提供，但我们提供了以下替代实用程序：
+ M2SFTP – 使用 SFTP 协议启用安全的文件传输。
+ M2WAIT – 等待指定时间后，再继续执行批处理作业中的下一步操作。
+ TXT2PDF-将文本文件转换为 PDF 格式。
+ M2DFUTIL - 为数据集提供备份、恢复、删除和复制功能，类似于大型机 ADRDSSU 实用程序所提供的支持。
+ M2RUNCMD-允许你直接从 JCL 运行 Rocket Software（前身为 Micro Focus）命令、脚本和系统调用。

我们根据客户反馈开发了这些批处理实用程序，旨在使其提供与大型机实用程序相同的功能。目标是尽可能顺利地从大型机过渡到 AWS 大型机现代化。

**Topics**
+ [二进制位置](#location-utilities)
+ [M2SFTP 批处理实用程序](m2sftp.md)
+ [M2WAIT 批处理实用程序](m2wait.md)
+ [TXT2PDF 批处理实用程序](txt2pdf.md)
+ [M2DFUTIL 批处理实用程序](m2dfutil.md)
+ [M2RUNCMD 批处理实用程序](m2runcmd.md)

## 二进制位置
<a name="location-utilities"></a>

这些实用程序已预装在 Rocket Enterprise Developer (ED) 和火箭软件 (ES) 产品上。您可以在以下位置找到 ED 和 ES 所有变体的实用程序：
+ Linux：`/opt/aws/m2/microfocus/utilities/64bit`
+ Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\32bit`
+ Windows（64 位）：`C:\AWS\M2\MicroFocus\Utilities\64bit`

# M2SFTP 批处理实用程序
<a name="m2sftp"></a>

M2SFTP 是一个 JCL 实用程序，旨在使用安全文件传输协议 (SFTP) 在系统之间执行安全的文件传输。该程序使用 Putty SFTP 客户端 `psftp` 来执行实际的文件传输。该程序的工作原理与大型机 FTP 实用程序类似，使用用户和密码进行身份验证。

**注意**  
不支持使用公钥进行身份验证。

要将您的大型机 FTP JCLs 转换为使用 SFTP，请更改为`PGM=FTP`。`PGM=M2SFTP`

**Topics**
+ [支持的平台](#m2sftp-platforms)
+ [安装依赖项](#m2sftp-dependencies)
+ [配置 M2SFTP 以实现 AWS 大型机现代化托管](#m2sftp-configure-managed)
+ [在 Amazon EC2（包括 WorkSpaces 应用程序）上为 AWS 大型机现代化运行时配置 M2SFTP](#m2sftp-configure-customer-infra)
+ [样本 JCLs](#m2sftp-jcl)
+ [Putty SFTP (PSFTP) 客户端命令参考](#m2sftp-cmd-ref)
+ [后续步骤](#m2sftp-next)

## 支持的平台
<a name="m2sftp-platforms"></a>

您可以在以下任何平台上使用 M2SFTP：
+ AWS 大型机现代化火箭软件（前身为 Micro Focus）托管
+ 火箭软件运行时（在亚马逊 EC2 上）
+ 火箭软件企业开发者 (ED) 和 Rocket Software 企业服务器 (ES) 产品的所有变体。

## 安装依赖项
<a name="m2sftp-dependencies"></a>

**在 Windows 上安装 Putty SFTP 客户端**
+ 下载并安装 [Putty SFTP](https://www.putty.org/) 客户端。

**在 Linux 上安装 Putty SFTP 客户端：**
+ 运行以下命令来安装 Putty SFTP 客户端：

  ```
    sudo yum -y install putty
  ```

## 配置 M2SFTP 以实现 AWS 大型机现代化托管
<a name="m2sftp-configure-managed"></a>

如果您迁移的应用程序在 AWS 大型机现代化管理版上运行，则需要按如下方式配置 M2SFTP。
+ 为 MFFTP 设置相应的 Rocket 企业服务器环境变量。下面是几个示例：
  + `MFFTP_TEMP_DIR`
  + `MFFTP_SENDEOL`
  + `MFFTP_TIME`
  + `MFFTP_ABEND`

  您可以根据需要设置任意数量的变量。您可以在 JCL 中使用 `ENVAR DD` 语句设置它们。有关这些变量的更多信息，请参阅 Micro Focus 文档中的 [MFFTP 控制变量](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-3F94BBC8-CB97-4642-A4A7-4235C0C079E2.html)。

要测试配置，请参阅[样本 JCLs](#m2sftp-jcl)。

## 在 Amazon EC2（包括 WorkSpaces 应用程序）上为 AWS 大型机现代化运行时配置 M2SFTP
<a name="m2sftp-configure-customer-infra"></a>

如果您迁移的应用程序在 Amazon EC2 AWS 的大型机现代化运行时上运行，请按如下方式配置 M2SFTP。

1. 更改 [Micro Focus JES 程序路径](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html)以包含批处理实用程序的二进制位置。如果您需要指定多个路径，请在 Linux 上使用冒号 (`:`) 分隔路径，在 Windows 上使用分号 (`;`) 分隔路径。
   + Linux：`/opt/aws/m2/microfocus/utilities/64bit`
   + Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\32bit`
   + Windows（64 位）：`C:\AWS\M2\MicroFocus\Utilities\64bit`

1. 为 MFFTP 设置相应的 Rocket 企业服务器环境变量。下面是几个示例：
   + `MFFTP_TEMP_DIR`
   + `MFFTP_SENDEOL`
   + `MFFTP_TIME`
   + ``MFFTP\$1ABEND

   您可以根据需要设置任意数量的变量。您可以在 JCL 中使用 `ENVAR DD` 语句设置它们。有关这些变量的更多信息，请参阅 Micro Focus 文档中的 [MFFTP 控制变量](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-3F94BBC8-CB97-4642-A4A7-4235C0C079E2.html)。

要测试配置，请参阅[样本 JCLs](#m2sftp-jcl)。

## 样本 JCLs
<a name="m2sftp-jcl"></a>

要测试安装，您可以使用以下其中一个示例 JCL 文件。

**M2 SFTP1 .jcl**

此 JCL 展示了如何调用 M2SFTP，以便将文件发送到远程 SFTP 服务器。请注意 `ENVVAR DD` 语句中设置的环境变量。

```
//M2SFTP1 JOB 'M2SFTP1',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Sample SFTP JCL step to send a file to SFTP server* 
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2SFTP,
//            PARM='127.0.0.1 (EXIT=99 TIMEOUT 300'
//*
//SYSFTPD  DD  *
RECFM FB
LRECL 80
SBSENDEOL CRLF
MBSENDEOL CRLF
TRAILINGBLANKS FALSE
/*
//NETRC    DD  *
machine 127.0.0.1 login sftpuser password sftppass
/*
//SYSPRINT DD  SYSOUT=*
//OUTPUT   DD  SYSOUT=*
//STDOUT   DD  SYSOUT=*
//INPUT    DD  *
type a
locsite notrailingblanks
cd files
put 'AWS.M2.TXT2PDF1.PDF' AWS.M2.TXT2PDF1.pdf   
put 'AWS.M2.CARDDEMO.CARDDATA.PS' AWS.M2.CARDDEMO.CARDDATA.PS1.txt
quit
/*
//ENVVAR   DD *
MFFTP_VERBOSE_OUTPUT=ON
MFFTP_KEEP=N
/*
//*
//
```

**M2 SFTP2 .jcl**

此 JCL 展示了如何调用 M2SFTP，以便接收来自远程 SFTP 服务器的文件。请注意 `ENVVAR DD` 语句中设置的环境变量。

```
//M2SFTP2 JOB 'M2SFTP2',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Sample SFTP JCL step to receive a file from SFTP server* 
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2SFTP
//*
//SYSPRINT DD  SYSOUT=*
//OUTPUT   DD  SYSOUT=*
//STDOUT   DD  SYSOUT=*
//INPUT    DD  *
open 127.0.0.1
sftpuser
sftppass
cd files
locsite recfm=fb lrecl=150
get AWS.M2.CARDDEMO.CARDDATA.PS.txt +
'AWS.M2.CARDDEMO.CARDDATA.PS2' (replace
quit
/*
//ENVVAR   DD *
MFFTP_VERBOSE_OUTPUT=ON
MFFTP_KEEP=N
/*
//*
//
```

**注意**  
我们强烈建议将 FTP 凭证存储在 NETRC 文件中，并限制只有经过授权的用户才能访问。

## Putty SFTP (PSFTP) 客户端命令参考
<a name="m2sftp-cmd-ref"></a>

PSFTP 客户端不支持所有 FTP 命令。以下列表显示了 PSFTP 支持的所有命令。


| 命令 | 说明 | 
| --- | --- | 
|  \$1  |  运行本地命令  | 
|  bye  |  完成 SFTP 会话  | 
|  cd  |  更改远程工作目录  | 
|  chmod  |  更改文件权限和模式  | 
|  关闭  |  完成 SFTP 会话但不退出 PSFTP  | 
|  del  |  删除远程服务器上的文件  | 
|  dir  |  列出远程文件  | 
|  exit  |  完成 SFTP 会话  | 
|  入  |  将文件从服务器下载到本地机器上  | 
|  help  |  提供帮助  | 
|  lcd  |  更改本地工作目录  | 
|  lpwd  |  打印本地工作目录  | 
|  ls  |  列出远程文件  | 
|  mget  |  一次下载多个文件  | 
|  mkdir  |  在远程服务器上创建目录  | 
|  mput  |  一次上传多个文件  | 
|  mv  |  移动或重命名远程服务器上的文件  | 
|  open  |  连接到主机  | 
|  put  |  将文件从本地机器上传到服务器  | 
|  pwd  |  打印远程工作目录  | 
|  quit  |  完成 SFTP 会话  | 
|  reget  |  继续下载文件  | 
|  ren  |  移动或重命名远程服务器上的文件  | 
|  reput  |  继续上传文件  | 
|  rm  |  删除远程服务器上的文件  | 
|  rmdir  |  删除远程服务器上的目录  | 

## 后续步骤
<a name="m2sftp-next"></a>

要使用 SFTP 将文件上传和下载到亚马逊简单存储服务，您可以将 M2SFTP 与结合使用 AWS Transfer Family，如以下博客文章中所述。
+ [使用 AWS SFTP 逻辑目录构建简单的数据分发服务](https://aws.amazon.com/blogs/storage/using-aws-sftp-logical-directories-to-build-a-simple-data-distribution-service/)
+ [启用密码身份验证以供 AWS Transfer for SFTP 使用 AWS Secrets Manager](https://aws.amazon.com/blogs/storage/enable-password-authentication-for-aws-transfer-for-sftp-using-aws-secrets-manager/)

# M2WAIT 批处理实用程序
<a name="m2wait"></a>

M2WAIT 是一个大型机实用程序，允许您在 JCL 脚本中引入等待期，即通过以秒、分钟或小时为单位指定持续时间。您可以直接从 JCL 调用 M2WAIT，方法是将要等待的时间作为输入参数传递。在内部，M2WAIT 程序调用 Rocket Software（前身为 Micro Focus）提供的模块`C$SLEEP`等待指定的时间。

**注意**  
您可以使用 Micro Focus 别名来替换 JCL 脚本中的名称。有关更多信息，请参阅 Micro Focus 文档中的 [JES 别名](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-D4206FF9-32C4-43E7-9413-5E7E96AA8092.html)。

**Topics**
+ [支持的平台](#m2wait-platforms)
+ [配置 M2WAIT 以实现 AWS 大型机现代化托管](#m2wait-configure-managed)
+ [在 Amazon EC2（包括 WorkSpaces 应用程序）上为 AWS 大型机现代化运行时配置 M2WAIT](#m2wait-configure-customer-infra)
+ [示例 JCL](#m2wait-jcl)

## 支持的平台
<a name="m2wait-platforms"></a>

您可以在以下任何平台上使用 M2WAIT：
+ AWS 大型机现代化火箭软件（前身为 Micro Focus）托管
+ 火箭软件运行时（在亚马逊 EC2 上）
+ 火箭软件企业开发者 (ED) 和 Rocket Software 企业服务器 (ES) 产品的所有变体。

## 配置 M2WAIT 以实现 AWS 大型机现代化托管
<a name="m2wait-configure-managed"></a>

如果您迁移的应用程序在 AWS 大型机现代化管理版上运行，则需要按如下方式配置 M2WAIT。
+ 通过传递输入参数（如[示例 JCL](#m2wait-jcl) 中所示）在 JCL 中使用 M2WAIT 程序。

## 在 Amazon EC2（包括 WorkSpaces 应用程序）上为 AWS 大型机现代化运行时配置 M2WAIT
<a name="m2wait-configure-customer-infra"></a>

如果您迁移的应用程序在 Amazon EC2 AWS 的大型机现代化运行时上运行，请按如下方式配置 M2WAIT。

1. 更改 [Micro Focus JES 程序路径](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html)以包含批处理实用程序的二进制位置。如果您需要指定多个路径，请在 Linux 上使用冒号 (`:`) 分隔路径，在 Windows 上使用分号 (`;`) 分隔路径。
   + Linux：`/opt/aws/m2/microfocus/utilities/64bit`
   + Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\32bit`
   + Windows（64 位）：`C:\AWS\M2\MicroFocus\Utilities\64bit`

1. 通过传递输入参数（如[示例 JCL](#m2wait-jcl) 中所示）在 JCL 中使用 M2WAIT 程序。

## 示例 JCL
<a name="m2wait-jcl"></a>

要测试安装，您可以使用 `M2WAIT1.jcl` 程序。

此示例 JCL 展示了如何调用 M2WAIT 并采用几个不同的持续时间将其进行传递。

```
//M2WAIT1 JOB 'M2WAIT',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Wait for 12 Seconds*
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2WAIT,PARM='S012'
//SYSOUT DD SYSOUT=*
//*
//*-------------------------------------------------------------------**
//* Wait for 0 Seconds (defaulted to 10 Seconds)*
//*-------------------------------------------------------------------**
//*
//STEP02 EXEC PGM=M2WAIT,PARM='S000'
//SYSOUT DD SYSOUT=*
//*
//*-------------------------------------------------------------------**
//* Wait for 1 Minute*
//*-------------------------------------------------------------------**
//*
//STEP03 EXEC PGM=M2WAIT,PARM='M001'
//SYSOUT DD SYSOUT=*
//*
//
```

# TXT2PDF 批处理实用程序
<a name="txt2pdf"></a>

TXT2PDF 是一种大型机实用程序，通常用于将文本文件转换为 PDF 文件。此实用程序使用相同的 TXT2 PDF 源代码（z/OS免费软件）。我们对其进行了修改，使其在 AWS 大型机现代化火箭软件（前身为 Micro Focus）运行时环境下运行。

**Topics**
+ [支持的平台](#txt2pdf-platforms)
+ [为 AWS 大型机现代化配置 TXT2 PDF 托管](#txt2pdf-configure-managed)
+ [在 Amazon EC2 上为 AWS 大型机现代化运行时配置 TXT2 PDF（包括 WorkSpaces 应用程序）](#txt2pdf-configure-customer-infra)
+ [示例 JCL](#txt2pdf-jcl)
+ [修改](#txt2pdf-mods)
+ [参考](#txt2pdf-ref)

## 支持的平台
<a name="txt2pdf-platforms"></a>

您可以在以下任何平台上使用 TXT2 PDF：
+ AWS 大型机现代化火箭软件托管
+ 火箭软件运行时（在亚马逊 EC2 上）
+ 火箭企业开发者 (ED) 和 Rocket Enterprise Server (ES) 产品的所有变体。

## 为 AWS 大型机现代化配置 TXT2 PDF 托管
<a name="txt2pdf-configure-managed"></a>

如果您迁移的应用程序在 AWS 大型机现代化管理版上运行，请按如下方式配置 TXT2 PDF。
+ 创建一个名为 `AWS.M2.REXX.EXEC` 的 REXX EXEC 库。下载这些 [REXX 模块](https://drm0z31ua8gi7.cloudfront.net/utilities/mf/TXT2PDF/rexx/TXT2PDF_rexx.zip)并将其复制到库中。
  + `TXT2PDF.rex`- TXT2 PDF z/OS 免费软件（已修改）
  + `TXT2PDFD.rex`- TXT2 PDF z/OS 免费软件（未修改）
  + `TXT2PDFX.rex`- TXT2 PDF z/OS 免费软件（已修改）
  + `M2GETOS.rex` – 检查操作系统类型（Windows 或 Linux）

要测试配置，请参阅[示例 JCL](#txt2pdf-jcl)。

## 在 Amazon EC2 上为 AWS 大型机现代化运行时配置 TXT2 PDF（包括 WorkSpaces 应用程序）
<a name="txt2pdf-configure-customer-infra"></a>

如果您迁移的应用程序在 Amazon EC2 AWS 的大型机现代化运行时上运行，请按如下方式配置 TXT2 PDF。

1. 将 Rocket Software 环境变量`MFREXX_CHARSET`设置为适当的值，例如 ASCII 数据的 “`A`”。
**重要**  
输入错误的值可能会导致数据转换问题（从 EBCDIC 到 ASCII），使生成的 PDF 无法读取或无法操作。我们建议设置 `MFREXX_CHARSET` 来匹配 `MF_CHARSET`。

1. 更改 [Micro Focus JES 程序路径](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html)以包含批处理实用程序的二进制位置。如果您需要指定多个路径，请在 Linux 上使用冒号 (`:`) 分隔路径，在 Windows 上使用分号 (`;`) 分隔路径。
   + Linux：`/opt/aws/m2/microfocus/utilities/64bit`
   + Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\32bit`
   + Windows（64 位）：`C:\AWS\M2\MicroFocus\Utilities\64bit`

1. 创建一个名为 `AWS.M2.REXX.EXEC`` 的 REXX EXEC 库。下载这些 [REXX 模块](https://drm0z31ua8gi7.cloudfront.net/utilities/mf/TXT2PDF/rexx/TXT2PDF_rexx.zip)并将其复制到库中。
   + `TXT2PDF.rex`- TXT2 PDF z/OS 免费软件（已修改）
   + `TXT2PDFD.rex`- TXT2 PDF z/OS 免费软件（未修改）
   + `TXT2PDFX.rex`- TXT2 PDF z/OS 免费软件（已修改）
   + `M2GETOS.rex` – 检查操作系统类型（Windows 或 Linux）

要测试配置，请参阅[示例 JCL](#txt2pdf-jcl)。

## 示例 JCL
<a name="txt2pdf-jcl"></a>

要测试安装，您可以使用以下其中一个示例 JCL 文件。

**TXT2PDF1.jcl**

此示例 JCL 文件使用 DD 名称进行 TXT2 PDF 转换。

```
//TXT2PDF1 JOB 'TXT2PDF1',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* PRE DELETE*
//*-------------------------------------------------------------------**
//*
//PREDEL  EXEC PGM=IEFBR14
//* 
//DD01     DD DSN=AWS.M2.TXT2PDF1.PDF.VB,                      
//            DISP=(MOD,DELETE,DELETE)
//*
//DD02     DD DSN=AWS.M2.TXT2PDF1.PDF,                       
//            DISP=(MOD,DELETE,DELETE)
//* 
//*-------------------------------------------------------------------**
//* CALL TXT2PDF TO CONVERT FROM TEXT TO PDF (VB)*
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=IKJEFT1B
//*
//SYSEXEC  DD DISP=SHR,DSN=AWS.M2.REXX.EXEC
//*
//INDD     DD *
1THIS IS THE FIRST LINE ON THE PAGE 1
0THIS IS THE THIRD LINE ON THE PAGE 1
-THIS IS THE   6TH LINE ON THE PAGE 1
THIS IS THE   7TH LINE ON THE PAGE 1
+____________________________________ - OVERSTRIKE 7TH LINE          
1THIS IS THE FIRST LINE ON THE PAGE 2
0THIS IS THE THIRD LINE ON THE PAGE 2
-THIS IS THE   6TH LINE ON THE PAGE 2 
THIS IS THE   7TH LINE ON THE PAGE 2
+____________________________________ - OVERSTRIKE 7TH LINE                 
/*
//*
//OUTDD    DD DSN=AWS.M2.TXT2PDF1.PDF.VB,
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(LRECL=256,DSORG=PS,RECFM=VB,BLKSIZE=0)
//*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD DDNAME=SYSIN
//*
//SYSIN    DD *
%TXT2PDF BROWSE Y IN DD:INDD +
OUT DD:OUTDD +
CC YES
/*
//*
//*-------------------------------------------------------------------**
//* CONVERT PDF (VB) TO PDF (LSEQ - BYTE STREAM)*
//*-------------------------------------------------------------------**
//* 
//STEP02 EXEC PGM=VB2LSEQ
//*
//INFILE   DD DSN=AWS.M2.TXT2PDF1.PDF.VB,DISP=SHR             
//*
//OUTFILE  DD DSN=AWS.M2.TXT2PDF1.PDF,                      
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(LRECL=256,DSORG=PS,RECFM=LSEQ,BLKSIZE=0)
//*
//SYSOUT   DD SYSOUT=*
//*
//
```

**TXT2PDF2.jcl**

此示例 JCL 使用 DSN 名称进行 TXT2 PDF 转换。

```
//TXT2PDF2 JOB 'TXT2PDF2',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* PRE DELETE*
//*-------------------------------------------------------------------**
//*
//PREDEL  EXEC PGM=IEFBR14
//* 
//DD01     DD DSN=AWS.M2.TXT2PDF2.PDF.VB,                      
//            DISP=(MOD,DELETE,DELETE)
//*
//DD02     DD DSN=AWS.M2.TXT2PDF2.PDF,                       
//            DISP=(MOD,DELETE,DELETE)
//* 
//*-------------------------------------------------------------------**
//* CALL TXT2PDF TO CONVERT FROM TEXT TO PDF (VB)*
//*-------------------------------------------------------------------**
//* 
//STEP01 EXEC PGM=IKJEFT1B
//*
//SYSEXEC  DD DISP=SHR,DSN=AWS.M2.REXX.EXEC
//*
//INDD     DD *
1THIS IS THE FIRST LINE ON THE PAGE 1
0THIS IS THE THIRD LINE ON THE PAGE 1
-THIS IS THE   6TH LINE ON THE PAGE 1
THIS IS THE   7TH LINE ON THE PAGE 1
+____________________________________ - OVERSTRIKE 7TH LINE          
1THIS IS THE FIRST LINE ON THE PAGE 2
0THIS IS THE THIRD LINE ON THE PAGE 2
-THIS IS THE   6TH LINE ON THE PAGE 2 
THIS IS THE   7TH LINE ON THE PAGE 2
+____________________________________ - OVERSTRIKE 7TH LINE                 
/*
//*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD DDNAME=SYSIN
//*
//SYSIN    DD *
%TXT2PDF BROWSE Y IN DD:INDD +
OUT 'AWS.M2.TXT2PDF2.PDF.VB' +
CC YES
/*
//*
//*-------------------------------------------------------------------**
//* CONVERT PDF (VB) TO PDF (LSEQ - BYTE STREAM)*
//*-------------------------------------------------------------------**
//*
//STEP02 EXEC PGM=VB2LSEQ
//*
//INFILE   DD DSN=AWS.M2.TXT2PDF2.PDF.VB,DISP=SHR             
//*
//OUTFILE  DD DSN=AWS.M2.TXT2PDF2.PDF,                      
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(LRECL=256,DSORG=PS,RECFM=LSEQ,BLKSIZE=0)
//*
//SYSOUT   DD SYSOUT=*
//*
//
```

## 修改
<a name="txt2pdf-mods"></a>

为了让 TXT2 PDF 程序在 AWS 大型机现代化 Rocket Software 运行时环境中运行，我们进行了以下更改：
+ 修改源代码以确保与 Rocket Software REXX 运行时兼容
+ 为确保该程序可以同时在 Windows 和 Linux 操作系统上运行而进行了更改
+ 为支持 EBCDIC 和 ASCII 运行时而进行了修改

## 参考
<a name="txt2pdf-ref"></a>

TXT2PDF 参考和源代码：
+ [文本转 PDF 转换器](https://homerow.net/rexx/txt2pdf/)
+ [z/OS免费软件 TCP/IP 和邮件工具](http://www.lbdsoftware.com/tcpip.html)
+ [TXT2PDF 用户参考指南](http://www.lbdsoftware.com/TXT2PDF-User-Guide.pdf)

# M2DFUTIL 批处理实用程序
<a name="m2dfutil"></a>

M2DFUTIL 是一个 JCL 实用程序，提供数据集备份、还原、删除和复制功能，类似于大型机 ADRDSSU 实用程序提供的支持。该程序保留了 ADRDSSU 中的许多 SYSIN 参数，从而简化了迁移到这个新实用程序的过程。

**Topics**
+ [支持的平台](#m2dfutil-platforms)
+ [平台要求](#m2dfutil-platform)
+ [计划的未来支持](#m2udfutil-future-support)
+ [资产位置](#mdfutil-assets)
+ [在 Amazon EC2（包括 AppStream 2.0）上配置 M2DFUTIL 或 AWS 大型机现代化运行时](#mdfutil-dependencies)
+ [一般语法](#mdfutil-syntax)
+ [样本 JCLs](#mdfutil-sample-jcls)

## 支持的平台
<a name="m2dfutil-platforms"></a>

您可以在以下任何平台上使用 M2DFUTIL：
+ Windows 上的火箭软件（前身为 Micro Focus）ES（64 位和 32 位）
+ Linux 上的火箭软件 ES（64 位）

## 平台要求
<a name="m2dfutil-platform"></a>

M2DFUTIL 依赖于调用脚本来执行正则表达式测试。在 Windows 上，必须安装 Windows Services for Linux (WSL) 才能运行此脚本。

## 计划的未来支持
<a name="m2udfutil-future-support"></a>

目前不可用但未来可用的大型机 ADRDSSU 实用程序功能包括：
+ M2 托管
+ VSAM
+ 对文件重命名的 COPY 支持
+ 对 RESTORE 的 RENAME 支持 
+ 多个 INCLUDE 和 EXCLUDE
+ 通过 DSORG、CREDT、EXPDT 进行子查询的 BY 子句
+ 用于重试入队失败的 MWAIT 子句
+ 对 DUMP/RESTORE 的 S3 存储支持

## 资产位置
<a name="mdfutil-assets"></a>

该实用程序的加载模块在 Linux 上称为 `M2DFUTIL.so`，在 Windows 上称为 `M2DFUTIL.dll`。可在以下位置找到此加载模块：
+ Linux：`/opt/aws/m2/microfocus/utilities/64bit`
+ Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\32bit`
+ Windows（64 位）：`C:\AWS\M2\MicroFocus\Utilities\64bit`

用于正则表达式测试的脚本称为 `compare.sh`。可在以下位置找到此脚本：
+ Linux：`/opt/aws/m2/microfocus/utilities/scripts`
+ Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\scripts`

## 在 Amazon EC2（包括 AppStream 2.0）上配置 M2DFUTIL 或 AWS 大型机现代化运行时
<a name="mdfutil-dependencies"></a>

使用以下内容配置您的 Enterprise Server 区域：
+ 在 **[ES-Environment]** 中添加以下变量
  + `M2DFUTILS_BASE_LOC` - DUMP 输出的默认位置
  + `M2DFUTILS_SCRIPTPATH` - **资产位置**中记录的 `compare.sh` 脚本的位置
  + `M2DFUTILS_VERBOSE` - [VERBOSE 或 NORMAL]。此变量控制 `SYSPRINT ` 输出中的细节级别
+ 验证加载模块路径是否已添加到 `JES\Configuration\JES Program Path` 设置中
+ 验证实用程序目录中的脚本是否具有运行权限。您可以在 Linux 环境中使用 `chmod + x <script name>` 命令添加运行权限

## 一般语法
<a name="mdfutil-syntax"></a>

### DUMP
<a name="mdfutil-dump"></a>

提供将文件从当前编目位置复制到备份位置的功能。此位置当前必须是一个文件系统。

#### 流程
<a name="mdfutil-dump-process"></a>

DUMP 将执行下列操作：

1. 创建目标位置目录。

1. 将该目标位置目录归类为 PDS 成员。

1. 通过处理 INCLUDE 参数来确定要包含的文件。

1. 通过处理 EXCLUDE 参数来取消选择包含的文件。

1. 确定是否对转储的文件执行 DELETED 操作。

1. 将文件入队以待处理。

1. 复制这个文件。

1. 将已复制文件编目的 DCB 信息导出到目标位置中的副文件，以帮助将来执行 RESTORE 操作。

#### 语法
<a name="mdfutil-dump-syntax"></a>

```
DUMP
TARGET ( TARGET LOCATION  )    -
INCLUDE ( DSN. )
[ EXCLUDE ( DSN ) ]
[ CANCEL | IGNORE ]
[ DELETE ]
```

#### 必填参数
<a name="mdfutil-dump-requiredparam"></a>

以下是必需的 DUMP 参数：
+ `SYSPRINT DD NAME` - 用于包含其他日志信息
+ `TARGET` - 目标位置。它可以是：
  + 转储位置的完整路径
  + 在 **M2DFUTILS\$1BASE\$1LOC** 变量中定义的位置中创建的子目录名称
+ `INCLUDE` - 要么是单个命名的 DSNAME，要么是有效的大型机 DSN 搜索字符串
+ `EXCLUDE` - 要么是单个命名的 DSNAME，要么是有效的大型机 DSN 搜索字符串

#### 可选参数
<a name="mdfutil-dump-optionalparam"></a>
+ CANCEL - 如果出现任何错误，则取消。已处理的文件将被保留
+ （默认）IGNORE - 忽略任何错误并处理直到结束
+ DELETE - 如果未出现 ENQ 错误，则会删除该文件并取消编目

### 删除
<a name="mdfutil-delete"></a>

提供批量删除和取消编目文件的功能。文件未备份。

#### 过程
<a name="mdfutil-delete-process"></a>

DELETE 将执行下列操作：

1. 通过处理 INCLUDE 参数来确定要包含的文件。

1. 通过处理 EXCLUDE 参数来取消选择包含的文件。

1. 将文件入队以待处理。将处置设置为“OLD”、“DELETE”、“KEEP”。

#### 语法
<a name="mdfutil-delete-syntax"></a>

```
DELETE
INCLUDE ( DSN )
[ EXCLUDE ( DSN ) ]
[ CANCEL | IGNORE ]
[ DELETE ]
```

#### 必填参数
<a name="mdfutil-delete-requiredparam"></a>

以下是必需的 DELETE 参数：
+ `SYSPRINT DD NAME` - 用于包含其他日志信息
+ `INCLUDE` - 要么是单个命名的 DSNAME，要么是有效的大型机 DSN 搜索字符串 
+ `EXCLUDE` - 要么是单个命名的 DSNAME，要么是有效的大型机 DSN 搜索字符串 

#### 可选参数
<a name="mdfutil-delete-optionalparam"></a>
+ CANCEL - 如果出现任何错误，则取消。已处理的文件将被保留 
+ （默认）IGNORE - 忽略任何错误并处理直到结束

### RESTORE
<a name="mdfutil-restore"></a>

提供恢复以前使用 DUMP 备份的文件的功能。除非使用 RENAME 来更改已恢复的 DSNAME，否则文件将恢复到原始编目位置。

#### 流程
<a name="mdfutil-restore-process"></a>

RESTORE 将执行下列操作：

1. 验证源位置目录。

1. 通过处理目录导出文件来确定要包含的文件。

1. 通过处理 EXCLUDE 参数来取消选择包含的文件。

1. 将文件入队以待处理。

1. 未根据其导出信息编目的目录文件。

1. 如果已对文件进行编目并且导出目录信息相同，则当设置了 REPLACE 选项时，RESTORE 将替换编目的数据集。

#### 语法
<a name="mdfutil-restore-syntax"></a>

```
RESTORE
SOURCE ( TARGET LOCATION ) 
INCLUDE ( DSN )
[ EXCLUDE ( DSN ) ]
[ CANCEL | IGNORE ]
[ REPLACE]
```

#### 必填参数
<a name="mdfutil-restore-requiredparam"></a>

以下是必需的 RESTORE 参数：
+ `SYSPRINT DD NAME` - 用于包含其他日志信息 
+ `SOURCE` - 源位置。它可以是：
  + 转储位置的完整路径
  + 在 **M2DFUTILS\$1BASE\$1LOC** 变量中定义的位置中创建的子目录名称
+ `INCLUDE` - 要么是单个命名的 DSNAME，要么是有效的大型机 DSN 搜索字符串
+ `EXCLUDE` - 要么是单个命名的 DSNAME，要么是有效的大型机 DSN 搜索字符串

#### 可选参数
<a name="mdfutil-restore-optionalparam"></a>
+ CANCEL - 如果出现任何错误，则取消。已处理的文件已保留
+ （默认）IGNORE - 忽略任何错误并处理直到结束
+ REPLACE - 如果正在恢复的文件已经编目并且目录记录相同，则替换已编目文件

## 样本 JCLs
<a name="mdfutil-sample-jcls"></a>

 **DUMP 作业**

此作业将创建一个名为 `TESTDUMP` 的子目录。这是 **M2DFUTILS\$1BASE\$1LOC** 变量指定的默认备份位置。它将为这个名为 `M2DFUTILS.TESTDUMP` 的备份创建一个 PDS 库。导出的目录数据存储在名为 `CATDUMP.DAT` 的备份目录中的行序文件中。所有选定文件都将复制到此备份目录。

```
//M2DFDMP JOB 'M2DFDMP',CLASS=A,MSGCLASS=X
//STEP001  EXEC PGM=M2DFUTIL
//SYSPRINT DD DSN=TESTDUMP.SYSPRINT,
//        DISP=(NEW,CATLG,DELETE),
//        DCB=(RECFM=LSEQ,LRECL=256)
//SYSIN    DD *
DUMP TARGET(TESTDUMP)               -
     INCLUDE(TEST.FB.FILE*.ABC)     -
 CANCEL
/*
//
```

 **DELETE 作业**

此作业将从目录中删除与 INCLUDE 参数匹配的所有文件。

```
/M2DFDEL JOB 'M2DFDEL',CLASS=A,MSGCLASS=X
//STEP001  EXEC PGM=M2DFUTIL
//SYSPRINT DD DSN=TESTDEL.SYSPRINT,
//        DISP=(NEW,CATLG,DELETE),
//        DCB=(RECFM=LSEQ,LRECL=256)
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  DELETE                               -
     INCLUDE(TEST.FB.FILE*.ABC)        -
 CANCEL
/*
 //
```

 **RESTORE 作业**

此作业将从 `TESTDUMP` 备份位置恢复与 INCLUDE 参数匹配的文件。如果编目文件与 CATDUMP 导出中的文件相同，并且指定了 REPLACE 选项，则编目文件将被替换。

```
//M2DFREST JOB 'M2DFREST',CLASS=A,MSGCLASS=X
//STEP001  EXEC PGM=M2DFUTIL
////SYSPRINT DD DSN=TESTREST.SYSPRINT,
//        DISP=(NEW,CATLG,DELETE),
//        DCB=(RECFM=LSEQ,LRECL=256)
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
RESTORE SOURCE(TESTDUMP)               -
     INCLUDE(TEST.FB.FILE*.ABC)        -
 IGNORE
 REPLACE
/*
//
```

# M2RUNCMD 批处理实用程序
<a name="m2runcmd"></a>

您可以使用批处理实用程序 M2RUNCMD 直接从 JCL 运行 Rocket Software（前身为 Micro Focus）命令、脚本和系统调用，而不必从终端或命令提示符处运行它们。命令的输出将记录到批处理作业的后台处理日志中。

**Topics**
+ [支持的平台](#m2runcmd-platforms)
+ [在 Amazon EC2（包括 AppStream 2.0）上为 AWS 大型机现代化运行时配置 M2RUNCMD](#m2runcmd-configure)
+ [样本 JCLs](#m2runcmd-sample-jcls)

## 支持的平台
<a name="m2runcmd-platforms"></a>

您可以在以下平台上使用 M2RUNCMD：
+ 火箭软件运行时（在亚马逊 EC2 上）
+  火箭软件企业开发者 (ED) 和 Rocket Software 企业服务器 (ES) 产品的所有变体。

## 在 Amazon EC2（包括 AppStream 2.0）上为 AWS 大型机现代化运行时配置 M2RUNCMD
<a name="m2runcmd-configure"></a>

如果您迁移的应用程序在 Amazon EC2 AWS 的大型机现代化运行时上运行，请按如下方式配置 M2RUNCMD。
+ 更改 [Micro Focus JES 程序路径](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/index.html?t=GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html)以包含批处理实用程序的二进制位置。如果您必须指定多个路径，请在 Linux 上使用冒号 (:) 分隔路径，在 Windows 上使用分号 (;) 分隔路径。
  + Linux：`/opt/aws/m2/microfocus/utilities/64bit`
  + Windows（32 位）：`C:\AWS\M2\MicroFocus\Utilities\32bit`
  + Windows（64 位）：`C:\AWS\M2\MicroFocus\Utilities\64bit`

## 样本 JCLs
<a name="m2runcmd-sample-jcls"></a>

要测试安装，您可以使用以下任一示例 JCLs。

 **RUNSCRL1.jcl**

此示例 JCL 创建一个脚本并运行它。第一步创建一个名为 `/tmp/TEST_SCRIPT.sh` 的脚本，其中包含来自 `SYSUT1` 流内数据的内容。第二步设置运行权限并运行第一步中所创建的脚本。你也可以选择只执行第二步来运行已经存在的 Rocket Software 和系统命令。

```
//RUNSCRL1 JOB 'RUN SCRIPT',CLASS=A,MSGCLASS=X,TIME=1440
//*
//*
//*-------------------------------------------------------------------*
//*  CREATE SCRIPT (LINUX)                                           
//*-------------------------------------------------------------------*
//*
//STEP0010 EXEC PGM=IEBGENER
//*
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY
//*
//SYSUT1   DD *
#!/bin/bash

set -x

## ECHO PATH ENVIRONMNET VARIABLE
echo $PATH

## CLOSE/DISABLE VSAM FILE
casfile -r$ES_SERVER -oc  -ed -dACCTFIL

## OPEN/ENABLE VSAM FILE
casfile -r$ES_SERVER -ooi -ee -dACCTFIL

exit $?
/*
//SYSUT2   DD DSN=&&TEMP,
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(RECFM=LSEQ,LRECL=300,DSORG=PS,BLKSIZE=0)
//*MFE: %PCDSN='/tmp/TEST_SCRIPT.sh'
//*
//*-------------------------------------------------------------------*
//*   RUN SCRIPT (LINUX)                                              *
//*-------------------------------------------------------------------*
//*
//STEP0020 EXEC PGM=RUNCMD
//*
//SYSOUT  DD  SYSOUT=*
//* 
//SYSIN   DD *
*RUN SCRIPT
 sh /tmp/TEST_SCRIPT.sh
/*
//
```

 **SYSOUT**

运行的命令或脚本的输出将写入 `SYSOUT` 日志。对于每个已执行的命令，它都会显示命令、输出和返回代码。

```
************ CMD Start ************   
                                                                                    
CMD_STR: sh /tmp/TEST_SCRIPT.sh                                                                                              
CMD_OUT:                                                                                                                                                                                                                             
+ echo /opt/microfocus/EnterpriseServer/bin:/sbin:/bin:/usr/sbin:/usr/bin    
/opt/microfocus/EnterpriseServer/bin:/sbin:/bin:/usr/sbin:/usr/bin           
+ casfile -rMYDEV -oc -ed -dACCTFIL                                                                       
-Return Code:   0                                                                                                         
Highest return code:    0                                                                                                 
+ casfile -rMYDEV -ooi -ee -dACCTFIL                                                                     
-Return Code:   8                                                                                                         
Highest return code:    8                                                                                                 
+ exit 8                                                                                                                  

CMD_RC=8                                                                                                                  

************  CMD End  ************
```

 **RUNCMDL1.jcl**

此示例 JCL 使用 RUNCMD 来运行多个命令。

```
//RUNCMDL1 JOB 'RUN CMD',CLASS=A,MSGCLASS=X,TIME=1440
//*
//*
//*-------------------------------------------------------------------*
//*   RUN SYSTEM COMMANDS                                             *
//*-------------------------------------------------------------------*
//*
//STEP0001 EXEC PGM=RUNCMD
//*
//SYSOUT  DD  SYSOUT=*
//* 
//SYSIN   DD *
*LIST DIRECTORY
 ls
*ECHO PATH ENVIRONMNET VARIABLE
 echo $PATH
/*
//
```