在 AWS Lambda 返回 HTTP 502 和 HTTP 500 状态代码(服务器端)时如何进行问题排查?

2 分钟阅读
0

当我尝试调用 AWS Lambda 函数时,请求失败,并显示 502 或 500 服务器端错误。如何排查这些错误?

解决方法

首先,鉴别您收到的特定 Lambda Invoke API 错误。然后,按照该错误对应的问题排查步骤操作。

**注意:**有关可能的错误列表及其描述,请参阅 Lambda Invoke API 参考中的错误部分。

InvalidRuntimeException

不支持指定的运行时或运行时版本。配置 Lambda 函数,使其为您的函数代码使用正确的 Lambda 运行时

InvalidSecurityGroupIDException

确认您在 Lambda 函数配置中指定了正确的 Amazon VPC 安全组 ID。有关更多信息,请参阅配置 Lambda 函数以访问 VPC 中的资源

InvalidZipFileException

检查 Lambda 部署程序包的权限。有关更多信息,请参阅我在上传部署程序包时遇到 Lambda 错误“permission denied”或“unable to import module”,如何进行问题排查?

同时,确认您正确创建了部署程序包文件。有关更多信息,请参阅 Lambda 部署程序包

KMSAccessDeniedException

检查您的 Lambda 函数的 AWS Identity and Access Management (IAM) 权限以及您的 AWS Key Management Service (AWS KMS) 密钥策略

KMSAccessDeniedException 错误发生的原因通常是,在 Lambda 函数的 IAM 角色被删除后,再使用相同名称重新创建角色。如果发生这种情况,请为函数配置新的 IAM 角色。然后,再次部署该函数并重新配置先前的 IAM 角色。

有关更多信息,请参阅使用 AWS KMS 中的密钥策略

**注意:**创建和更新 Lambda 函数的 IAM 用户必须获得使用 AWS KMS 密钥的权限

KMSDisabledException

验证 KMS 密钥已激活。有关更多信息,请参阅启用和禁用密钥

KMSInvalidStateException

对于 AWS KMS Decrypt API 请求,您的 AWS 密钥处于无效状态。验证 AWS 密钥已激活

有关更多信息,请参阅密钥状态对客户管理的密钥的使用有何影响

KMSNotFoundException

您的请求中指定的 AWS KMS 密钥必须与您的 Lambda 函数位于同一个 AWS 区域和账户。如果两者的区域不同,请改用位于同一区域的另一个 AWS KMS 密钥(或者创建一个新 AWS KMS 密钥)。

ResourceNotReadyException

Lambda 回收未使用的网络接口。此操作可以将函数置于非活动状态。当非活动的函数被调用时,该函数将进入待处理状态,同时还原 VPC 网络访问。在函数处于待处理状态时发生的第一次调用和所有其他调用都失败,然后返回 ResourceNotReadyException 错误。

要解决此错误,请等到 VPC 连接恢复。然后,再次调用 Lambda 函数。

ServiceException

有时,Lambda 服务本身会发生内部错误。如果您收到 500 错误,请检查 AWS Service Health Dashboard 以确定 Lambda 是否不可用。有关更多信息,请参阅 AWS 是否出现故障?

如果 Lambda 可用,请重新尝试调用您的 Lambda 函数的请求。

SubnetIPAddressLimitReachedException

子网的大小由其 CIDR 块定义。确保您在 Amazon VPC 中指定的 CIDR 块具有足够多的可用 IP 地址,以满足激活了 Amazon VPC 的 Lambda 函数的要求。有关更多信息,请参阅 VPC 和子网大小调整

您账户中的 Hyperplane 弹性网络接口数量已超过上限

每个 Virtual Private Cloud (VPC) 的 Hyperplane 弹性网络接口的最大数量默认为 250 个。有关如何请求提高限制的信息,请参阅 Service Quotas


AWS 官方
AWS 官方已更新 1 年前