

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

# 排查无服务器应用程序的问题
<a name="serverless-apps-troubleshooting"></a>

本主题详细介绍了在使用 Toolkit for VS Code 创建无服务器应用程序时可能遇到的常见错误以及如何解决这些问题。

**Topics**
+ [如何使用带有 SAM 启动配置的 samconfig.toml？](#troubleshooting-samconfig-toml)
+ [错误：“RuntimeError：容器不存在”](#troubleshooting-container-does-not-exist)
+ [错误：“docker.errors。 APIError: 500 服务器错误... 您已达到拉取率上限。”](#troubleshooting-reached-rate-limit)
+ [错误：“500 服务器错误：正在挂载 C:\$1Users\$1...”](#troubleshooting-mounting-error)
+ [使用 WSL，网络视图（例如，“调用 AWS” 表单）已损坏](#troubleshooting-broken-webviews)
+ [正在调试 TypeScript 应用程序，但断点不起作用](#troubleshooting-typescript-debugging)

## 如何使用带有 SAM 启动配置的 samconfig.toml？
<a name="troubleshooting-samconfig-toml"></a>

通过在启动配置的 `sam.localArguments` 属性中配置 `--config-file` 参数来指定 SAM CLI [samconfig.toml](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html) 的位置。例如，如果 samconfig.toml 文件位于工作区的顶层：

```
"sam": {
    "localArguments": ["--config-file", "${workspaceFolder}/samconfig.toml"],
}
```

## 错误：“RuntimeError：容器不存在”
<a name="troubleshooting-container-does-not-exist"></a>

如果您的系统没有足够的磁盘空间容纳 Docker 容器，则 `sam build` 命令可能会显示此错误。如果您的系统存储空间只有 1-2 GB 的可用空间，则在处理过程中 `sam build` 可能会失败，即使在构建开始之前系统存储空间未完全满也是如此。有关更多信息，请参阅[此 GitHub 问题](https://github.com/aws/aws-sam-cli/issues/2121)。

## 错误：“docker.errors。 APIError: 500 服务器错误... 您已达到拉取率上限。”
<a name="troubleshooting-reached-rate-limit"></a>

Docker Hub 限制匿名用户可以发出的请求数量。如果系统达到该上限，Docker 就会失败，并且此错误消息会出现在 VS Code 的输出视图中：

```
docker.errors.APIError: 500 Server Error: Internal Server Error ("toomanyrequests: You have
reached your pull rate limit. You may increase the limit by authenticating and upgrading:
https://www.docker.com/increase-rate-limit")
```

确保系统 Docker 服务已使用 Docker Hub 凭据进行身份验证。

## 错误：“500 服务器错误：正在挂载 C:\$1Users\$1...”
<a name="troubleshooting-mounting-error"></a>

Windows 用户在调试 AWS SAM 应用程序时可能会看到此 Docker 挂载错误：

```
Fetching lambci/lambda:nodejs10.x Docker container image......
2019-07-12 13:36:58 Mounting C:\Users\<username>\AppData\Local\Temp\ ... as /var/task:ro,delegated inside runtime container
Traceback (most recent call last):
...
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error ...
```

尝试刷新共享驱动器的凭证（在 Docker 设置中）。

## 使用 WSL，网络视图（例如，“调用 AWS” 表单）已损坏
<a name="troubleshooting-broken-webviews"></a>

对于 Cisco VPN 用户来说，这是一个已知的 VS Code 问题。有关更多信息，请参阅[此 GitHub问题](https://github.com/aws/aws-toolkit-vscode/issues/1327)。

[此 WSL 跟踪问题](https://github.com/microsoft/WSL/issues/4277)中推荐了一种解决方法。

## 正在调试 TypeScript 应用程序，但断点不起作用
<a name="troubleshooting-typescript-debugging"></a>

如果没有源映射可以将编译后的 JavaScript 文件链接到源文件，就会发生这种情况。 TypeScript 要修正此问题，请打开您的 `tsconfig.json` 文件，并确保设置了以下选项和值：`"inlineSourceMap": true`。