安裝 以 AWS 服務 從 IBM z/OS 存取 AWS CLI - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

安裝 以 AWS 服務 從 IBM z/OS 存取 AWS CLI

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

Summary

AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具,可透過在命令列 Shell 中使用命令來管理多個 AWS 服務。透過最少的組態,您可以從命令列工作階段執行命令,例如命令提示字元、終端機和 bash shell,以實作相當於瀏覽器型提供的功能 AWS 管理主控台。

API 和 AWS 管理主控台 提供 中所有 AWS 基礎設施即服務 (IaaS) 管理、管理和存取函數 AWS AWS CLI。您可以在 IBM z/OS 大型主機 AWS CLI 上安裝 ,以 AWS 服務 從 z/OS 直接存取、管理和與 互動。 AWS CLI 可讓使用者和應用程式執行各種任務,例如:

  • 在 z/OS 和 Amazon Simple Storage Service (Amazon S3) 物件儲存體之間傳輸檔案或資料集,並檢視儲存貯體的內容

  • 啟動和停止不同的 AWS 資源;例如,在 AWS Mainframe Modernization 環境中啟動批次任務

  • 呼叫 AWS Lambda 函數以實作常見的商業邏輯

  • 與人工智慧和機器學習 (AI/ML) 和分析服務整合

此模式說明如何在 z/OS AWS CLI 上安裝、設定和使用 。您可以全域安裝,以便所有 z/OS 使用者或在使用者層級使用。模式也詳細說明如何在 z/OS Unix System Services (USS) AWS CLI 的互動式命令列工作階段中使用 ,或用作批次任務。

先決條件和限制

先決條件

  • 從 z/OS 到 的網路通訊 AWS

    根據預設, AWS 服務 會在 TCP 連接埠 443 上使用 HTTPS 將請求 AWS CLI 傳送至 。若要 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 雲端 的服務通訊, AWS CLI 會要求您設定一些具有存取目標權限的登入資料 AWS 帳戶。對於 的程式設計命令 AWS,您可以使用存取金鑰,其中包含存取金鑰 ID 和私密存取金鑰。如果您沒有存取金鑰,可以從 AWS 管理主控台建立。最佳實務是,除非 AWS 帳戶 需要根使用者,否則請勿將根使用者的存取金鑰用於任何任務。反之,請建立新的管理員 IAM 使用者,並準備最低權限的許可 ,以使用存取金鑰設定使用者。建立使用者之後,您可以為此使用者建立存取金鑰 ID 和私密存取金鑰

    警告

    AWS Identity and Access Management (IAM) 使用者具有存在安全風險的長期登入資料。為了協助降低此風險,建議您只為這些使用者提供執行任務所需的許可,並在不再需要這些使用者時將其移除。

  • 適用於 z/OS 的 IBM Python

    AWS CLI 需要 Python 3.8 或更新版本。IBM 已使用適用於 z/OS 的 IBM Open Enterprise Python 在 z/OS 上執行 Python。IBM Open Enterprise Python 可透過 Shopz SMP/E 免費取得,您也可以從 IBM 網站下載 PAX 檔案。如需說明,請參閱適用於 z/OS 的 IBM Open Enterprise Python 安裝和組態文件

限制

  • 此模式中提供的安裝指示AWS CLI 僅適用於版本 1。的最新版本 AWS CLI 是第 2 版。不過,此模式使用較舊的版本,因為第 2 版的安裝方法不同,而第 2 版可用的二進位可執行檔與 z/OS 系統不相容。

產品版本

  • AWS CLI 第 1 版

  • Python 3.8 或更新版本

架構

技術堆疊

  • 執行 z/OS 的大型主機

  • 大型主機 z/OS UNIX System Services (USS)

  • Mainframe Open MVS (OMVS) – z/OS UNIX shell 環境命令界面

  • 大型主機磁碟,例如直接存取儲存裝置 (DASD)

  • AWS CLI

目標架構

下圖顯示 IBM z/OS 上的 AWS CLI 部署。您可以從 AWS CLI 互動式使用者工作階段叫用 ,例如 SSH 和 telnet 工作階段。您也可以使用任務控制語言 (JCL) 或任何可呼叫 z/OS Unix shell 命令的程式,從批次任務叫用它。

存取 AWS 服務的 IBM z/OS 大型主機上的 AWS CLI。

會透過 TCP/IP 網路與 AWS 服務 端點 AWS CLI 通訊。這種網路連線可以透過網際網路,或透過從客戶資料中心到 AWS 雲端 資料中心的私有 AWS Direct Connect 連線進行。通訊會使用 AWS 登入資料進行身分驗證並加密。

自動化和擴展

您可以使用 探索 的功能, AWS 服務 AWS CLI 並開發 USS shell 指令碼以從 z/OS 管理您的 AWS 資源。您也可以從 z/OS 批次環境執行 AWS CLI 命令和 Shell 指令碼,也可以透過與大型主機排程器整合來自動化批次任務,以在特定排程執行。 AWS CLI 命令或指令碼可以在參數 (PARMs) 和程序 (PROCs) 內編碼,也可以遵循使用不同參數從不同批次任務呼叫 PARM 或 PROC 的標準方法進行擴展。

工具

最佳實務

  • 基於安全考量,請將存取許可限制為存放 AWS 存取金鑰詳細資訊的 USS 目錄。僅允許存取使用 的使用者或程式 AWS CLI。

  • 請勿將 AWS 帳戶 根使用者存取金鑰用於任何任務。相反地,請為自己建立新的管理員 IAM 使用者,並使用存取金鑰進行設定。

警告

IAM 使用者具有存在安全風險的長期登入資料。為了協助降低此風險,建議您只為這些使用者提供執行任務所需的許可,並在不再需要這些使用者時將其移除。

史詩

任務描述所需的技能

安裝 Python 3.8 或更新版本。

  1. 使用下列其中一種方法登入 z/OS USS 命令提示字元界面:

  2. 如果尚未安裝 Python 3.8 或更新版本,請依照適用於 z/OS 的 IBM Open Enterprise Python 安裝指南進行安裝。

大型主機 z/OS 管理員

設定 USS 環境變數。

將環境變數新增至設定檔。您可以將這些項目新增至個別使用者 (cliuser) 的 /u/cliuser/.profile 檔案,或新增至所有使用者的 /etc/profile 檔案。

注意

此模式假設 Python 已安裝在 /u/awscli/python目錄中。如果您的安裝目錄不同,請相應地更新程式碼。

# Python configuration export BPXKAUTOCVT='ON' export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)' export TAGREDIR_ERR=txt export TAGREDIR_IN=txt export TAGREDIR_OUT=txt # AWS CLI configuration export PATH=/u/cliuser/python/bin:$PATH export PYTHONPATH=/u/cliuser/python:$PYTHONPATH
大型主機 z/OS 管理員

測試 Python 安裝。

執行 python 命令:

python --version

輸出應確認您已正確安裝 Python 3.8 或更新版本。

大型主機 z/OS 管理員

驗證或安裝 pip

  1. 當您從 IBM 網站安裝 Python 時,通常會自動安裝 pip 命令。若要驗證,請執行 命令:

    pip —-version

    如果已安裝 pip,此命令應該會顯示已安裝的版本。

  2. 如果找不到 pip 命令,請執行下列命令來安裝 pip

    python -m ensurepip --upgrade

    如需更多安裝選項,請參閱 pip 文件

大型主機 z/OS 管理員

安裝 AWS CLI 版本 1。

  1. 若要安裝 AWS CLI,請執行 命令:

    python -m pip install awscli

    輸出格式應類似以下內容。

    Successfully installed PyYAML-6.0.1 awscli-1.32.23 botocore-1.34.23 colorama-0.4.4 docutils-0.16 jmespath-1.0.1 pyasn1-0.5.1 python-dateutil-2.8.2 rsa-4.7.2 s3transfer-0.10.0 urllib3-2.0.7
  2. 執行下列命令來變更 aws 可執行檔的許可。請務必使用 <python_installation_dir> Python 安裝路徑更新預留位置目錄。

    chmod 744 <python_installation_dir>/bin/aws
  3. 執行下列命令來測試 AWS CLI 安裝:

    aws --version

    輸出應會顯示 AWS CLI、Python 和 botocore 的版本,如下所示。

    aws-cli/1.32.3 Python/3.9.5 OS/390/27.00 botocore/1.34.3
大型主機 z/OS 管理員
任務描述所需的技能

設定 AWS 存取金鑰、預設區域和輸出。

AWS CLI 文件說明設定 AWS 存取權的不同選項。您可以根據組織的標準來選擇組態。此範例使用短期憑證組態。

  1. 使用下列命令設定 AWS CLI

    aws configure
  2. 出現提示時,提供下列項目的詳細資訊。存取金鑰 ID 和私密存取金鑰值來自您在先決條件步驟中設定 AWS 登入資料時取得的金鑰。

    AWS Access Key ID [None]: ASIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-1 Default output format [None]: aws configure set aws_session_token IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

    此組態,包括存取金鑰,會存放在 /u/cliuser/.aws 資料夾中。基於安全考量,請將此資料夾限制為僅允許使用 的使用者或程式存取 AWS CLI。

AWS 管理員、大型主機 z/OS 管理員、大型主機 z/OS 開發人員

測試 AWS CLI。

  1. 在命令提示字元中執行下列命令,以 AWS CLI 使用簡單的命令測試 :

    aws s3 ls

    輸出應列出已設定 的所有 S3 儲存貯體, AWS 帳戶 沒有任何錯誤。

  2. 遵循以下兩個語彙中的指示,將資料從 USS 傳輸到 Amazon S3。您可以選擇以下兩個選項之一:

    • 選項 1 (下一個圖示):以互動方式將 EBCDIC 逗號分隔值 (CSV) 檔案傳輸至 Amazon S3,並從 Amazon Athena 查詢檔案。

    • 選項 2:將 EBCDIC 固定長度資料集作為批次任務傳輸至 Amazon S3。

大型主機 z/OS 管理員、大型主機 z/OS 開發人員
任務描述所需的技能

下載並傳輸範例 CSV 檔案。

  1. sales-records.csv附件區段下載。此檔案提供銷售記錄的範例 CSV 檔案。

  2. 將檔案傳輸至 z/OS USS。

  3. 使用您選擇的文字編輯器,確認/u/cliuser/sales-records.csv檔案可在 USS 中以 EBCDIC 格式讀取。

應用程式開發人員、大型主機 z/OS 開發人員

建立 S3 儲存貯體並上傳 CSV 檔案。

  1. 建立 S3 儲存貯體以存放 CSV 檔案。

    aws s3 mb s3://<s3_bucket_name>

    其中 <s3_bucket_name>是儲存貯體的唯一名稱;例如:

    aws s3 mb s3://DOC-EXAMPLE-BUCKET1
  2. 將 CSV 檔案從 z/OS USS 上傳至 S3 儲存貯體:

    aws s3 cp <csv_file_path> s3://<s3_bucket_name>

    例如:

    aws s3 cp /u/cliuser/sales-records.csv s3://DOC-EXAMPLE-BUCKET1
  3. 列出 S3 儲存貯體的內容,並確認其中包含上傳的檔案:

    aws s3 ls s3://<s3_bucket_name>

    例如:

    aws s3 ls s3://DOC-EXAMPLE-BUCKET1
應用程式開發人員、大型主機 z/OS 開發人員

檢視 S3 儲存貯體和上傳的檔案。

  1. 登入 AWS 管理主控台 並開啟 Amazon S3 主控台

  2. 導覽以查看新的 S3 儲存貯體和上傳的物件。

如需上傳物件的詳細資訊,請參閱 Amazon S3 文件中的 Amazon S3 入門。

一般 AWS

在 Amazon Athena 資料表上執行 SQL 查詢。

  1. 開啟 Amazon Athena 主控台

  2. 使用 Amazon S3 的 CSV 資料建立新的資料表 (例如 DOC-EXAMPLE-BUCKET)。如需詳細資訊,請參閱 Amazon S3 文件中的使用 Amazon Athena 查詢 Amazon S3 庫存。 Amazon S3

  3. 針對資料表執行SELECT查詢以檢視資料。

    SELECT * FROM <table_name>;

    例如:

    SELECT * FROM DOC-EXAMPLE-BUCKET;

SQL 查詢的輸出會顯示 CSV 檔案的內容。

General AWS,應用程式開發人員
任務描述所需的技能

上傳範例檔案。

  1. sales-records-fixed.txt附件區段下載。這是包含銷售記錄的範例檔案。將文字檔案重新命名為 ,例如 USER.DATA.FIXED

  2. 將檔案以固定封鎖 (FB)、256 記錄長度 (LRECL)、實體序列 (PS) 資料集的形式傳輸至 z/OS。

  3. 在 ISPF 選項 3.4 下,使用資料集清單公用程式來驗證USER.DATA.FIXED資料集是否可讀取為 EBCDIC 格式。如需輸出範例,請參閱其他資訊一節。

大型主機 z/OS 開發人員

建立批次 JCL。

將批次 JCL 編碼如下,以建立目的地 S3 儲存貯體、上傳資料集,並列出儲存貯體內容。請務必將目錄名稱、檔案名稱和儲存貯體名稱取代為您自己的值。

//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=&SYSUID,TIME=1440 //*--------------------------------------------------------- //* Sample job for AWS CLI //*--------------------------------------------------------- //USSCMD EXEC PGM=BPXBATCH //STDERR DD SYSOUT=* //STDOUT DD SYSOUT=* //STDENV DD * export PATH=/u/cliuser/python/bin:$PATH //STDPARM DD * SH export _BPXK_AUTOCVT=ON; aws s3 mb s3://DOC-EXAMPLE-BUCKET2; cp "//'USER.DATA.FIXED'" /tmp/tmpfile; aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; rm /tmp/tmpfile; aws s3 ls s3://DOC-EXAMPLE-BUCKET2; /*
大型主機 z/OS 開發人員

提交批次 JCL 任務。

  1. 提交您在上一個步驟中編碼的 JCL 任務。

  2. 在系統顯示和搜尋設施 (SDSF) 中檢查任務的狀態。如果成功,任務應以傳回碼 0 結尾。

  3. 任務日誌中的標準輸出 (STDOUT) 會顯示儲存貯體成功建立、資料集上傳和儲存貯體內容清單。如需範例畫面圖例,請參閱其他資訊一節。

大型主機 z/OS 開發人員

檢視上傳至 S3 儲存貯體的資料集。

  1. 登入 AWS 管理主控台 並開啟 Amazon S3 主控台

  2. 導覽以查看測試儲存貯體中上傳的檔案。

  3. 您可以使用 Amazon Redshift 等分析服務,進一步處理或分析USER.DATA.FIXED檔案。

一般 AWS

相關資源

其他資訊

ISPF 選項 3.4 中的 USER.DATA.FIXED (資料集清單公用程式)

以 z/OS 檢視資料集的內容。

已提交批次任務的 SYSOUT

任務日誌的標準輸出。

附件

若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip