适用于 SAP ABAP 的 Amazon SDK 入门 - Amazon 适用于 SAP 的 SDK ABA
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

适用于 SAP ABAP 的 Amazon SDK 入门

本节介绍如何使用 适用于 SAP ABAP 的 Amazon SDK。其中包括有关安装 SDK、执行基本配置和创建使用不同语言翻译短语的 Hello World 代码示例的信息。初次使用 Amazon SDK 时,建议您在沙盒环境中执行上述步骤。

步骤 1:准备 Amazon 账户

必须准备一个活动 Amazon Web Services 账户,才能开始使用适用于 SAP ABAP 的 SDK。即使在本地或由其他云提供商托管 SAP 系统,您也要准备 Amazon Web Services 账户。

如果 SAP 系统运行在 Amazon 云上,则您将在 Amazon Web Services 账户 中调用 Amazon 服务。

适用于 SAP 用户的 IAM 角色

  • 根据 Amazon Identity and Access Management 用户指南说明,创建 IAM 角色。有关更多信息,请参阅创建向 Amazon 服务委派权限的角色。记下 IAM 角色的 Amazon 资源名称 (ARN) 以备后用。

  • 选择 Amazon EC2 作为用例。

  • 使用 SapDemoTranslate 作为角色名称。

  • 为角色附加 TranslateReadOnly 配置文件。

  • 角色必须具有以下实体,才能支持 SAP 系统代入此角色。将 "111122223333" 替换为您的 Amazon 账号。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "AWS": "111122223333" } } ] }

    此示例显示 Amazon Web Services 账户 "111122223333" 的所有主体都能代入此角色。这是一项适用于概念验证的广泛权限。在生产环境中可以使用权限更小的主体,如以下示例。

    • 特定用户:当 SAP 系统使用来自本地 SAP 系统的 SSF 加密凭证时。

    • 特定角色:当 SAP 系统运行在 Amazon EC2 上且具有实例配置文件时。

    • Amazon EC2:当 SAP 系统运行在 Amazon EC2 上但没有实例配置文件时。

有关更多信息,请参阅 IAM 安全最佳实践

身份验证

身份验证取决于 SAP 系统的托管位置。

在 Amazon 云上

确保运行 SAP 系统的 EC2 实例的实例配置文件具有以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/SapDemoTranslate" } ] }

添加之前步骤中记录的 ARN。

此权限能让 SAP 系统代表 ABAP 用户代入 SapDemoTranslate 角色。

本地或其他云

如果 SAP 系统位于本地或其他云上,请按照以下步骤建立连接。

  1. 创建 IAM 用户。有关更多信息,请参阅创建 IAM 用户(控制台)

  2. 使用 SapDemoSID 作为 IAM 用户名以及 SID 作为 SAP 系统的系统 ID。

  3. 为用户分配 SapDemoTranslate 角色。

记录 access_keysecret_access_key。必须向 SAP 管理员提供上述凭证,才能在 SAP 系统中执行加密操作。

步骤 2:传输设置

您可以在这一部分导入并配置传输内容。

导入

向 SAP 系统传输适用于 SAP ABAP 的 SDK。此传输内容可导入任意客户端。

配置

完成导入后,运行 /AWS1/IMG 事务以打开适用于 SAP ABAP 的 SDK 实施指南。如需运行此事务,请在 SAP 系统的命令栏中输入 /n/AWS1/IMG ,然后点击 Enter

  • 转到技术先决条件

    • 查看推荐的配置文件参数和 SSL 证书设置。

  • 转到全局设置配置场景

    • 根据全局设置建议,更改设置。

  • 转到全局设置技术设置

    • 根据全局设置建议,更改设置。

  • 转到运行时设置记录和跟踪

    • 选择新建条目

      • 跟踪等级:无跟踪。

      • 最大转储行数100

      • 选择加入:增强遥测功能:留空。

    • 选择保存

  • 转到运行时设置活动场景

    • 新建场景中选择 DEFAULT

    • 选择提交场景更改

    • 接受提示。

本地系统的先决条件

如果 SAP 系统运行在本地或其他云中,则必须将凭证存储在 SAP 数据库中。这些凭证使用 SAP SSF 进行加密,并且需要经过配置的加密库,如 SAP 的 CommonCryptoLib。

/AWS1/IMG 事务描述了为适用于 SAP ABAP 的 SDK 配置 SSF 的步骤。

注意

如果 SAP 系统运行在 Amazon EC2 上,则上述先决条件不适用。因为运行在 Amazon EC2 上的 SAP 系统会在 Amazon EC2 实例元数据中检索自动轮换的短期凭证。

步骤 3:功能设置

运行 /AWS1/IMG 事务(在命令栏中输入 /n/AWS1/IMG 并点击 Enter),打开 Amazon SDK 实施指南。

  • 转到应用程序配置SDK 配置文件

    • 选择新建条目

      • 配置文件DEMO

      • 描述:Demo profile

      • 选择保存

  • 突出显示创建的条目,然后单击身份验证和设置树分支。

    • 选择新建条目

      • SID:当前 SAP 系统的系统 ID。

      • 客户端:当前 SAP 系统的客户端。

      • 场景 ID:下拉列表,其中列出了由基础管理员创建的默认场景。

      • Amazon 区域:输入想要调用的 Amazon 区域。如果 SAP 系统运行在 Amazon 中,请输入此系统所在的 Amazon 区域。

      • 身份验证方法:

        • 如果 SAP 系统运行在 Amazon EC2 上,则选择元数据中的实例角色

        • 如果 SAP 系统运行在本地或其他云中,则选择 SSF 存储中的凭证

          • 选择设置凭证

          • 输入之前步骤中创建的访问密钥 ID 和秘密访问密钥。

    • 禁用 IAM 角色留空。

    • 选择保存

  • 单击 IAM 角色映射树分支。

    • 选择新建条目

      • 输入序列号:010。

      • 输入 IAM 逻辑角色:TESTUSER。

      • 输入 IAM 角色 ARN:输入 IAM 角色的 arn:aws:,其中包含之前步骤中创建的 TranslateReadOnly 策略。

步骤 4:授权 SAP 用户

SAP 用户默认无权使用 Amazon 功能。必须使用 SAP 权限对用户进行明确授权。

创建 PFCG 角色

  • 转到 PFCG 事务

  • 输入角色名称 ZAWS_SDK_DEMO_TESTUSER 并选择创建单个角色

    • 描述Role for demo AWS SDK functionality

    • 转到授权选项卡。

    • 选择更改授权数据并接受信息弹出窗口。

    • 选择模板弹出窗口中选择不选择模板

    • 在工具栏中选择手动添加

    • 添加以下授权对象:

      • /AWS1/LROL

      • /AWS1/SESS

    • 在授权树中输入:

      • AWS API 的访问配置文件:DEMO

      • IAM 逻辑角色:TESTUSER

    • 选择保存

    • 选择生成

    • 选择返回

    • 选择保存,保存角色。

向 SAP 用户分配 PFCG 角色

分配到 ZAWS_SDK_DEMO_TESTUSER 角色的任意用户将有权使用 DEMO SDK 配置文件中配置的设置来运行 Amazon SDK 功能。授权用户还将代入 IAM 角色,其映射在配置文件的 TESTUSER IAM 逻辑角色中。

  • 运行 SU01 事务。

    • 输入将测试 Amazon SDK 功能的 SAP 用户的用户 ID。

    • 选择更改

    • 转到角色选项卡,然后向用户分配 ZAWS_SDK_DEMO_TESTUSER 角色。

    • 选择保存

步骤 5:编写代码

  • 打开 SE38 事务。

    • 输入 ZDEMO_TRANSLATE_HELLO_WORLD 作为程序名称。

    • 选择 Create

    • 输入 AWS SDK Hello World In Any Language 作为标题。

    • 类型:选择可执行程序

    • 状态:选择测试程序

    • 选择保存

    • 将程序另存为本地对象

添加以下代码

*&---------------------------------------------------------------------* *& Report  ZAWS1_DEMO_XL8_SIMPLE *& *&---------------------------------------------------------------------* *& A simple demo of language translation with AWS Translate *& *&---------------------------------------------------------------------* REPORT zaws1_demo_xl8_simple. START-OF-SELECTION.   PARAMETERS pv_text TYPE /aws1/xl8boundedlengthstring DEFAULT 'Hello, World' OBLIGATORY.   PARAMETERS pv_lang1 TYPE languageiso DEFAULT 'EN' OBLIGATORY.   PARAMETERS pv_lang2 TYPE languageiso DEFAULT 'ES' OBLIGATORY.   TRY.       DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'DEMO' ).       DATA(go_xl8)     = /aws1/cl_xl8_factory=>create( go_session ).       DATA(lo_output) = go_xl8->translatetext(            iv_text               = pv_text            iv_sourcelanguagecode = CONV /aws1/xl8languagecodestring( pv_lang1 )            iv_targetlanguagecode = CONV /aws1/xl8languagecodestring( pv_lang2 )       ).       WRITE: / 'Source Phrase: ', pv_text.       WRITE: / 'Target Phrase: ', lo_output->get_translatedtext( ).     CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang).       WRITE: / 'ERROR' COLOR COL_NEGATIVE,                'Cannot translate from',                lo_lang->sourcelanguagecode,                'to',                lo_lang->targetlanguagecode.     CATCH cx_root INTO DATA(lo_root).       WRITE: / 'ERROR' COLOR COL_NEGATIVE, lo_root->get_text( ).   ENDTRY.

步骤 6:运行应用程序

SE38 中运行应用程序。成功运行后将输出以下内容。

Source Phrase: Hello, World Target Phrase: Hola, mundo

如果缺失授权、配置或基础先决条件,您会收到一条错误消息。请参阅以下示例。

ERROR Could not find configuration under profile DEMO with scenario DEFAULT for SBX:001

如果您尚未向 SAP 系统配置可代入 IAM 角色的 IAM 权限,就已获得 SAP 角色授予的 SDK 配置文件使用权限,并能够将其映射到 IAM 逻辑角色,则您会收到以下输出内容。

ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate

此时,请查看 步骤 1:准备 Amazon 账户 中定义的 IAM 角色和/或用户上的 IAM 权限和信任配置。