

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

# Amazon Connect
<a name="automation-ref-con"></a>

 AWS Systems Manager 自动化为 Amazon Connect 提供了预定义的运行手册。有关运行手册的更多信息，请参阅[使用运行手册](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。有关如何查看运行手册内容的信息，请参阅 [查看运行手册内容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSSupport-AssociatePhoneNumbersToConnectContactFlows`](automation-associate-phone-numbers-to-connect-contact-flows.md)
+ [`AWSSupport-CollectAmazonConnectContactFlowLog`](automation-collect-amazon-connect-contact-flow-log.md)

# `AWSSupport-AssociatePhoneNumbersToConnectContactFlows`
<a name="automation-associate-phone-numbers-to-connect-contact-flows"></a>

 **描述** 

 `AWSSupport-AssociatePhoneNumbersToConnectContactFlows`可以帮助您将电话号码与 Amazon Connect 实例中的联系流程相关联。通过在输入逗号分隔值 (CSV) 文件中提供电话号码和联系人流的映射，运行手册可在 14.5 分钟内将尽可能多的电话号码与联系人流程关联起来。运行手册会生成一个 CSV 文件，其中包含它无法在时限内关联的所有电话号码和联系流对，以便您可以在下次运行时输入它们。

 **如何工作？** 

 该运行手册`AWSSupport-AssociatePhoneNumbersToConnectContactFlows`可帮助您使用存储在亚马逊简单存储服务 (Amazon S3) 存储桶中的映射数据的 CSV 文件将电话号码与 Amazon Connect 实例中的联系人流程关联起来。输入 CSV 文件应与以下格式对齐，`PhoneNumber`值采用 [E.164](https://www.itu.int/rec/T-REC-E.164/en) 格式。

**输入 CSV 文件的示例**

```
PhoneNumber,ContactFlowName
+1800555xxxx,ContactFlowA
+1800555yyyy,ContactFlowB
+1800555zzzz,ContactFlowC
```

自动化 runbook 还会在`DestinationFileBucket`和`DestinationFilePath`中指定的目标位置创建以下文件。
+ **`automation:EXECUTION_ID/ResourceIdList.csv`**：一个临时文件，其中包含 `AssociatePhoneNumberContactFlow` API 所需的`PhoneNumberId`和`ContactFlowId`对。
+ **`automation:EXECUTION_ID/ErrorResourceList.csv`**：包含由于错误而无法处理的电话号码和联系流对的文件，例如`ResourceNotFoundException`格式为`PhoneNumber,ContactFlowName,ErrorMessage`。
+ **`automation:EXECUTION_ID/NonProcessedResourceList.csv`**：包含未处理的电话号码和联系流程对的文件。运行手册尝试在 14.5 分钟（ AWS Lambda 功能超时 15 分钟-缓冲 30 秒）内处理尽可能多的电话号码和联系人流。如果由于时间限制而无法处理某些电话号码/联系人流，则运行手册会将其包含在 CSV 文件中，用作下一次运行手册执行的输入。

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。

```
        {
            "Statement": [
                {
                    "Action": [
                        "s3:GetBucketPublicAccessBlock",
                        "s3:GetBucketPolicyStatus",
                        "s3:GetBucketAcl",
                        "s3:GetObject",
                        "s3:GetObjectAttributes",
                        "s3:PutObject",
                        "s3:PutObjectAcl"
                    ],
                    "Resource": [
                    "arn:aws:s3:::YOUR-BUCKET/*",
                    "arn:aws:s3:::YOUR-BUCKET"
                    ],
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "cloudformation:CreateStack",
                        "cloudformation:DescribeStacks",
                        "cloudformation:DeleteStack",
                        "iam:CreateRole",
                        "iam:DeleteRole",
                        "iam:DeleteRolePolicy",
                        "iam:GetRole",
                        "iam:PutRolePolicy",
                        "lambda:CreateFunction",
                        "lambda:DeleteFunction",
                        "lambda:GetFunction",
                        "lambda:InvokeFunction",
                        "lambda:TagResource",
                        "connect:AssociatePhoneNumberContactFlow",
                        "logs:CreateLogGroup",
                        "logs:TagResource",
                        "logs:PutRetentionPolicy",
                        "logs:DeleteLogGroup",
                        "s3:GetAccountPublicAccessBlock"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "connect:DescribeInstance",
                        "connect:ListPhoneNumbers",
                        "connect:ListContactFlows",
                        "ds:DescribeDirectories"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Condition": {
                        "StringLikeIfExists": {
                            "iam:PassedToService": [
                                "ssm.amazonaws.com",
                                "lambda.amazonaws.com"
                            ]
                        }
                    },
                    "Action": [
                        "iam:PassRole"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

如果提供`LambdaRoleArn`参数，则该角色需要执行以下操作才能成功使用运行手册。

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Action": [
				"logs:CreateLogGroup"
			],
			"Resource": "arn:aws:logs:us-east-1:111122223333:*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"logs:CreateLogStream",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws:logs:us-east-1:111122223333:*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"connect:AssociatePhoneNumberContactFlow"
			],
			"Resource": "*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"s3:PutObject",
				"s3:GetObject"
			],
			"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/DESTINATION_FILE_PATH*",
			"Effect": "Allow"
		}
	]
}
```

------

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AssociatePhoneNumbersToConnectContactFlows/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AssociatePhoneNumbersToConnectContactFlows/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）**

     允许 Systems Manager Automation 代表您执行操作的 AWS AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **ConnectInstanceId （必填）**

     您的 Amazon Connect 实例的 ID。
   + **SourceFileBucket （必填）**

     存储包含电话号码和联系流程对的 CSV 文件的 Amazon S3 存储桶。
   + **SourceFilePath （必填）**

     包含电话号码和联系流程对的 CSV 文件的 Amazon S3 对象密钥。例如 `path/to/input.csv`。
   + **DestinationFileBucket （必填）**

     Amazon S3 存储桶，自动化将在其中放置中间文件和结果报告。
   + **DestinationFilePath （可选）**

     存储中间文件和结果报告`DestinationFileBucket`的 Amazon S3 对象路径。例如，如果您指定`path/to/files/`，则文件存储在下`s3://[DestinationFileBucket]/path/to/files/[automation:EXECUTION_ID]/`。
   + **S3BucketOwnerAccount （可选）**

     拥有您要上传联系流日志的 Amazon S3 存储桶的 AWS 账号。如果您未指定此参数，则运行手册将使用运行自动化的用户或角色的 AWS 账户 ID。
   + **S3BucketOwnerRoleArn （可选）**

     有权获取 Amazon S3 存储桶和账户封禁公开访问设置、存储桶加密配置、存储桶、存储桶策略状态以及将对象上传到存储桶的 IAM 角色的 ARN。 ACLs如果未指定此参数，则运行手册将使用`AutomationAssumeRole`（如果已指定）或用户启动此 runbook（如果`AutomationAssumeRole`未指定）。请参阅运行手册描述中的“所需权限”部分。
   + **LambdaRoleArn （可选）**

     允许 AWS Lambda 函数访问所需 AWS 服务和资源的 IAM 角色的 ARN。如果未指定任何角色，则此自动化将在您的账户中为 Lambda 创建一个 IAM 角色。

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **CheckConnectInstanceExistance**

     检查中提供的 Amazon Connect 实例`ConnectInstanceId`是否存在。
   + **checkS3 BucketPublicStatus**

     检查中指定的 Amazon S3 存储桶是否`DestinationFileBucket`允许匿名或公开读取或写入权限。`SourceFileBucket`
   + **CheckSourceFileExistenceAndSize**

     检查中指定的源 CSV 文件`SourceFilePath`是否存在，以及文件大小是否超过 25 MiB 的限制。
   + **GenerateResourceIdMap**

     下载在中指定的源 CSV 文件，`SourceFilePath``PhoneNumberId``ContactFlowId`并为每个资源标识和。完成后，它会将包含、`PhoneNumber``PhoneNumberId``ContactFlowName`、和的 CSV 文件上传`ContactFlowId`到中`DestinationFileBucket`指定的目标 Amazon S3 存储桶。如果`PhoneNumberId`无法识别某个数字，则该字段在 CSV 文件中将为空。
   + **AssociatePhoneNumbersToContactFlows**

     使用 AWS CloudFormation 堆栈在您的账户中创建 AWS Lambda 函数。该 AWS Lambda 函数将每个号码与`SourceFileBucket`和中指定的源 CSV 文件中列出的联系人流相关联`SourceFilePath`， AWS CloudFormation 堆栈会调用该函数。在超时（15 分钟）之前，该 AWS Lambda 功能将尽可能多的电话号码映射到联系人流。由于错误而无法处理的电话号码和联系流程列表已上传`[automation:EXECUTION_ID]/ErrorResourceList.csv`。由于超过了单次执行中可以处理的最大电话号码数而无法处理的电话号码将被上传到`[automation:EXECUTION_ID]/NonProcessedResourceList.csv`。如果此步骤失败，它将进入该`DescribeCloudFormationErrorFromStackEvents`步骤以显示 AWS CloudFormation 堆栈事件失败的原因。
   + **WaitForPhoneNumberContactFlowAssociationCompletion**

     等待，直到创建将电话号码映射到联系人流的 AWS Lambda 函数并且 AWS CloudFormation 堆栈完成调用。
   + **GenerateReport**

     生成报告，其中包含映射到联系流的电话号码、由于错误而无法处理的电话号码，以及由于超出单次执行中可以处理的最大电话号码数而无法处理的电话号码。该报告还会显示`[automation:EXECUTION_ID]/ErrorResourceList.csv`或`[automation:EXECUTION_ID]/NonProcessedResourceList.csv`的位置（如适用）（亚马逊 S3 URI 和 Amazon S3 控制台 URL）。
   + **`DeleteCloudFormationStack`**

     删除 AWS CloudFormation 堆栈，包括用于映射的 Lambda 函数。
   + **`DescribeCloudFormationErrorFromStackEvent`**

     描述`AssociatePhoneNumbersToContactFlows`步骤 AWS CloudFormation 堆栈中的错误。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **GenerateReport.OutputPayload**

      电话号码和联系流关联的输出。该报告包含以下信息：
     + 输入 CSV 文件中列出的电话号码和联系流对的数量
     + 在输入 CSV 文件中指定的与联系流关联的电话号码数量
     + 由于错误而无法与联系流关联的电话号码数量
     + 由于时间限制而未与联系流关联的电话号码数量
     + CSV 文件的位置（Amazon S3 URI 和 Amazon S3 控制台 URL），该文件包含由于错误而无法关联的电话号码和联系流对
     + CSV 文件的位置（Amazon S3 URI 和 Amazon S3 控制台 URL），该文件包含由于时间限制而未关联的电话号码和联系流对
   + **DescribeCloudFormationErrorFromStackEvents. 活动**

     在`AssociatePhoneNumbersToContactFlows`步骤失败时显示 AWS CloudFormation 堆栈事件的输出。

使用少量电话号码和联系人流执行的输出

![\[Report showing 7 phone numbers processed successfully with no errors or time constraints.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/automation-associate-phone-numbers-to-connect-contact-flows_outputs_small.png)


执行输出包含大量电话号码和联系人流以及由于错误或时间限制而未关联的电话号码

![\[Amazon Connect phone number mapping results showing processed and unprocessed contacts.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/automation-associate-phone-numbers-to-connect-contact-flows_outputs_many.png)


 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-AssociatePhoneNumbersToConnectContactFlows/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)

# `AWSSupport-CollectAmazonConnectContactFlowLog`
<a name="automation-collect-amazon-connect-contact-flow-log"></a>

 **描述** 

 `AWSSupport-CollectAmazonConnectContactFlowLog`自动化运行手册用于收集特定联系人编号的 Amazon Connect 联系流日志。通过提供您的 Amazon Connect 实例 ID 和联系人 ID，运行手册会从亚马逊 CloudWatch 日志组中搜索联系人流日志，然后将其上传到请求参数中指定的亚马逊简单存储服务 (Amazon S3) 存储桶。运行手册生成的输出提供了 Amazon S3 控制台 URL 和 AWS CLI 命令供您下载日志。

 **如何工作？** 

`AWSSupport-CollectAmazonConnectContactFlowLog`自动化运行手册有助于收集存储在已配置 CloudWatch日志组中的特定联系人 ID 的 Amazon Connect 联系流日志，并将其上传到指定的 Amazon S3 存储桶。为了帮助保护从您的 Amazon Connect 联系流程中收集的日志的安全，自动化功能会评估 Amazon S3 存储桶配置，以确定该存储桶是否授予公共权限`read`或`write`访问权限，并且归`S3BucketOwnerAccountId`参数中指定的 AWS 账户所有。如果您的 Amazon S3 存储桶使用带 AWS Key Management Service 密钥的服务器端加密 (SSE-KMS)，请确保运行此自动化的用户或 AWS Identity and Access Management (IAM) 角色拥有密钥的`kms:GenerateDataKey`权限。 AWS KMS 有关您的 Amazon Connect 实例生成的日志的更多信息，请参阅[存储在亚马逊 CloudWatch 日志组中的流日志](https://docs.aws.amazon.com/connect/latest/adminguide/contact-flow-logs-stored-in-cloudwatch.html)。

**重要**  
 CloudWatch Logs Insights 查询会根据查询的数据量收取费用。免费套餐客户仅在超出服务限额时才会被收取使用费用。有关更多信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectAmazonConnectContactFlowLog) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux、macOS、Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。

```
        {
            "Statement": [
                {
                    "Action": [
                        "s3:GetBucketPublicAccessBlock",
                        "s3:GetBucketPolicyStatus",
                        "s3:GetBucketAcl",
                        "s3:GetObject",
                        "s3:GetObjectAttributes",
                        "s3:PutObject",
                        "s3:PutObjectAcl"
                    ],
                    "Resource": [
                    "arn:aws:s3:::amzn-s3-demo-bucket/*",
                    "arn:aws:s3:::amzn-s3-demo-bucket"
                    ],
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "connect:DescribeInstance",
                        "connect:DescribeContact",
                        "ds:DescribeDirectories"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                },
                {
                    "Action": [
                        "logs:StartQuery",
                        "logs:GetQueryResults"

                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
```

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectAmazonConnectContactFlowLog/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectAmazonConnectContactFlowLog/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **ConnectInstanceId （必填）：**

     您的 Amazon Connect 实例的 ID。
   + **ContactId （必填）：**

     您要为其收集联系流日志的联系人的 ID。
   + **S3BucketName （必填）：**

     您想要上传联系流日志的账户中的 Amazon S3 存储桶名称。确保存储桶策略不会向不需要访问所收集日志的各方授予不必要的读/写权限。
   + **S3ObjectPrefix （可选）：**

     Amazon S3 存储桶中用于上传的联系流日志的 Amazon S3 对象路径。例如，如果您指定`CollectedLogs`，则日志将上传为`s3://your-s3-bucket/CollectedLogs/ContactFlowLog_[ContactId][AWSAccountId].gz`。如果您未指定此参数，则使用 Systems Manager 自动化执行 ID，例如：`s3://your-s3-bucket/[automation:EXECUTION_ID]/ContactFlowLog[ContactId]_[AWSAccountId].gz`。注意：如果您为指定一个值`S3ObjectPrefix`并使用相同的 [ContactId] 运行此自动化，则联络流日志将被覆盖。
   + **S3BucketOwnerAccount （可选）：**

     拥有您要上传联系流日志的 Amazon S3 存储桶的 AWS 账号。如果您未指定此参数，则运行手册将使用运行自动化的用户或角色的 AWS 账户 ID。
   + **S3BucketOwnerRoleArn （可选）：**

     有权获取 Amazon S3 存储桶和账户的 IAM 角色的 ARN 拦截公开访问设置、存储桶加密配置、存储桶 ACLs、存储桶策略状态以及将对象上传到存储桶。如果未指定此参数，则运行手册将使用`AutomationAssumeRole`（如果已指定）或用户启动此 runbook（如果`AutomationAssumeRole`未指定）。请参阅 Runbook 描述中的 “所需权限” 部分。  
![\[Input parameters form for AWS Systems Manager Automation with fields for roles, IDs, and S3 settings.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/automation-collect-amazon-connect-contact-flow-log_input_parameters.png)

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **CheckConnectInstanceExistance**

     检查中提供的 Amazon Connect 实例`ConnectInstanceId`是否是`ACTIVE`。
   + **checkS3 BucketPublicStatus**

     检查中指定的 Amazon S3 存储桶是否`S3BucketName`允许匿名或公开读取或写入访问权限。
   + **GenerateLogSearchTimeRange**

     基于 `DescribeContact` API `LastUpdateTimestamp` 返回的`InitiationTimestamp`和`EndTime`为`StartQuery`步骤生成`StartTime`和。 `StartTime`将在一个小时之前`InitiationTimestamp`，`EndTime`将是一个小时之后`LastUpdateTimestamp`。
   + **StartQuery**

     启动与`ContactId`中提供的 Amazon Connect 实例关联的 CloudWatch 日志组中提供的查询日志`ConnectInstanceId`。查询在运行 60 分钟后超时。如果您的查询超时，请缩短搜索的时间范围。您可以在 CloudWatch 控制台中查看当前正在进行的查询以及最近的查询历史记录。有关更多信息，请参阅[查看正在运行的查询或查询历史记录](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-History.html)。
   + **WaitForQueryCompletion**

     等待提供的 CloudWatch 日志查询日志`ContactId`完成。请注意，查询将在运行 60 分钟后超时。如果您的查询超时，请缩短搜索的时间范围。您可以在 Amazon Connect 控制台中查看当前正在进行的查询以及最近的查询历史记录。有关更多信息，请参阅[查看正在运行的查询或查询历史记录](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-History.html)。
   + **UploadContactFlowLog**

     获取查询结果并将联系流日志上传到中指定的 Amazon S3 存储桶。`S3BucketName`
   + **GenerateReport**

     返回上传联系流日志的 Amazon S3 控制台 URL 以及可用于下载日志文件的示例 AWS CLI 命令。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **GenerateReport.OutputPayload**

     输出告诉您运行手册已成功检索到指定联系人的联系流日志。此报告还包含 Amazon S3 控制台 URL 和示例 AWS CLI 命令，以便您可以下载日志文件。  
![\[Output showing successful retrieval of Contact Flow log with S3 Console URL and AWS CLI command.\]](http://docs.aws.amazon.com/zh_cn/systems-manager-automation-runbooks/latest/userguide/images/automation-collect-amazon-connect-contact-flow-log_outputs.png)

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectAmazonConnectContactFlowLog/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)