使用 Visual Studio Code 远程调试 Lambda 函数
使用 Amazon Toolkit for Visual Studio Code
通过远程调试,您可以:
-
在 Lambda 函数代码中设置断点。
-
实时地逐步执行代码。
-
运行时检查变量和状态。
-
调试部署到 Amazon 的 Lambda 函数,包括 VPC 中的函数或拥有特定 IAM 权限的函数。
支持的运行时
以下运行时支持远程调试:
-
Python (AL2023)
-
Java
-
JavaScript/Node.js (AL2023)
注意
x86_64 和 arm64 架构都支持远程调试。
安全和远程调试
远程调试在现有的 Lambda 安全边界内运行。用户可以使用 UpdateFunctionConfiguration
权限将层附加到某个函数,该权限已具备访问函数环境变量和配置的能力。远程调试不会超出这些现有权限。相反,远程调试通过安全隧道和自动会话管理来增强安全控制。此外,远程调试完全是一项由客户控制的功能,它需要显式权限和操作:
-
IoT 安全隧道的创建:Amazon Toolkit 必须创建 IoT 安全隧道,这只有在获得用户显式权限的情况下才能使用
iot:OpenTunnel
来创建。 -
调试层附加和令牌管理:调试过程通过以下控制措施保持安全性:
调试层必须附加到 Lambda 函数,这一过程需要如下权限:
lambda:UpdateFunctionConfiguration
和lambda:GetLayerVersion
。
在每次调试会话之前,必须在函数环境变量中更新安全令牌(通过
iot:OpenTunnel
生成),这也需要lambda:UpdateFunctionConfiguration
权限。
为安全起见,该令牌会自动轮换,调试层将在每次调试会话结束时自动移除,且不能重复使用。
注意
x86_64 和 arm64 架构都支持远程调试。
先决条件
在开始远程调试之前,请您确保已拥有以下各项:
-
部署到 Amazon 账户的 Lambda 函数。
-
Amazon Toolkit for Visual Studio Code。有关安装说明,请参阅设置 Amazon Toolkit for Visual Studio Code。
-
您安装的 Amazon Toolkit 版本为 3.69.0 或更高版本。
-
Amazon Toolkit for Visual Studio Code 中配置的凭证 Amazon。有关更多信息,请参阅 身份验证和访问控制。
远程调试 Lambda 函数
按照以下步骤启动远程调试会话:
-
通过选择左侧栏中的 Amazon 图标,从而在 VS Code 中打开 Amazon Explorer。
-
展开 Lambda 部分以查看函数。
-
右键单击想要调试的函数。
-
从上下文菜单中,选择远程调用。
-
在打开的调用窗口中,选中启用调试复选框。
-
单击调用以启动远程调试会话。
注意
Lambda 函数对函数代码和所有附加层的组合限制为 250MB。远程调试层会使函数的大小增大约 40MB。
当执行以下操作时,远程调试会话随之结束:
-
从“远程调用配置”屏幕中选择删除调试设置。
-
在 VS Code 调试控件中选择断开连接的图标。
-
在 VS Code 编辑器中选择处理程序文件。
注意
自上次调用后,调试层将在 60 秒不活动后会自动移除。
禁用远程调试
禁用此功能有三种方法:
-
拒绝函数更新:将
lambda:UpdateFunctionConfiguration
设置为deny
。 -
限制 IoT 权限:拒绝 IoT 相关权限
-
屏蔽调试层:拒绝以下 ARN 的
lambda:GetLayerVersion
:arn:aws:lambda:*:*:layer:LDKLayerX86:*
arn:aws:lambda:*:*:layer:LDKLayerArm64:*
注意
禁用此功能可防止在函数配置更新期间加入调试层。
其他信息
有关在 VS Code 中使用 Lambda 的更多信息,请参阅使用 VS Code 在本地开发 Lambda 函数。
有关故障排除、高级使用案例和区域可用性的详细说明,请参阅《Amazon Toolkit for Visual Studio Code 用户指南》中的远程调试 Lambda 函数。