

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

# z/OS 通过安装 AWS 服务 IBM 进行访问 AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh、Paulo Vitor Pereira 和 Phil de Valence，Amazon Web Services*

## Summary
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) 是一个开源工具，用于在命令行 shell 中使用命令来管理多个 AWS 服务。仅需最少的配置，即可从命令提示符、终端和 bash shell 之类命令行会话运行命令，以实现与基于浏览器的 AWS 管理控制台所提供的功能等同的功能。

中的所有 AWS 基础设施即服务 (IaaS) 管理、管理和访问功能 AWS 管理控制台 均在 AWS API 和中提供。 AWS CLI您可以将安装在 IBM z/OS 大型机 AWS CLI 上，以便直接 AWS 服务 从 z/OS 进行访问、管理和交互。使用 AWS CLI 户和应用程序可以执行各种任务，例如：
+ 在 z/OS 和亚马逊简单存储服务 (Amazon S3) Simple Service 对象存储之间传输文件或数据集并查看存储桶的内容
+ 启动和停止不同的 AWS 资源；例如，在 AWS Mainframe Modernization 环境中启动批处理作业
+ 调用 AWS Lambda 函数来实现常见的业务逻辑
+ 与人工智能和机器学习（AI/ML）以及分析服务集成

此模式描述了如何在用户或z/OS. You can install it globally, so it's available to all z/OS用户级别 AWS CLI 上安装、配置和使用。该模式还详细说明了如何 AWS CLI 在 z/OS Unix 系统服务 (USS) 的交互式命令行会话中使用或将其用作批处理作业。

## 先决条件和限制
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**先决条件**
+ **网络通信从 z/OS 到 AWS**

  默认情况下，在 TCP 端口 443 上使用 HTTPS AWS CLI 向发送请求。 AWS 服务 要 AWS CLI 成功使用，您必须能够在 TCP 端口 443 上建立出站连接。您可以使用以下任一 z/OS USS 命令（其中一些可能未安装在您的环境中）来测试从 z/OS 到的网络连接 AWS：

  ```
  ping amazonaws.com
  dig amazonaws.com
  traceroute amazonaws.com
  curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  ```
+ **AWS 凭证**

  为了与 z/OS 中的 AWS Cloud 服务进行通信， AWS CLI 需要您配置一些具有访问目标权限的凭据。 AWS 账户对于编程命令 AWS，您可以使用访问密钥，其中包括访问密钥 ID 和私有访问密钥。如果没有访问密钥，您可以使用进行创建 AWS 管理控制台。最佳做法是，除非需要 root 用户，否则不要将 AWS 账户 root 用户的访问密钥用于任何任务。正确的做法是[创建一个新管理员 IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)，并[准备好使用最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege)****为该用户设置访问密钥。创建用户后，您可以为该用户[创建访问密钥 ID 和秘密访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python for z/OS**

   AWS CLI 需要 Python 3.8 或更高版本。IBM 已允许 Python z/OS 与[适用于 z/OS 的 IBM 开放企业 Python](https://www.ibm.com/products/open-enterprise-python-zos) 一起运行。IBM Open Enterprise Python 可通过 Shopz SMP/E 免费获得，也可以从 [IBM 网站](https://www.ibm.com/account/reg/signup?formid=urx-49465)下载 PAX 文件。有关说明，请参阅 IBM Open Enterprise Python for z/OS 的[安装和配置文档](https://www.ibm.com/docs/en/python-zos)。

**限制**
+ 此模式中提供的安装说明**仅适用于AWS CLI 版本 1**。的最新版本 AWS CLI 是版本 2。但是，这种模式使用的是旧版本，因为版本 2 的安装方法不同，而且版本 2 中可用的二进制可执行文件与 z/OS 系统不兼容。

**产品版本**
+ AWS CLI 第 1 版
+ Python 3.8 或更高版本

## 架构
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**技术堆栈**
+ 运行 z/OS 的大型机
+ 大型机 z/OS UNIX 系统服务 (USS)
+ 大型机开放 MVS (OMVS) — z/OS UNIX 外壳环境命令接口
+ 大型机磁盘，例如直接访问存储设备 (DASD)
+ AWS CLI

**目标架构**

下图显示了 IBM z/OS 上的 AWS CLI 部署。您可以 AWS CLI 从交互式用户会话（例如 SSH）和 telnet 会话中调用。您也可以使用作业控制语言 (JCL) 从批处理作业中调用它，也可以从任何可以调用 z/OS Unix shell 命令的程序中调用它。

![访问 AWS 服务的 IBM z/OS 大型机上的 AWS CLI。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


通过 TCP/IP 网络 AWS CLI 与 AWS 服务 端点通信。这种网络连接可以通过互联网进行，也可以通过从客户数据中心到 AWS Cloud 数据中心的私人 AWS Direct Connect 连接进行。通信使用 AWS 凭据进行身份验证并加密。

**自动化和扩展**

您可以使用探索的功能 AWS CLI 并开发 USS shell 脚本来管理 z/OS 中的 AWS 资源。 AWS 服务 您还可以从 z/OS 批处理环境中运行 AWS CLI 命令和 shell 脚本，还可以通过与大型机调度器集成，自动执行批处理作业，使其按特定的计划运行。 AWS CLI 命令或脚本可以在参数 (PARMs) 和过程 (PROCs) 中编码，也可以按照标准方法进行扩展，即使用不同的参数从不同的批处理作业调用 PARM 或 PROC。

## 工具
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 是一个开源工具，可帮助您 AWS 服务 通过命令行 shell 中的命令进行交互。

## 最佳实践
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ 出于安全考虑，请将访问权限限制为存储 AWS 访问密钥详细信息的 USS 目录。仅允许使用 AWS CLI的用户或程序进行访问。
+ 请勿将 AWS 账户 root 用户访问密钥用于任何任务。而是为自己[创建一个具有访问密钥的新管理员 IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)。


| 
| 
| IAM 用户具有长期凭证，这会带来安全风险。为帮助减轻这种风险，我们建议仅向这些用户提供执行任务所需的权限，并在不再需要这些用户时将其移除。 | 
| --- |

## 操作说明
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### 在 z/OS USS 上安装 AWS CLI 版本 1
<a name="install-cli-version-1-on-z-os-uss"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 安装 Python 3.8 或更高版本。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 大型机管理员 z/OS  | 
| 设置 USS 环境变量。 | 将环境变量添加到配置文件中。您可以将它们添加到单个用户 (`cliuser`) 的 `/u/cliuser/.profile` 文件，也可以将其添加到所有用户的 `/etc/profile` 文件。此模式假定 `/u/awscli/python` 目录中已安装 Python。如果您的安装目录不同，请相应地更新代码。<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | 大型机管理员 z/OS  | 
| 测试 Python 安装。 | 运行 **python** 命令：<pre>python --version</pre><br />输出应确认您已正确安装了 Python 3.8 或更高版本。 | 大型机管理员 z/OS  | 
| 验证或安装 **pip**。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 大型机管理员 z/OS  | 
| 安装 AWS CLI 版本 1。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 大型机管理员 z/OS  | 

### 配置来自 z/OS 的 AWS CLI 访问权限
<a name="configure-cli-access-from-z-os"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 配置 AWS 访问密钥、默认区域和输出。 | 该[AWS CLI 文档](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html)描述了设置 AWS 访问权限的不同选项。您可以根据组织的标准选择配置。此示例使用短期凭证配置。[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS 管理员、大型机 z/OS 管理员、大型机 z/OS 开发人员 | 
| 测试 AWS CLI. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 大型机 z/OS 管理员、大型机 z/OS 开发人员 | 

### 选项 1 ‒ 从 USS 会话以交互方式将数据从 USS 传输到 Amazon S3
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 下载并传输示例 CSV 文件。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 应用程序开发人员、大型机 z/OS 开发人员 | 
| 创建 S3 存储桶并上传 CSV 文件。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 应用程序开发人员、大型机 z/OS 开发人员 | 
| 查看 S3 存储桶和上传的文件。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)有关上传对象的更多信息，请参阅 Amazon S3 文档中的 [Amazon S3 入门](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)。 | 常规 AWS | 
| 对 Amazon Athena 表运行 SQL 查询。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)SQL 查询的输出将显示您的 CSV 文件的内容。 | 常规 AWS，应用程序开发人员 | 

### 选项 2 ‒ 使用批处理 JCL 将数据从 USS 传输到 Amazon S3
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 上传示例文件。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 大型机开发人员 z/OS  | 
| 创建批处理 JCL。 | 按下述方式对批处理 JCL 进行编码，以创建目标 S3 存储桶、上传数据集并列出存储桶内容。请务必将目录名称、文件名和存储桶名称替换为您自己的值。<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | 大型机开发人员 z/OS  | 
| 提交批处理 JCL 作业。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 大型机开发人员 z/OS  | 
| 查看上传到 S3 存储桶的数据集。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 常规 AWS | 

## 相关资源
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI 版本 1 文档](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## 附加信息
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**ISPF 选项 3.4（数据集列表实用程序）中的 USER.DATA.FIXED**

![查看 z/OS 中的数据集的内容。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**已提交的批处理作业的 SYSOUT**

![作业日志中的标准输出。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## 附件
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

要访问与此文档相关联的其他内容，请解压以下文件：[attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)