

# AWS Lambda 函数和参数参考
<a name="PostgreSQL-Lambda-functions"></a>

以下是通过 RDS for PostgreSQL 调用 Lambda 所用函数和参数的参考。

**Topics**
+ [aws\$1lambda.invoke](#aws_lambda.invoke)
+ [aws\$1commons.create\$1lambda\$1function\$1arn](#aws_commons.create_lambda_function_arn)
+ [aws\$1lambda 参数](#aws_lambda.parameters)

## aws\$1lambda.invoke
<a name="aws_lambda.invoke"></a>

为 RDS for PostgreSQL 数据库实例 运行 Lambda 函数。

有关调用 Lambda 函数的更多详细信息，另请参阅 *AWS Lambda 开发人员指南*中的[调用](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)。

**语法**

------
#### [ JSON ]

```
aws_lambda.invoke(
IN function_name TEXT,
IN payload JSON,
IN region TEXT DEFAULT NULL,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSON DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSON,
OUT executed_version TEXT,
OUT log_result TEXT)
```

```
aws_lambda.invoke(
IN function_name aws_commons._lambda_function_arn_1,
IN payload JSON,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSON DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSON,
OUT executed_version TEXT,
OUT log_result TEXT)
```

------
#### [ JSONB ]

```
aws_lambda.invoke(
IN function_name TEXT,
IN payload JSONB,
IN region TEXT DEFAULT NULL,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSONB DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSONB,
OUT executed_version TEXT,
OUT log_result TEXT)
```

```
aws_lambda.invoke(
IN function_name aws_commons._lambda_function_arn_1,
IN payload JSONB,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSONB DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSONB,
OUT executed_version TEXT,
OUT log_result TEXT
)
```

------输入参数

**function\$1name**  
Lambda 函数的标识名称。该值可以是函数名称、ARN 或部分 ARN。有关可能的格式的列表，请参阅 *AWS Lambda 开发人员指南*中的 [Lambda 函数名称格式](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestParameters)。

*payload*  
Lambda 函数的输入。格式可以是 JSON 或 JSONB。有关更多信息，请参阅 PostgreSQL 文档中的 [JSON 类型](https://www.postgresql.org/docs/current/datatype-json.html)。

*区域*  
（可选）函数的 Lambda 区域。默认情况下，RDS 会从 `function_name` 的完整 ARN 中解析 AWS 区域，或使用 RDS for PostgreSQL 数据库实例区域。如果此区域值与 `function_name` ARN 中提供的值冲突，则会引发错误。

*invocation\$1type*  
Lambda 函数的调用类型。 值区分大小写。可能的值包括：  
+ `RequestResponse` – 默认值。Lambda 函数的这种调用类型是同步的，并在结果中返回响应负载。当工作流程依赖于立即接收 Lambda 函数结果时，请使用 `RequestResponse` 调用类型。
+ `Event` – Lambda 函数的这种调用类型是异步的，并在没有返回负载的情况下立即返回。如果您不需要在工作流程开始之前了解 Lambda 函数的结果，请使用 `Event` 调用类型。
+ `DryRun` – 这种类型的调用在不允许 Lambda 函数的情况下测试访问权限。

*log\$1type*  
要在 `log_result` 输出参数中返回的 Lambda 日志类型。 值区分大小写。可能的值包括：  
+ Tail – 返回的 `log_result` 输出参数将包含执行日志的最后 4 kB。
+ None – 未返回 Lambda 日志信息。

*context*  
JSON 或 JSONB 格式的客户端上下文。要使用的字段包括 `custom` 和 `env`。

*限定符*  
标识要调用的 Lambda 函数版本的限定符。如果此值与 `function_name` ARN 中提供的值冲突，则会引发错误。输出参数

*status\$1code*  
HTTP 状态响应代码。有关更多信息，请参阅 *AWS Lambda 开发人员指南*中的 [Lambda 调用响应元素](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_ResponseElements)。

*payload*  
从运行的 Lambda 函数返回的信息。格式为 JSON 或 JSONB。

*executed\$1version*  
运行的 Lambda 函数的版本。

*log\$1result*  
如果 `log_type` 值在调用 Lambda 函数时为 `Tail`，则会返回执行日志信息。结果包含以 Base64 编码的执行日志的最后 4 kB。

## aws\$1commons.create\$1lambda\$1function\$1arn
<a name="aws_commons.create_lambda_function_arn"></a>

创建一个 `aws_commons._lambda_function_arn_1` 结构来保存 Lambda 函数名称信息。您可以在 aws\$1lambda.invoke `aws_commons.create_lambda_function_arn` 函数的 `function_name` 参数中使用 [aws\$1lambda.invoke](#aws_lambda.invoke) 函数的结果。

**语法**

```
aws_commons.create_lambda_function_arn(
    function_name TEXT,
    region TEXT DEFAULT NULL
    )
    RETURNS aws_commons._lambda_function_arn_1
```输入参数

*function\$1name*  
包含 Lambda 函数名称的必需文本字符串。该值可以是函数名称、部分 ARN 或完整 ARN。

*区域*  
一个包含 Lambda 函数所在的AWS区域的可选文本字符串。有关 区域名称和关联值的列表，请参阅[区域、可用区和 Local Zones ](Concepts.RegionsAndAvailabilityZones.md)。

## aws\$1lambda 参数
<a name="aws_lambda.parameters"></a>

在该表中，您可以找到与 `aws_lambda` 函数关联的参数。


| 参数 | 描述 | 
| --- | --- | 
| `aws_lambda.connect_timeout_ms` | 这是一个动态参数，用于设置连接到 AWS Lambda 时的最大等待时间。默认值为 `1000`。此参数允许的值为 1 - 900000。 | 
| `aws_lambda.request_timeout_ms` | 这是一个动态参数，它设置了等待来自 AWS Lambda 的响应时的最大等待时间。默认值为 `3000`。此参数允许的值为 1 - 900000。 | 
| `aws_lambda.endpoint_override` | 指定可用于连接到 AWS Lambda 的端点。空字符串会选择该区域的默认 AWS Lambda 端点。必须重启数据库，此静态参数更改才能生效。 | 