

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

# 调试无服务器应用程序的配置选项
<a name="serverless-apps-run-debug-config-ref"></a>

打开`launch.json`文件编辑调试配置时，可以使用 VS Code [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense)功能查看并自动完成有效属性。要在编辑器 IntelliSense 中触发，请**按 Ctrl** \+ **空格键**。

![使用 VS Code IntelliSense 查找并完成有效的调试属性。](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/images/Intellisense_autocomplete.gif)


IntelliSense 允许您直接或使用模板查找和定义用于调用 Lambda 函数的 AWS SAM 属性。您还可以为`"lambda"`（函数的运行方式）、`"sam"`（ AWS SAM CLI 如何构建应用程序）和`"aws"`（如何提供 AWS 连接信息）定义属性。


**AWS SAM：Lambda 处理程序直接调用/基于模板的 Lambda 调用**  

|  属性 | 说明 | 
| --- | --- | 
|  `type`  |  指定哪个扩展管理启动配置。始终设置`aws-sam`为使用 AWS SAM CLI 在本地进行构建和调试。  | 
|  `name`  |  指定一个易于阅读的名称，以显示在 **Debug launch configuration（调试启动配置）**列表中。  | 
| `request` |  指定要由指定扩展程序执行的配置类型 (`aws-sam`)。始终设置为 `direct-invoke` 以启动 Lambda 函数。  | 
|  `invokeTarget`  |  指定资源调用的入口点。 为了直接调用 Lambda 函数，请为以下 `invokeTarget` 字段设值： [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html) 要使用模板调用 Lambda 资源 AWS SAM ，请为以下`invokeTarget`字段设置值： [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html)  | 


**Lambda (`"lambda"`) 属性**  

|  属性 | 说明 | 
| --- | --- | 
|  `environmentVariables`  |  将操作参数传递到您的 Lambda 函数。例如，您在写入 Amazon S3 存储桶时，不应对要写入的存储桶名称进行硬编码，而应将存储桶名称配置为环境变量。  为无服务器应用程序指定环境变量时，必须同时向 AWS SAM 模板 (`template.yaml`) 和`launch.json`文件中添加配置。  AWS SAM 模板中环境变量的格式化示例： <pre>Resources:<br /> HelloWorldFunction:<br /> Type: AWS::Serverless::Function<br /> Properties:<br />   CodeUri: hello-world/<br />   Handler: app.lambdaHandlerN10<br />   Runtime: nodejs10.x<br />   Environment:<br />     Variables:<br />       SAMPLE1: Default Sample 1 Value</pre> `launch.json` 文件中环境变量的格式化示例： <pre>"environmentVariables": {<br />    "SAMPLE1": "My sample 1 value"<br /> }</pre>   | 
| `payload` |  为作为输入提供给 Lambda 函数的事件负载提供两个选项。 [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html)  | 
|  `memoryMB`  |  指定为运行一个已调用 Lambda 函数所提供的内存 [以兆字节（MB）为单位]。  | 
| `runtime` |  指定 Lambda 函数使用的运行时系统。有关更多信息，请参阅 [AWS Lambda 运行时](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)。  | 
|  `timeoutSec`  |  设置调试会话超时之前的允许时间（以秒为单位）。  | 
|  `pathMappings`  |  指定本地代码在容器中的运行位置。 默认情况下，Toolkit for VS Code 将 `localRoot` 设置为本地工作区中 Lambda 函数的代码根目录，并将 `remoteRoot` 设置为 `/var/task`（在 Lambda 中运行的代码的默认工作目录）。如果在 Dockerfile 中或 CloudFormation 模板文件中的`WorkingDirectory`参数更改了工作目录，则必须至少指定一个`pathMapping`条目，这样调试器才能成功地将本地设置的断点映射到 Lambda 容器中运行的代码。 `launch.json` 文件中 `pathMappings` 的格式化示例： <pre>"pathMappings": [<br />    {<br />        "localRoot": "{{${workspaceFolder}/sam-app/HelloWorldFunction}}",<br />        "remoteRoot": "{{/var/task}}"<br />    }<br />]</pre> 注意事项： [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-config-ref.html)  | 

VS Code 工具包使用 AWS SAM CLI 在本地构建和调试无服务器应用程序。您可以使用`launch.json`文件中配置的属性来`"sam"`配置 AWS SAM CLI 命令的行为。


**AWS SAM CLI (`"sam"`) 属性**  

| 属性 |  说明 |  默认 值 | 
| --- | --- | --- | 
|  `buildArguments`  | 配置 `sam build` 命令构建 Lambda 源代码的方式。若要查看构建选项，请参阅 *AWS Serverless Application Model 开发人员指南*中的 [sam 构建](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html)。 |  空字符串  | 
|  `containerBuild`  |  指示是否在类似于 Lambda 的 Docker 容器内构建函数。  |  `false`  | 
|  `dockerNetwork`  |  Lambda Docker 容器应连接到的现有 Docker 网络的名称或 ID，以及默认桥接网络。如果未指定此项，Lambda 容器将仅连接到默认的桥接 Docker 网络。  |  空字符串  | 
|  `localArguments`  |  指定其他本地调用参数。  |  空字符串  | 
|  `skipNewImageCheck`  |  指定命令是否应跳过下拉最新 Docker 镜像获取 Lambda 运行时的操作。  |  `false`  | 
|  `template`  |  使用参数自定义 AWS SAM 模板以输入客户价值。有关更多信息，请参阅《AWS CloudFormation 用户指南》**中的[参数](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)。  |  `"parameters":{}`  | 


**AWS 连接 (`"aws"`) 属性**  

| 属性 | 说明 | 默认 值 | 
| --- | --- | --- | 
| `credentials` |  从您的凭证文件中选择特定的个人资料（例如`profile:default`）以获取 AWS 凭证。  | 您的现有[共享 AWS 配置文件或共享 AWSAWS 凭据文件](setup-credentials.md)提供给 Toolkit for VS Code 的凭据。 | 
| `region` |  设置服务的 AWS 区域（例如 us-east-1）。  | 与活动凭证配置文件关联的默认 AWS 区域。 | 

## 示例：模板启动配置
<a name="example-template"></a>

以下是 AWS SAM 模板目标的启动配置文件示例：

```
{
    "configurations": [
        {
            "type": "aws-sam",
            "request": "direct-invoke",
            "name": "my-example:HelloWorldFunction",
            "invokeTarget": {
                "target": "template",
                "templatePath": "template.yaml",
                "logicalId": "HelloWorldFunction"
            },
            "lambda": {
                "payload": {},
                "environmentVariables": {}
            }
        }
    ]
}
```

## 示例：代码启动配置
<a name="example-code"></a>

以下是 Lambda 函数目标的启动配置文件示例：

```
{
    "configurations": [
        {
            "type": "aws-sam",
            "request": "direct-invoke",
            "name": "my-example:app.lambda_handler (python3.7)",
            "invokeTarget": {
                "target": "code",
                "projectRoot": "hello_world",
                "lambdaHandler": "app.lambda_handler"
            },
            "lambda": {
                "runtime": "python3.7",
                "payload": {},
                "environmentVariables": {}
            }
        }
    ]
}
```