AWS 大型机现代化应用程序定义参考 - AWS 大型机现代化

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

AWS 大型机现代化应用程序定义参考

在 AWS 大型机现代化中,您可以在应用程序定义 JSON 文件中配置迁移的大型机应用程序,该文件特定于您选择的运行时引擎。应用程序定义既包含一般信息,也包含特定于引擎的信息。本主题介绍了 AWS Blu Age 和 Micro Focus 应用程序的定义,并确定了所有必需元素和可选元素。

一般头部区段

每个应用程序定义都首先指定有关模板版本和源位置的一般信息。应用程序定义的当前版本为 2.0。

使用以下结构来指定模板版本和源位置。

"template-version": "2.0", "source-locations": [ { "source-id": "s3-source", "source-type": "s3", "properties": { "s3-bucket": "mainframe-deployment-bucket", "s3-key-prefix": "v1" } } ]
注意

如果要将 S3 ARN 作为 s3 存储桶输入,则可以使用以下语法:

"template-version": "2.0", "source-locations": [ { "source-id": "s3-source", "source-type": "s3", "properties": { "s3-bucket": "arn:aws:s3:::mainframe-deployment-bucket", "s3-key-prefix": "v1" } } ]
template-version

必需。指定应用程序定义文件的版本。请勿更改此值。目前唯一允许的值为 2.0。使用字符串指定 template-version

source-locations

指定应用程序在运行时所需的文件和其他资源的位置。

来源 ID

指定地点的名称。此名称用于根据需要在应用程序定义 JSON 中引用源位置。

源类型

指定源的类型。当前,唯一允许的值是 s3。

属性

提供源位置的详细信息。每个属性均使用字符串指定。

  • s3-bucket – 必需。存储文件的 Amazon S3 存储桶名称。

  • s3-key-prefix – 必需。指定存储文件的 Amazon S3 存储桶的文件夹的名称。

定义区段概述

指定应用程序运行所需的服务、设置、数据和其他典型资源的资源定义。更新应用程序定义时, AWS Mainframe Modernization 会通过比较应用程序定义 JSON 文件的先前版本和当前版本中的 source-locationsdefinition 列表来检测是否发生更改。

定义区段是特定于引擎的,可能会发生变化。以下各节针对两个引擎显示了特定于引擎的应用程序定义示例。

AWS Blu Age 应用程序定义示例

{ "template-version": "2.0", "source-locations": [ { "source-id": "s3-source", "source-type": "s3", "properties": { "s3-bucket": "mainframe-deployment-bucket-aaa", "s3-key-prefix": "v1" } } ], "definition" : { "listeners": [{ "port": 8194, "type": "http" }], "ba-application": { "app-location": "${s3-source}/murachs-v6/" }, "blusam": { "db": { "nb-threads": 8, "batch-size": 10000, "name": "blusam", "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:blusam-FfmXLG" }, "redis": { "hostname": "blusam.c3geul.ng.0001.usw2.cache.amazonaws.com", "port": 6379, "useSsl": true, "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:bluesamredis-nioefm" } } } }

AWS Blu Age 定义详情

侦听器 – 必需

指定用于通过 AWS 大型机现代化创建的 Elastic Load Balancing 访问应用程序的端口。请使用以下结构。

"listeners": [{ "port": 8194, "type": "http" }],
port

必需。除了公认端口 0 到 1023 之外,您可以使用任何可用端口。我们建议使用的端口范围为 8192 至 8199。请确保没有其他侦听器或应用程序使用此端口。

type

必需。目前仅支持 http

AWS Blu Age 应用程序-必填

使用以下结构指定引擎获取应用程序映像文件的位置。

"ba-application": { "app-location": "${s3-source}/murachs-v6/", "files-directory": "/m2/mount/myfolder", "enable-jics": <true|false>, "shared-app-location": "${s3-source}/shared/" },
app-location

Amazon S3 中存储应用程序映像文件的特定位置。

files-directory

可选。批处理的输入/输出文件的位置,必须是环境级别的 Amazon EFS 或 Amazon FSx 挂载点设置的子文件夹。子文件夹必须归合适的用户所有,以便在 AWS 大型机现代化中运行的 Blu Age 应用程序使用。为此,在将驱动器连接到 Linux Amazon EC2 实例时,3001必须创建一个带有 ID 的群组101和一个 ID 为 ID 的用户,并且所需的文件夹必须归该用户所有。例如,通过这种方式,Blu Age AWS Mainframe Moderation Manag ed 就可以使用该testclient文件夹。

groupadd -g 101 mygroup useradd -M -g mygroup -p mypassword -u 3001 myuser mkdir testclient chown myuser:mygroup testclient
enable-jics

可选。指定是否启用 JICS。默认值为 true。将其设置为 false 可防止生成 JICS 数据库。

shared-app-location

可选。Amazon S3 中存储共享应用程序元素的进一步位置,其中可以包含与 app-location 中相同的应用程序结构。

BluSAM – 可选

使用以下结构指定 BluSAM 数据库和 Redis 缓存。

"blusam": { "db": { "nb-threads": 8, "batch-size": 10000, "name": "blusam", "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:blusam-FfmXLG" }, "redis": { "hostname": "blusam.c3geul.ng.0001.usw2.cache.amazonaws.com", "port": 6379, "useSsl": true, "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:bluesamredis-nioefm" } }
db

指定与应用程序搭配使用的数据库的属性。该数据库必须为 Aurora PostgreSQL 数据库。您可以指定以下属性:

  • nb-threads – 可选。指定 BluSam 引擎所依赖的写入机制使用多少个专用线程。默认值为 8。

  • batch-size – 可选。指定回写机制用于启动批量存储操作的阈值。该阈值表示已修改记录的数量,这些记录将启动批量存储操作,以确保修改后的记录得以保存。触发器本身基于所耗时间(一秒钟)和批量大小(以先达到者为准)的组合。默认值为 10000。

  • name – 可选。指定数据库的名称。

  • secret-manager-arn – 指定包含数据库凭证的密钥的 Amazon 资源名称 (ARN)。有关更多信息,请参阅 步骤 4:创建和配置 AWS Secrets Manager 数据库密钥

Redis

指定 Redis 缓存的属性,应用程序使用该缓存将临时数据存储在中央位置以提高性能。我们建议您同时对 Redis 缓存进行加密和实施密码保护。

  • hostname – 指定 Redis 缓存的位置。

  • port – 指定 Redis 缓存发送和接收数据的通信端口,通常为 6379。

  • useSsl – 指定 Redis 缓存是否已加密。如果缓存未加密,则将 useSsl 设置为 false。

  • secret-manager-arn – 指定包含 Redis 缓存密码的密钥的 Amazon 资源名称 (ARN)。如果 Redis 缓存没有密码保护,请勿指定 secret-manager-arn。有关更多信息,请参阅 步骤 4:创建和配置 AWS Secrets Manager 数据库密钥

AWS Blu Age 消息队列——可选

指定 Blu Age 应用程序的 JMS-MQ 连接详细信息。 AWS

"message-queues": [ { "product-type": "JMS-MQ", "queue-manager": "QMgr1", "channel": "mqChannel1", "hostname": "mqserver-host1", "port": 1414, "user-id": "app-user1", "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:sample/mq/test-279PTa" }, { "product-type": "JMS-MQ", "queue-manager": "QMgr2", "channel": "mqChannel2", "hostname": "mqserver-host2", "port": 1412, "user-id": "app-user2", "secret-manager-arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:sample/mq/test-279PTa" } ]
product-type

必需。指定产品类型。目前,这只能是 Blu Age 应用程序的 “JMS-MQ”。 AWS

queue-manager

必需。指定队列管理器的名称。

channel

必需。指定服务器连接通道的名称。

hostname

必需。指定消息队列服务器的主机名。

port

必需。指定服务器正在监听的侦听器端口号。

user-id

可选。指定允许在指定通道上执行消息队列操作的用户账户 ID。

secret-manager-arn

可选。指定 Secrets Manager 的 Amazon 资源名称 (ARN),Secrets Manager 提供指定用户的密码。

AWS Blu Age 应用程序存储 EFS 配置-可选

使用以下结构指定应用程序存储 EFS 接入点详细信息。

"ba-application": { "file-permission-mask": "UMASK002" }, "efs-configs": [ { "file-system-id": "fs-01376dfsvfvrsvsr", "mount-point": "/m2/mount/efs-ap2", "access-point-id": fsap-0eaesefvrefrewgv8" } ]
file-system-id

必需。接入点适用的 EFS 文件系统的 ID。模式:“fs-([0-9a-f] {8,40}) {1,128} $”

挂载点

必需。应用程序级文件系统的装载点。这必须与环境级别的存储装载点不同。

access-point-id

必需。接入点 ID,由 Amazon EFS 分配。模式:“^fsap-([0-9a-f] {8,40}) {1,128} $”

file-permission-mask

可选。为应用程序进程创建的文件定义文件创建掩码。例如,当该值设置为时UMASK006,所有文件都将具有 660 权限。这意味着只有文件所有者和文件组才具有读写权限,而其他用户则没有任何权限。

注意

只有在使用应用程序级 EFS 存储时,才会考虑为此字段设置的值。

注意

如果提供 efs 配置,则必须在应用程序定义部分中指定文件目录。它必须是在应用程序级别设置的 Amazon EFS 挂载点的子文件夹。

Micro Focus 应用程序定义

以下示例定义区段适用于 Micro Focus 运行时引擎,包含必需元素和可选元素。

{ "template-version": "2.0", "source-locations": [ { "source-id": "s3-source", "source-type": "s3", "properties": { "s3-bucket": "mainframe-deployment-bucket-aaa", "s3-key-prefix": "v1" } } ], "definition" : { "listeners": [{ "port": 5101, "type": "tn3270" }], "dataset-location": { "db-locations": [{ "name": "Database1", "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456" }] }, "cognito-auth-handler": { "user-pool-id": "cognito-idp.us-west-2.amazonaws.com/us-west-2_rvYFnQIxL", "client-id": "58k05jb8grukjjsudm5hhn1v87", "identity-pool-id": "us-west-2:64464b12-0bfb-4dea-ab35-5c22c6c245f6" }, "ldap-ad-auth-handler": { "ldap-ad-connection-secrets": [LIST OF AD-SECRETS] }, "batch-settings": { "initiators": [{ "classes": ["A", "B"], "description": "initiator...." }], "jcl-file-location": "${s3-source}/batch/jcl", "program-path": "/m2/mount/libs/loadlib:$EFS_MOUNT/emergency/loadlib", "system-procedure-libraries":"SYS1.PROCLIB;SYS2.PROCLIB", "aliases": [ {"alias": "FDSSORT", "program": "SORT"}, {"alias": "MFADRDSU", "program": "ADRDSSU"} ] }, "cics-settings": { "binary-file-location": "${s3-source}/cics/binaries", "csd-file-location": "${s3-source}/cics/def", "system-initialization-table": "BNKCICV" }, "xa-resources" : [{ "name": "XASQL", "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456", "module": "${s3-source}/xa/ESPGSQLXA64.so" }], "runtime-settings": { "environment-variables": { "ES_JES_RESTART": "N", "EFS_MOUNT": "/m2/mount/efs" } } } }

Micro Focus 定义详细信息

Micro Focus 应用程序定义文件中定义区段的内容会有所不同,具体取决于迁移的大型机应用程序在运行时所需的资源。

侦听器 – 必需

使用以下结构指定侦听器:

"listeners": [{ "port": 5101, "type": "tn3270" }],
port

对于 tn3270,默认值为 5101。对于其他类型的服务侦听器,端口会有所不同。除了公认端口 0 到 1023 之外,您可以使用任何可用端口。每个侦听器都应使用一个独有的端口。侦听器不应共享端口。有关更多信息,请参阅 Micro Focus Enterprise Server 文档中的 Listener Control

type

指定服务侦听器的类型。有关更多信息,请参阅 Micro Focus Enterprise Server 文档中的侦听器

数据集位置 – 必需

使用以下结构指定数据集的位置。

"dataset-location": { "db-locations": [{ "name": "Database1", "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456" }], }
db-locations

指定迁移的应用程序创建的数据集的位置。目前, AWS 大型机现代化仅支持来自单个 VSAM 数据库的数据集。

  • name – 指定包含已迁移应用程序创建的数据集的数据库实例的名称。

  • secret-manager-arn – 指定包含数据库凭证的密钥的 Amazon 资源名称 (ARN)。

Amazon Cognito 身份验证和授权处理程序 – 可选

AWS 大型机现代化使用 Amazon Cognito 对迁移的应用程序进行身份验证和授权。使用以下结构指定 Amazon Cognito 身份验证处理程序。

"cognito-auth-handler": { "user-pool-id": "cognito-idp.Region.amazonaws.com/Region_rvYFnQIxL", "client-id": "58k05jb8grukjjsudm5hhn1v87", "identity-pool-id": "Region:64464b12-0bfb-4dea-ab35-5c22c6c245f6" }
user-pool-id

指定 AWS 大型机现代化用于对迁移应用程序的用户进行身份验证的 Amazon Cognito 用户池。用户池 AWS 区域 的应与 AWS 大型机现代化应用程序 AWS 区域 的相匹配。

client-id

指定经过身份验证的用户可访问的已迁移应用程序。

identity-pool-id

指定 Amazon Cognito 身份池,经过身份验证的用户可以在该池中交换用户池令牌以获取允许用户访问 AWS 大型机现代化的证书。身份池 AWS 区域 的应与 AWS 大型机现代化应用程序 AWS 区域 的相匹配。

LDAP 和 Active Directory 处理程序 - 可选

您可以将您的应用程序与 Active Directory(AD)或任何类型的 LDAP 服务器集证进行授权和身份验证。

将应用程序与 AD 集成
  1. 按照 Micro Focus Enterprise Server 文档中为 Enterprise Server 安全配置 Active Directory 中描述的步骤进行操作。

  2. 使用您的 AD/LDAP 详细信息为要与应用程序配合使用的每台 AD/LDAP 服务器创建一个 AWS Secrets Manager 密钥。有关如何创建密钥的信息,请参阅 AWS Secrets Manager 用户指南中的创建 AWS Secrets Manager 密钥。对于密钥类型,请选择其他类型的密钥,并包括以下键值对。

    { "connectionPath" : "<HOST-ADDRESS>:<PORT>", "authorizedId" : "<USER-FULL-DN>", "password" : "<PASSWORD>", "baseDn" : "<BASE-FULL-DN>", "userClassDn" : "<USER-TYPE>", "userContainerDn" : "<USER-CONTAINER-DN>", "groupContainerDn" : "<GROUP-CONTAINER-DN>", "resourceContainerDn" : "<RESOURCE-CONTAINER-DN>" }
    安全建议
    • 对于connectionPath, AWS 大型机现代化支持 LDAP 和基于 SSL 的 LDAP (LDAPS) 协议。建议您使用 LDAPS,因为它更安全,并且可以防止凭证出现在网络传输中。

    • 对于 authorizedIdpassword,建议您依据以下原则为用户指定凭证:权限不超过应用程序运行所需的最严格的只读和验证权限。

    • 建议您定期变换 AD/LDAP 凭证。

    • 不要使用用户名 awsusermfuser 创建 AD 用户。这两个用户名保留供 AWS 使用。

    示例如下:

    { "connectionPath" : "ldaps://msad4.m2.example.people.aws.dev:636", "authorizedId" : "CN=LDAPUser,OU=Users,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev", "password" : "ADPassword", "userContainerDn" : "CN=Enterprise Server Users,CN=Micro Focus,CN=Program Data,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev", "groupContainerDn" : "CN=Enterprise Server Groups,CN=Micro Focus,CN=Program Data,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev", "resourceContainerDn" : "CN=Enterprise Server Resources,CN=Micro Focus,CN=Program Data,OU=msad4,DC=msad4,DC=m2,DC=example,DC=people,DC=aws,DC=dev" }

    使用客户托管的 KMS 密钥创建密钥。您必须向 AWS 大型机现代化授予密钥的GetSecretValueDescribeSecret权限,Decrypt以及 KMS 密钥的DescribeKey权限。有关更多信息,请参阅《 AWS Secrets Manager 用户指南》中的 KMS 密钥权限

  3. 将以下内容添加到您的应用程序定义中。

    "ldap-ad-auth-handler": { "ldap-ad-connection-secrets": [LIST OF AD/LDAP SECRETS] }

    示例如下:

    "ldap-ad-auth-handler": { "ldap-ad-connection-secrets": ["arn:aws:secrets:1234:us-east-1:secret:123456"] }

LDAP/AD 身份验证处理程序可用于 Micro Focus 8.0.11 及更高版本。

批处理设置 – 必需

使用以下结构指定作为应用程序一部分运行的批处理作业所需的详细信息。

"batch-settings": { "initiators": [{ "classes": ["A", "B"], "description": "initiator...." }], "jcl-file-location": "${s3-source}/batch/jcl", "program-path": "/m2/mount/libs/loadlib:$EFS_MOUNT/emergency/loadlib", "system-procedure-libraries":"SYS1.PROCLIB;SYS2.PROCLIB", "aliases": [ {"alias": "FDSSORT", "program": "SORT"}, {"alias": "MFADRDSU", "program": "ADRDSSU"} ] }
initiators

指定一个批处理启动器,该启动器在迁移的应用程序成功启动时启动,并应用程序停止运行前持续运行。您可以为每个启动器定义一个或多个类,也可以定义多个启动器。例如:

"batch-settings": { "initiators": [ { "classes": ["A", "B"], "description": "initiator...." }, { "classes": ["C", "D"], "description": "initiator...." } ], }

有关更多信息,请参阅 Micro Focus Enterprise Server 文档中的定义批处理启动器或打印机 SEP

  • classes – 指定启动器可以运行的作业类。最多可以使用 36 个字符。您可以使用以下字符:A-Z 或 0-9。

  • description – 描述启动器的用途。

jcl-file-location

指定迁移应用程序运行的批处理作业所需的 JCL(作业控制语言)文件的位置。

程序路径

指定当 JCL 中的程序不在默认位置时运行批处理作业所需的路径。不同的路径名用冒号 (:) 分隔。

注意

程序路径只能是 EFS 路径。

system-procedure-libraries

指定将搜索 JCL 过程的默认分区数据集。但是,在 JCL 中或通过 JCLLIB 语句中找不到该过程。必须对这些数据集进行编目并使用目录名称。这些条目用分号 (;) 分隔。

别名

定义 JCL 中使用的实用程序和程序名称与实用程序实现名称的映射。 AWS 第三方批处理实用程序(例如 M2SFTP、M2WAIT、Syncsort 等)可以选择使用别名,从而无需更改 JCL。例如:

  • 用于排序的 FDSSORT 别名 FDSSORT 和用于 ICETOOL 的别名 FDSICET

  • ADRDSSU 别名 MFADRDSU 代表 ADRDSU

  • 用于排序的 Syncsort 别名 DMXMFSRT

CICS 设置 – 必需

使用以下结构指定作为应用程序一部分运行的 CICS 事务所需的详细信息。

"cics-settings": { "binary-file-location": "${s3-source}/cics/binaries", "csd-file-location": "${s3-source}/cics/def", "system-initialization-table": "BNKCICV" }
binary-file-location

指定 CICS 事务程序文件的位置。

csd-file-location

指定此应用程序的 CICS 资源定义 (CSD) 文件的位置。有关更多信息,请参阅 Micro Focus Enterprise Server 文档中的 CICS 资源定义

system-initialization-table

指定迁移的应用程序使用的系统初始化表 (SIT)。SIT 表的名称最多可包含 8 个字符。您可以使用 A-Z、0-9、$、@ 和 #。有关更多信息,请参阅 Micro Focus Enterprise Server 文档中的 CICS 资源定义

XA 资源 – 必需

使用以下结构指定应用程序所需的 XA 资源所需的详细信息。

"xa-resources" : [{ "name": "XASQL", "secret-manager-arn": "arn:aws:secrets:1234:us-east-1:secret:123456", "module": "${s3-source}/xa/ESPGSQLXA64.so" }]
name

必需。指定 XA 资源的名称。

secret-manager-arn

指定包含用于连接数据库的凭证的密钥的 Amazon 资源名称 (ARN)。

module

指定 RM 交换机模块可执行文件的位置。有关更多信息,请参阅 Micro Focus Enterprise Server 文档中的规划和设计 XAR

运行时设置-可选

使用以下结构指定运行时设置所需的详细信息,以管理允许的环境变量。

"runtime-settings": { "environment-variables": { "ES_JES_RESTART": "N", "EFS_MOUNT": "/m2/mount/efs" } }
环境变量

指定应用于此应用程序运行时的 Micro Focus 支持的环境变量。

  • ES_JES_RESTART是一个 Micro Focus 环境变量,用于启用 JCL 重启处理。或者,您也可以用ES_ALLOC_OVERRIDE作 Micro Focus 环境变量。

  • EFS_MOUNT是一个自定义环境变量,您的应用程序可以使用它来识别环境的 EFS 挂载位置。

你可以在《适用于 UNIX 的 Micro Focus 企业服务器》指南中访问所有 Micro Focus 环境变量