

# Lambda 函数错误消息
<a name="PostgreSQL-Lambda-errors"></a>

在下面的列表中，您可以找到有关错误消息的信息，以及可能的原因和解决方案。
+ **VPC 配置问题**

  在尝试连接时，VPC 配置问题可能会引发以下错误消息：

  ```
  ERROR:  invoke API failed
  DETAIL: AWS Lambda client returned 'Unable to connect to endpoint'.
  CONTEXT:  SQL function "invoke" statement 1
  ```

  导致此错误的常见原因是 VPC 安全组配置不当。确保在 VPC 安全组的端口 443 上打开 TCP 的出站规则，以便 VPC 能够连接到 Lambda VPC。

  如果数据库实例为私有实例，请检查 VPC 的私有 DNS 设置。确保将 `rds.custom_dns_resolution` 参数设置为 1 并按照 [步骤 1：配置 RDS for PostgreSQL 数据库实例，实现与 AWS Lambda 的出站连接](PostgreSQL-Lambda.md#PostgreSQL-Lambda-network) 所述设置 AWS PrivateLink。有关更多信息，请参阅[接口 VPC 端点 (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-private-dns)。
+ **缺乏调用 Lambda 函数所需的权限**

  如果看到以下任一错误消息，说明调用此函数的用户（角色）没有适当的权限。

  ```
  ERROR:  permission denied for schema aws_lambda
  ```

  ```
  ERROR:  permission denied for function invoke
  ```

  必须向用户（角色）授予特定权限才能调用 Lambda 函数。有关更多信息，请参阅 [步骤 6：授予其他用户调用 Lambda 函数的权限](PostgreSQL-Lambda.md#PostgreSQL-Lambda-grant-users-permissions)。
+ **对 Lambda 函数中的错误处理不当**

  如果 Lambda 函数在请求处理过程中抛出异常，则 `aws_lambda.invoke` 会失败并显示 PostgreSQL 错误，如下所示。

  ```
  SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json);
  ERROR:  lambda invocation failed
  DETAIL:  "arn:aws:lambda:us-west-2:555555555555:function:my-function" returned error "Unhandled", details: "<Error details string>".
  ```

  务必处理 Lambda 函数或 PostgreSQL 应用程序中的错误。