如何使用 AWS Systems Manager 解决 Amazon VPC 中的 AWS Lambda 函数的互联网访问问题?

上次更新日期:2021 年 8 月 3 日

为位于 Amazon Virtual Private Cloud (Amazon VPC) 中的 AWS Lambda 函数授予互联网访问权限。现在,该函数不断失去互联网访问权或超时。我该如何排查此问题?

简短描述

查看以下资源以验证它们是否允许出站互联网访问您的 Lambda 函数:

如果其中任何资源未授予对 Lambda 函数的互联网访问权限,请重新配置资源以授予函数互联网访问权限。

要手动查看这些资源,请按照如何为连接 Amazon VPC 的 Lambda 函数提供互联网访问权限?中的说明进行操作 要自动执行故障排除流程,您可以使用 AWSSupport-TroubleshootLambdaInternetAccess AWS Systems Manager 运行手册。

解决方法

注意:以下故障排除程序展示了如何使用 AWSSupport-TroubleshootLambdaInternetAccess 运行手册。

1.    打开 AWS Systems Manager 控制台

2.    在左侧导航窗格的更改管理下,选择自动化

3.    选择 Execute automation(执行自动化)。

4.    在 Owned by Amazon 选项卡的自动化文档搜索框中,输入 AWSSupport-TroubleshootLambdaInternetAccess。然后,选择搜索图标或按键盘上的 Enter 键。

5.    选择 AWSSupport-TroubleshootLambdaInternetAccess 卡片右上角的图标。确保选择卡片右上角的图标,而不是自动化的名称。

6.    选择下一步

7.    (可选) 在输入参数部分中,对于 AutomationAssumeRole,输入允许 Systems Manager 自动化执行操作的角色的 Amazon 资源名称 (ARN)。如果未指定 IAM 角色,则 Systems Manager 自动化将使用运行该文档的 IAM 用户角色的权限。有关为 Systems Manager 自动化创建代入角色的详细信息,请参阅为自动化创建服务角色

重要提示:AutomationAssumeRole 或用户角色必须具有执行以下操作的权限:
lambda:GetFunction
ec2:DescribeRouteTables
ec2:DescribeNatGateways
ec2:DescribeSecurityGroups
ec2:DescribeNetworkAcls

8.    对于 FunctionName,输入需要验证其连接性的函数的名称。

9.    对于 destinationIp,输入要在其中启动出站互联网访问的目标 IP 地址。

10.    对于 destinationPort,输入要在其中启动出站互联网访问的目标端口。

11.    选择执行

运行手册的输出提供了可能导致 Lambda 函数互联网连接丢失的每个资源的状态。此输出还提供了关于如何作为“分析”消息解决问题的建议。

注意:有关 AWS System Manager 自动化运行手册的更多信息,请参阅使用运行手册


这篇文章对您有帮助吗?


您是否需要账单或技术支持?