本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
入门 适用于 SAP ABAP 的 AWS SDK
本节介绍如何开始使用SDK。它包括有关安装SDK、执行基本配置以及创建将短语从一种语言翻译成另一种语言的 Hello World 代码示例的信息。如果您不熟悉 AWS SDK,我们建议您在沙盒环境中执行这些步骤。
第 1 步:准备 AWS 账户
要开始使用 f SDK o SAP ABAP r,必须激活一个 AWS 账户 。 AWS 账户 即使您的SAP系统托管在本地、SAP业务技术平台 (BTP) 上或其他云提供商,您也需要一个。
如果您的SAP系统在 AWS Cloud 上运行,那么您将调用自己的 AWS
服务 AWS 账户。
IAMSAP用户的角色
-
按照AWS Identity and Access Management 用户指南中提供的说明创建IAM角色。有关更多信息,请参阅创建角色以向 AWS 服务委派权限。记下该IAM角色的 Amazon 资源名称 (ARN) 以备日后使用。
-
选择 Amazon EC2 作为用例。
-
使用 SapDemoTranslate
作为角色名称。
-
为角色附加 TranslateReadOnly
配置文件。
-
该角色必须具有以下实体才能让SAP系统代入该角色。将 "111122223333"
替换为您的 AWS
账号。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Principal": { "AWS": "111122223333"
}
}
]
}
此示例表明,来自的任何委托人 AWS 账户
"111122223333"
都可以担任该角色。这是一个广泛的权限,适用于 proof-of-concept。在生产环境中可以使用权限更小的主体,如以下示例。
有关更多信息,请参阅IAM安全最佳实践。
身份验证
身份验证取决于您的SAP系统托管位置。
在 AWS 云上
确保运行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
角色。
本地SAPBTP或其他云端
如果您的SAP系统位于本地、云上SAPBTP或其他云上,请使用以下步骤使用私有访问密钥建立身份验证连接。
-
创建 IAM 用户。有关更多信息,请参阅创建IAM用户(控制台)。
-
SapDemoSID
用作IAM用户名。 SID
是您的系统的SAP系统 ID。
-
为用户分配 SapDemoTranslate
角色。
保留access_key
和secret_access_key
。您必须在SAP系统中配置这些凭证。
如果您的SAP系统位于本地、云上SAPBTP或其他云上,则可以使用以下选项之一进行身份验证。
步骤 2:安装 SDK
有关安装说明,请参阅以下选项卡。
- SDK for SAP ABAP
-
SDK为SAP系统中的SAPABAP传输导入。此传输内容可导入任意客户端。有关更多信息,请参阅SDK为安装SAPABAP。
- SDK for SAP ABAP - BTP edition
-
使用 D SDK e SAP ABAP ploy Pro duct 应用程序安装BTP版本。有关更多信息,SDK请参阅SAPABAP安装BTP版本。
在配置之前SDK,请确保您拥有所需的授权。有关更多信息,请参阅SAP授权。
有关配置说明,请参阅以下选项卡。
- SDK for SAP ABAP
-
运行/AWS1/IMG
事务以打开的实施SDK指南SAPABAP。要运行此事务,请在SAP系统的命令栏/n/AWS1/IMG
中输入,然后选择 Enter。
完成以下配置。
-
转到技术先决条件。
-
转到全局设置 → 配置场景。
-
转到全局设置 → 技术设置。
-
转到运行时设置 → 记录和跟踪。
-
选择新建条目。
-
跟踪等级:无跟踪。
-
最大转储行数:100
。
-
OPT-in:enh 遥测:保留此空白。
-
选择保存。
-
转到运行时设置 → 活动场景。
-
在新建场景中选择 DEFAULT
。
-
选择提交场景更改。
-
接受提示。
本地系统的先决条件
如果您的SAP系统在本地或其他云中运行,则凭据必须存储在您的SAP数据库中。凭证使用加密库进行加密,SAPSSF并且需要配置SAP的 CommonCryptoLib加密库,例如。
/AWS1/IMG
事务中描述SSF了SDKSAPABAP为的配置步骤。
如果您的SAP系统在 Amazon 上运行,则上述先决条件不适用EC2。SAP在 Amazon 上运行的系统会从亚马逊EC2实例元数据中EC2检索短暂的、自动轮换的证书。
- SDK for SAP ABAP - BTP edition
-
在 Web 浏览器中打开您的ABAP环境,然后导航到 “自定义业务配置” 应用程序。
完成以下配置。
第 4 步:功能设置
有关设置说明,请参阅以下选项卡。
- SDK for SAP ABAP
-
运行事务/AWS1/IMG
(/n/AWS1/IMG
在命令栏中输入,然后选择 Enter)以打开的实现指南 AWS SDK。
- SDK for SAP ABAP - BTP edition
-
使用SAP凭据存储设置身份验证。有关更多信息,请参阅使用SAP凭据存储。
在 Web 浏览器中打开您的ABAP环境,然后导航到 “自定义业务配置” 应用程序。
步骤 5:为SAP用户授权
SAP默认情况下,用户无权使用 AWS 功能。必须使用授权对用户进行明确SAP授权。有关更多详细信息,请参阅以下选项卡。
- SDK for SAP ABAP
-
创建PFCG角色
将PFCG角色分配给SAP用户
任何分配了ZAWS_SDK_DEMO_TESTUSER
角色的用户都将被授权使用配置DEMO
SDK文件中配置的设置的 AWS SDK功能。授权用户还将担任映射到该IAM配置文件中TESTUSER
逻辑IAM角色的角色。
- SDK for SAP ABAP - BTP edition
-
创建业务角色
-
在 Web 浏览器中打开您的ABAP环境,然后导航到 “维护业务角色” 应用程序。
-
选择 “从模板创建”,然后输入以下详细信息。
-
选择 “确定” 以查看业务角色的页面。
-
在 “常规角色详细信息” 选项卡下,转到 “访问类别”,然后将 “写入、读取、值帮助” 字段设置为 “受限”。
-
选择 “维护限制”,然后从左侧导航窗格中展开 “分配的限制类型”。更新 “限制和值” 部分中的以下字段。
-
在 “选择SDK会话” 下,选择 “SDK配置文件” 旁边的铅笔图标,然后导航到 “范围” 选项卡。输入DEMO
,然后选择添加。
-
在 “选择逻辑IAM角色” 下,选择 “逻辑IAM角色” 旁边的铅笔图标,然后导航到 “范围” 选项卡。输入TESTUSER
,然后选择添加。
选择 “SDK个人资料” 旁边的铅笔图标,然后导航到 “范围” 选项卡。输入DEMO
,然后选择添加
-
返回到 “业务角色” 模板,然后打开 “业务用户” 选项卡。选择 “添加”,将新创建的业务角色分配给将测试该SDK功能的SAP业务用户。选择保存。
分配给所创建业务角色的任何业务用户都将被授权使用配置DEMO
SDK文件中配置的设置的 AWS SDK功能。授权用户还将担任映射到该IAM配置文件中TESTUSER
逻辑IAM角色的角色。
第 6 步:编写代码
有关更多详细信息,请参阅以下选项卡。
- SDK for SAP ABAP
-
添加以下代码。
*&---------------------------------------------------------------------*
*& 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
-
-
右键单击需要在其中创建ABAP类的包,然后选择 “新建” > “ABAP类”。
-
输入ZCL_DEMO_XL8_SIMPLE
类名,然后添加班级描述。选择下一步。
-
创建或选择传输请求。选择 “完成”。
添加以下代码。
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.
有关如何编写使用ABAP代码的详细信息SDK,请参阅使用 适用于 SAP ABAP 的 AWS SDK。
步骤 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角色授权您使用SDK配置文件并将其映射到逻辑IAM角色,而您的IAM权限未配置为SAP系统代入该IAM角色,则输出结果将如下所示。
ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate
在这种情况下,请查看您在中定义的IAM角色、用户或两者的IAM权限和信任配置第 1 步:准备 AWS 账户。
- 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角色授权您使用SDK配置文件并将其映射到逻辑IAM角色,而您的IAM权限未配置为SAP系统代入该IAM角色,则输出结果将如下所示。
ERROR Could not assume role arn:aws:iam::111122223333:role/SapDemoTranslate
在这种情况下,请查看您在中定义的IAM角色、用户或两者的IAM权限和信任配置第 1 步:准备 AWS 账户。