本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在云端构建高级大型机文件查看器 AWS
由 Boopathy GOPALSAMY (AWS) 和 Jeremiah O'Connor () 创作 AWS
摘要
此模式提供了代码示例和步骤,可帮助您构建用于使用AWS无服务器服务浏览和查看大型机固定格式文件的高级工具。该模式提供了如何将大型机输入文件转换为用于浏览和搜索的 Amazon S OpenSearch ervice 文档的示例。文件查看器工具可以帮助您实现以下目标:
保持相同的大型机文件结构和布局以保持AWS目标迁移环境的一致性(例如,在将文件传输给外部方的批处理应用程序中,您可以为文件保持相同的布局)
在大型机迁移过程中加快开发和测试速度
支持迁移后的维护活动
先决条件和限制
先决条件
一个活跃的AWS账户
虚拟私有云 (VPC),其子网可由您的传统平台访问
注意
输入文件及其相应的面向业务的通用语言 (COBOL) Copybook (: 有关输入文件和COBOL抄写本示例,请参阅存储库中的gfs-mainframe-solutions
。 GitHub 有关COBOL抄写本的更多信息,请参阅网站上的《COBOL适用于 z/OS 的 Enterprise 6.3 编程指南》IBM。)
限制
Copybook 解析限制为不超过两个嵌套级别 () OCCURS
架构
源技术堆栈
以 FB(固定屏蔽)
格式输入文件 COBOL字帖布局
目标技术堆栈
Amazon Athena
亚马逊 OpenSearch 服务
Amazon Simple Storage Service(Amazon S3)
AWS Lambda
AWS Step Functions
目标架构
下图显示了解析大型机输入文件并将其转换为 OpenSearch 服务文档以供浏览和搜索的过程。
图表显示了以下工作流:
管理员用户或应用程序将输入文件推送到一个 S3 存储桶,将COBOL副本推送到另一个 S3 存储桶。
注意
包含输入文件的 S3 存储桶调用 Lambda 函数,启动无服务器 Step Functions 工作流。:在此模式中使用 S3 事件触发器和 Lambda 函数来驱动 Step Functions 工作流程是可选的。此模式中的 GitHub 代码示例不包括对这些服务的使用,但您可以根据自己的要求使用这些服务。
Step Functions 工作流协调来自以下 Lambda 函数的所有批处理:
该
s3copybookparser.py
函数解析副本布局并提取字段属性、数据类型和偏移量(输入数据处理的必要条件)。s3toathena.py
函数创建 Athena 表格布局。Athena 解析函数处理的s3toathena.py
输入数据,并将数据转换为文件。CSV该
s3toelasticsearch.py
函数从 S3 存储桶中提取结果文件并将该文件推送到 OpenSearch 服务。
用户访问带有 S OpenSearch ervice 的 OpenSearch 仪表板以各种表和列格式检索数据,然后对索引数据运行查询。
工具
AWS 服务
Amazon Athena 是一项交互式查询服务,可帮助您使用标准直接分析亚马逊简单存储服务 (Amazon S3) 中的数据。SQL
AWSLambda 是一项计算服务,可帮助您运行代码,而无需预置或管理服务器。它仅在需要时运行您的代码,并且能自动扩缩,因此您只需为使用的计算时间付费。在这种模式中,您可以使用 Lambda 实现核心逻辑,例如解析文件、转换数据以及将数据加载到 S OpenSearch ervice 中以进行交互式文件访问。
Amazon OpenSearch Service 是一项托管服务,可帮助您在AWS云中部署、运营和扩展 OpenSearch 服务集群。在这种模式中,您可以使用 S OpenSearch ervice 为转换后的文件编制索引,并为用户提供交互式搜索功能。
Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。
AWSCommand Line Interface (AWSCLI) 是一个开源工具,可帮助您通过命令行外壳中的命令与AWS服务进行交互。
AWSIdentity and Access Management (IAM) 通过控制谁经过身份验证并有权使用AWS资源,从而帮助您安全地管理对资源的访问权限。
AWSSt ep Functions 是一项无服务器编排服务,可帮助您组合 Lambda 函数和其他AWS服务来构建业务关键型应用程序。在这种模式中,您可使用 Step Functions 编排 Lambda 函数。
其他工具
代码
此模式的代码可在 GitHub gfs-mainframe-patterns
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建 S3 存储桶。 | 创建 S3 存储桶,用于存储副本、输入文件和输出文件。我们建议您的 S3 存储桶采用以下文件夹结构:
| 将军 AWS |
创建 s3copybookparser 函数。 |
| 将军 AWS |
创建 s3toathena 函数。 |
| 将军 AWS |
创建 s3toelasticsearch 函数。 |
| 将军 AWS |
创建 OpenSearch 服务集群。 | 创建集群
向IAM角色授予访问权限 要提供对 Lambda 函数IAM角色 (
| 将军 AWS |
为编排创建 Step Functions。 |
| 将军 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
将输入文件和副本上传到 S3 存储桶。 | 从GitHub
| 将军 AWS |
调用 Step Functions。 |
例如:
| 将军 AWS |
在 Step Functions 中验证工作流执行。 | 在 Step Functions 控制台 有关图形化工作流执行的示例,请参阅此模式的其他信息部分中的 Step Functions 图。 | 将军 AWS |
在 Amazon 中验证配送日志 CloudWatch。 |
有关成功传送日志的示例,请参阅此模式的 “其他信息” 部分中的CloudWatch 传送日志。 | 将军 AWS |
在 OpenSearch 仪表板中验证格式化后的文件并执行文件操作。 |
| 将军 AWS |
相关资源
参考
示例COBOL抄本
(IBM文档) BMCCompuware 文件-AID
(BMC文档)
教程
其他信息
Step Functions 图
以下示例显示了 Step Functions 图表。该图显示了在此模式中使用的 Lambda 函数的执行运行状态。
CloudWatch 传送日志
以下示例显示了 s3toelasticsearch
执行执行的成功传送日志。
2022-08-10T15:53:33.033-05:00 | 处理文档数量:100 | |
---|---|---|
2022-08-10T15:53:33.171-05:00 | [INFO] 2022-08-10T20:53:33.171 Z a1b2c3d4-5678-90ab-cdef--: 443/_bulk [状态:200 请求:0.100s] EXAMPLE11111POST https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | |
2022-08-10T15:53:33.172-05:00 | 批量写入成功:100 个文档 |