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

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

入门 适用于 SAP ABAP 的 Amazon SDK

本节介绍如何开始使用 SDK。其中包括有关安装 SDK、执行基本配置和创建使用不同语言翻译短语的 Hello World 代码示例的信息。如果您不熟悉 Amazon SDK,我们建议您在沙盒环境中执行这些步骤。

第 1 步:准备 Amazon 账户

必须准备一个活动 Amazon Web Services 账户 ,才能开始使用适用于 SAP ABAP 的 SDK。 Amazon Web Services 账户 即使你的 SAP 系统托管在本地、SAP 业务技术平台 (BTP) 上或其他云提供商,你也需要一个。

如果您的 SAP 系统在 Amazon Cloud 上运行,那么您将调用自己的 Amazon 服务 Amazon Web Services 账户。

适用于 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"都可以担任该角色。这是一个广泛的权限,适用于 proof-of-concept。在生产环境中可以使用权限更小的主体,如以下示例。

    • 特定用户 — 当 SAP 系统使用以下任一用户时:

      • 来自本地 SAP 系统的 SSF 加密证书

      • 来自 SAP BTP、ABAP 环境上的 SAP 凭证存储服务的证书

    • 特定角色:当 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 BTP 或其他云端

如果您的 SAP 系统位于本地、SAP BTP 或其他云上,请使用以下步骤使用私有访问密钥建立身份验证连接。

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

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

  3. 为用户分配 SapDemoTranslate 角色。

保留access_keysecret_access_key。您必须在 SAP 系统中配置这些凭证。

注意

如果您的 SAP 系统位于本地、SAP BTP 或其他云上,则可以使用以下选项之一进行身份验证。

第 2 步:安装软件开发工具包

有关安装说明,请参阅以下选项卡。

SDK for SAP ABAP

向 SAP 系统传输适用于 SAP ABAP 的 SDK。此传输内容可导入任意客户端。有关更多信息,请参阅安装适用于 SAP ABAP 的开发工具包

SDK for SAP ABAP - BTP edition

使用 Deplo y Pro duct 应用程序安装适用于 SAP ABAP 的 SDK-BTP 版。有关更多信息,请参阅安装适用于 SAP ABAP 的 SDK-BTP 版

步骤 3:配置 SDK

有关配置说明,请参阅以下选项卡。

SDK for SAP ABAP

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

完成以下配置。

  • 转到技术先决条件

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

  • 转到全局设置配置场景

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

  • 转到全局设置技术设置

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

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

    • 选择新建条目

      • 跟踪等级:无跟踪。

      • 最大转储行数100

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

    • 选择保存

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

    • 新建场景中选择 DEFAULT

    • 选择提交场景更改

    • 接受提示。

SDK for SAP ABAP - BTP edition

在 Web 浏览器中打开您的 ABAP 环境,然后导航到 “自定义业务配置” 应用程序。

完成以下配置。

  • 转到全局设置配置场景

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

  • 转到全局设置技术设置

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

本地系统的先决条件

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

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

注意

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

第 4 步:功能设置

有关设置说明,请参阅以下选项卡。

SDK for SAP ABAP

运行事务/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 策略。

SDK for SAP ABAP - BTP edition

使用 SAP 凭据存储设置身份验证。有关更多信息,请参阅使用 SAP 凭据存储

在 Web 浏览器中打开您的 ABAP 环境,然后导航到 “自定义业务配置” 应用程序。

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

    • 选择 “编辑” 以创建新的配置文件。

      • 配置文件DEMO

      • 描述:Demo profile

  • 选择创建的条目旁边的右箭头键,然后导航到 “身份验证和设置” 选项卡。

    选择新建条目

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

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

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

    • Amazon 区域:输入您要拨打电话的 Amazon 区域。如果您的 SAP 系统正在运行 Amazon,请输入其运行所在的 Amazon 区域。

    • 身份验证方法:从 SAP 凭据存储中选择凭据

    • 输入存储在 SAP 凭证存储中的凭据的命名空间密钥名称

    • 输入为在适用于 SAP ABAP 的 SDK-BTP 版本和 SAP 凭证存储区之间建立通信而创建的通信安排的名称。

    • 禁用 IAM 角色留空。

    • 右键单击创建的条目旁边的箭头键,然后导航到 IAM 角色映射选项卡。

      选择新建条目

      • 输入序列号:010。

      • 输入 IAM 逻辑角色:TESTUSER。

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

步骤 5:授权 SAP 用户

默认情况下,SAP 用户无权使用 Amazon 功能。必须使用 SAP 权限对用户进行明确授权。有关更多详细信息,请参阅以下选项卡。

SDK for SAP ABAP

创建 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角色的用户都将被授权使用 Amazon SDK 配置文件中配置的设置的 DEMO SDK 功能。授权用户还将代入 IAM 角色,其映射在配置文件的 TESTUSER IAM 逻辑角色中。

  • 运行 SU01 事务。

    • 输入将要测试 S Amazon DK 功能的 SAP 用户的用户 ID。

    • 选择更改

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

    • 选择保存

SDK for SAP ABAP - BTP edition

创建业务角色

  • 在 Web 浏览器中打开 ABAP 环境,然后导航到 “维护业务角色” 应用程序。

  • 选择 “从模板创建”,然后输入以下详细信息。

    • 模板 —选择/AWS1/RT_BTP_ENDUSER

    • 新的业务角色 ID-输入 ID。

    • 新业务角色描述-输入描述。

  • 选择 “确定” 以查看业务角色的页面。

  • 在 “常规角色详细信息” 选项卡下,转到 “访问类别”,然后将 “写入、读取、值帮助” 字段设置为 “受限”。

  • 选择 “维护限制”,然后从左侧导航窗格中展开 “分配的限制类型”。更新 “限制和值” 部分中的以下字段。

    • “选择 SDK 会话” 下,选择 SDK 配置文件旁边的铅笔图标,然后导航到 “范围” 选项卡。输入DEMO,然后选择添加

    • “选择逻辑 IAM 角色” 下,选择 “逻辑 IAM 角色” 旁边的铅笔图标,然后导航到 “范围” 选项卡。输入TESTUSER,然后选择添加

      选择 SDK 配置文件旁边的铅笔图标,然后导航到 “范围” 选项卡。输入DEMO,然后选择添加

  • 返回业务角色模板,然后打开 “业务用户” 选项卡。选择 “添加”,将新创建的业务角色分配给将测试 SDK 功能的 SAP 业务用户。选择保存

分配给所创建业务角色的任何业务用户都将被授权使用 Amazon SDK 配置文件中配置的设置的 DEMO SDK 功能。授权用户还将代入 IAM 角色,其映射在配置文件的 TESTUSER IAM 逻辑角色中。

第 6 步:编写代码

有关更多详细信息,请参阅以下选项卡。

SDK for SAP ABAP
  1. 打开 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.
SDK for SAP ABAP - BTP edition
  1. 右键单击需要创建 ABAP 类的软件包,然后选择 “建” > “ABAP 类”。

  2. 输入ZCL_DEMO_XL8_SIMPLE类名,然后添加班级描述。选择下一步

  3. 创建或选择传输请求。选择 “完成”。

添加以下代码

CLASS zcl_demo_xl8_simple DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_demo_xl8_simple IMPLEMENTATION. METHOD if_oo_adt_classrun~main. TRY. " input parameters DATA(pv_text) = |Hello, World|. DATA(pv_lang1) = |EN|. DATA(pv_lang2) = |ES|. 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 = pv_lang1 iv_targetlanguagecode = pv_lang2 ). out->write( |Source Phrase: { pv_text }| ). out->write( |Target Phrase: { lo_output->get_translatedtext( ) }| ). CATCH /aws1/cx_xl8unsuppedlanguage00 INTO DATA(lo_lang). out->write( |ERROR - Cannot translate from { lo_lang->sourcelanguagecode } to { lo_lang->targetlanguagecode }| ). CATCH cx_root INTO DATA(lo_root). out->write( |ERROR - { lo_root->get_text( ) }| ). ENDTRY. ENDMETHOD. ENDCLASS.

步骤 7:运行应用程序

有关更多详细信息,请参阅以下选项卡。

SDK for SAP ABAP

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 权限和信任配置。

SDK for SAP ABAP - BTP edition

Eclipse > 运行方式 > ABAP 应用程序(控制台)上运行该应用程序。成功运行后将输出以下内容。

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 权限和信任配置。