

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Connect 中的流量块： AWS Lambda 函数
<a name="invoke-lambda-function-block"></a>

本主题定义了用于调用的流程块 AWS Lambda。获取的响应可以在[设置联系属性](set-contact-attributes.md)数据块中使用。

## 说明
<a name="invoke-lambda-function-block-description"></a>
+ 来电 AWS Lambda。
+ 返回的数据可用于在[设置联系属性](set-contact-attributes.md)数据块中设置联系人属性。
+ 有关示例，请参阅[教程：创建 Lambda 函数并在流中调用](connect-lambda-functions.md#tutorial-invokelambda)。

## 支持的渠道
<a name="invoke-lambda-channels"></a>

下表列出了此数据块如何路由正在使用指定渠道的联系人。


| 频道 | 是否支持？ | 
| --- | --- | 
| 语音 | 是 | 
| Chat | 是 | 
| 任务 | 是 | 
| 电子邮件 | 是 | 

## 流类型
<a name="invoke-lambda-function-block-types"></a>

您可以在以下[流类型](create-contact-flow.md#contact-flow-types)中使用此数据块：
+ 入站流
+ 客户队列流
+ 客户保持流
+ 客户私密消息流
+ 座席保持流
+ 座席私密消息流
+ 转接座席流 
+ 转接队列流

## Properties
<a name="invoke-lambda-function-block-properties"></a>

下图显示了**AWS Lambda 函数**数据块的**属性**页面。

![\[AWS Lambda 功能块的属性页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/aws-lamdba-function-properties.png)


在**选择操作**框中，从以下选项中进行选择：
+ [调用 Lambda](#properties-invoke-lamdba)
+ [加载 Lambda 结果](#properties-load-lamdba)（如果异步运行）

### 调用 Lambda
<a name="properties-invoke-lamdba"></a>

![\[“选择操作”框设置为“调用 Lambda”，“执行模式”选项。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/invoke-lambda-properties2.png)


当**选择操作**设置为**调用 Lambda** 时，请注意以下属性：
+ **执行模式**：
  + **同步**：如果选择“同步”，则只有在 Lambda 调用完成后，才会将联系人路由到下一个数据块。
  + **异步**：联系人无需等待 Lambda 完成即可路由到下一个数据块。

    您可以将[Wait](wait.md)数据块配置为等待使用异步执行模式调用的 Lambda。
+ **超时**：输入 Lambda 等待超时的时间。您可以为**同步模式**输入最多 8 秒，为**异步模式**输入最多 60 秒。

  如果 Lambda 调用受到限制，则会重试请求。如果发生一般服务故障（500 error），则也会重试。

  当 Lambda 调用返回错误时，Amazon Connect 最多重试三次，直至指定的超时为止。此时，联系人将路由到**错误**分支。
+ **响应验证**：Lambda 函数的响应可以是 STRING\$1MAP 或 JSON。在流中配置 **AWS Lambda 函数**数据块时必须对其进行设置。
  + 当响应验证设置为 STRING\$1MAP 时，Lambda 函数将返回一个由字符串类型 key/value 成对组成的平面对象。
  + 当响应验证设置为 JSON 时，Lambda 函数返回任何有效的 JSON，包括嵌套的 JSON。

### 加载 Lambda 结果
<a name="properties-load-lamdba"></a>

![\[“ AWS Lambda 配置” 选项卡上的 “加载 Lambda 结果” 操作。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/load-lambda-result.png)


当**选择操作**设置为**加载 Lambda 结果**时，请注意以下属性：
+ **Lambda 调用 RequestId****：这是 Lambda 在异步模式下运行时的请求 ID。**

  `$.LambdaInvocation.InvocationId` 包含最近一次异步运行 Lambda 的 requestId。

**选择 “**加载 Lambda 结果**” 操作时，请在 Lambda 调用下选择以下选项： RequestId**
+ **命名空间** = **Lambda 调用**
+ **键** = **调用 ID**

## 配置提示
<a name="invoke-lambda-function-block-tips"></a>
+ 要在流程中使用 AWS Lambda 函数，请先将该函数添加到您的实例中。有关更多信息，请参阅 [将 Lambda 函数添加到 Amazon Connect 实例](connect-lambda-functions.md#add-lambda-function)。
+ 在将函数添加到实例后，您可以在此块中从**选择函数**下拉列表中选择此函数，以便在流中使用它。

## 已配置的数据块
<a name="invoke-lambda-function-block-configured"></a>

下图显示了该数据块已配置好的样子。它有两个分支：**成功**和**错误**。它配置用于**异步**执行模式。当它配置用于**同步**执行模式时，它有一个**超时**分支。

![\[已配置的 AWS Lambda 功能块。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/invoke-lambda-configured.png)


## 流示例
<a name="invoke-lambda-function-block-samples"></a>

Amazon Connect 包含一组流示例。有关如何在流设计器中访问流示例的说明，请参阅[Amazon Connect 中的流示例](contact-flow-samples.md)。以下主题介绍了包含该数据块的流示例。

[Amazon Connect 中的 Lambda 集成流示例](sample-lambda-integration.md)

## 场景
<a name="invoke-lambda-function-block-scenarios"></a>

有关使用此数据块的场景，请参阅以下主题：
+ [授予 Amazon Connect 访问您的 AWS Lambda 功能的权限](connect-lambda-functions.md)