本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 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 系统代入此角色。将
替换为您的 Amazon 账号。"111122223333"
{ "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 系统位于本地或其他云上,请按照以下步骤建立连接。
-
创建 IAM 用户。有关更多信息,请参阅创建 IAM 用户(控制台)。
-
使用
SapDemoSID
作为 IAM 用户名以及SID
作为 SAP 系统的系统 ID。 -
为用户分配
SapDemoTranslate
角色。
记录 access_key
和 secret_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 权限和信任配置。