

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

# 故障排除 适用于 SAP ABAP 的 AWS SDK
<a name="troubleshoot"></a>

本节针对可能出现的错误场景介绍了问题排查步骤。

**Topics**
+ [导入失败](#import-failure)
+ [未指定的位置限制](#unspecified-constraint)
+ [SSL 错误](#ssl-error)
+ [配置文件配置](#profile-configuration)
+ [IAM 授权](#iam-authorization)
+ [必要操作执行授权](#action-authorization)
+ [活动场景](#active-scenario)
+ [代码中的特殊字符](#special-characters)
+ [连接](#connectivity)

## 导入失败
<a name="import-failure"></a>

**问题** — “CL\_SYSTEM\_UUID” 类不包含接口 'IF\_SYSTEM\_UUID\_ \_STATIC RFC4122

**原因**：系统缺失 SAP Note 0002619546

**解决方案**：确保对系统应用 [SAP Note 0002619546](https://launchpad.support.sap.com/#/notes/0002619546)

## 未指定的位置限制
<a name="unspecified-constraint"></a>

**问题**：未指定的位置限制无法兼容用于接收请求的 `region` 特定端点

**原因**-您的 Amazon S3 存储桶中缺少 AWS 区域`io_createbucketconfiguration`参数。

**解决方案**：在任意区域（`us-east-1` 除外）创建存储桶，同时使用 `createbucket()` 中的 `io_createbucketconfiguration` 参数为 Amazon S3 存储桶指定区域 并不一定要为 `us-east-1` 指定限制。

以下示例显示了正确配置的 `io_createbucketconfiguration` 参数。

```
createbucket(
    iv_bucket = 'amzn-s3-demo-bucket'
    io_createbucketconfiguration = NEW /aws1/cl_s3_createbucketconf( 'us-west-1' )
).
```

## SSL 错误
<a name="ssl-error"></a>

**问题**：SSL 服务器证书与主机名不匹配*或* SSL 与 docs.aws.amazon.com:443 握手失败：SSSLERR\_NO\_SSL\_RESPONSE

**原因**：没有为 `DEFAULT` 配置文件的 `TRUE` 设置 `icm/HTTPS/client_sni_enabled` 参数

**解决方案**：根据以下问题排查步骤，解决给定问题或其他与 SSL 有关的问题

1. 打开 SAPGUI 并转到命令栏。

1. 运行 `RZ10` 事务。

1. 转到**配置文件**并选择 `DEFAULT` 配置文件。系统会自动填充版本。

1. 在**编辑配置文件**部分，选择**扩展维护**，然后选择**更改**。

1. 搜索 `icm/HTTPS/client_sni_enabled` 参数。
   + 如果存在此参数，则编辑**参数值**并将其设为 `TRUE`。
   + 如果不存在此参数，则使用以下步骤创建参数。

     1. 选择**参数**。
**注意**  
请确保您选择的是创建型参数，而不是编辑型参数（铅笔图标）。

     1. 在**参数名称**字段中输入 `icm/HTTPS/client_sni_enabled`。

     1. 在**参数值**字段中输入 `TRUE`。

     1. 选择**保存**。

1. 将上述更改保存在 `DEFAULT` 配置文件中，然后退出。

## 配置文件配置
<a name="profile-configuration"></a>

**问题**：无法使用 <sid>:<client> 默认场景查找 <profile\_name> 配置文件下的配置

**原因**：<profile\_name> 不正确或尚未配置

**解决方案**：根据以下步骤设定配置文件

1. 打开 SAPGUI 并运行 `/n/AWS1/IMG` 事务。

1. 转到**应用程序配置** > **SDK 配置文件**。
   + 若已设定配置文件，则验证配置文件名称是否正确。
   + 若未设定配置文件，则按步骤操作。

1. 选择**新建条目**。

   1. 输入配置文件的名称和描述。

   1. 选择**保存**。

1. 选择上一步创建的条目，然后选择**身份验证和设置**。

1. 选择**新建条目**，输入以下详细信息，然后选择**保存**。
   + SID
   + 客户端
   + 场景 ID
   + AWS 区域
   + 身份验证方法
     + *通过元数据为中运行的 SAP 系统选择实例角色* AWS。
     + 为运行在本地或其他云中的 SAP 系统选择 *SSF 存储中的凭证*。

1. 选择 **IAM 角色映射** > **新建条目**，输入以下详细信息，然后选择**保存**。
   + 序列号
   + IAM 逻辑角色
   + IAM 角色 ARN

## IAM 授权
<a name="iam-authorization"></a>

**问题**-无法担任角色<iam\_role\_arn>或用户:<user\_arn>无权AssumeRole 在资源上执行:sts: <iam\_role\_arn>

**原因**：以下可能是造成此错误的原因
+ 指定的 IAM 角色 ARN 不正确
+ IAM 用户无权访问 IAM 角色
+ 已代入的 IAM 角色未与正在代入的 IAM 角色或 IAM 用户建立信任关系

**解决方案**：采用以下步骤，确保 IAM 角色 ARN 正确无误

1. 打开 SAPGUI 并运行 `/n/AWS1/IMG` 事务。

1. 转到**应用程序配置** > **SDK 配置文件**，然后选择经过 IAM 角色配置的配置文件。

1. 选择 **IAM 角色映射**，然后验证或更正 IAM 角色 ARN。

   1. 如果 IAM 角色 ARN 正确，则确保已妥善配置 IAM 角色。有关更多信息，请参阅 [IAM 角色问题排查](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_cant-assume-role)。

## 必要操作执行授权
<a name="action-authorization"></a>

**问题**：<user\_arn> 用户无权在 <resource\_arn> 资源上执行 <action> 操作

**原因**：用户无权执行操作

**解决方案**：必须使用 `resource_arn` 的所需权限设置 `user_arn`，以执行指定的 `action` 操作 有关更多信息，请参阅[访问 IAM 资源所需的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions-required.html)。

## 活动场景
<a name="active-scenario"></a>

**问题**：未配置活动场景

**原因**：缺失活动场景设置

**解决方案**：请参阅[运行时设置](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/runtime-settings.html)，以配置活动场景

## 代码中的特殊字符
<a name="special-characters"></a>

**警告**：ABAP 单词中不得含有 0x00A0 字符

**注意**  
在收到这条警告之前，您可能会先收到各种错误消息。

**原因**：复制并粘贴不同来源的代码，会在您的代码中插入特殊字符

**解决方案**：在粘贴 ABAP 源代码编辑器中的代码时会看到以下弹出窗口

*检测到不间断空格字符。是否转换为空格？*

选择**是**作为答案。此外，亚马逊建议您选定要复制的代码，而不是使用代码框中的复制按钮。

## 连接
<a name="connectivity"></a>

**问题**：SCLNT\_HTTP(411)：未能直接连接到 tla.region.amazonaws.com:443：NIECONN\_REFUSED(-10)

**原因**：SAP 系统未联网，无法与 tla.region.amazonaws.com 的端口 443 建立 TCP/IP 连接

**解决方案** — SAP 系统必须能够直接或通过代理服务器与 HTTPS AWS 端口 443 上的端点建立连接。您可以使用以下选项之一建立/验证互联网连接。
+ 通过 NAT 或互联网网关，直接与互联网建立出站连接
+ 通过代理服务器连接

  有关更多信息，请参阅[通过代理服务器连接](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/connectivity-scenarios.html#proxy-server)。